From 3dc6cc561a78fae1685c25d5c7ea4c8e49e3175e Mon Sep 17 00:00:00 2001 From: lijing Date: Wed, 14 Oct 2026 12:27:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20notice=20=E6=A8=A1=E5=9D=97=E7=9A=84?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E7=99=BB=E8=AE=B0=E3=80=81=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E4=B8=8E=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 后端新增「通知公告」模块(key=notice,对应 D:\项目管理\NoticeFront,线上前缀 /notice)。 ★ 它与既有「校园公告」(campusnotice)是**两个应用**,别混: campusnotice 按班级下发 + 审批流/草稿箱;notice 按用户下发,无审批/草稿/推送范围。 - vite.config.ts:加 /notice 代理 → 8093(本地联调;缺了则代取字典/提交都会 404) - assets/config/modules.ts:补 MODULE_CONTEXT/LABEL/LANDING/META/ORDER 五行。 ★ MODULE_CONTEXT 缺一行,moduleUrl() 就返回 null —— 「去系统里查看」会变成点不动的空按钮, 这正是新模块最容易漏的一处。 - components/QuickActions.vue:补首屏快捷卡文案(图标「通」、色调 cyan) - views/Chat.vue:补两条例句(发布通知公告 / 我有哪些未读的通知?), 并把「公告|通知」的边打边提示改成提醒两个模块说全称最稳(光说「发通知」是跨模块歧义) --- src/assets/config/modules.ts | 8 ++++++++ src/components/QuickActions.vue | 2 ++ src/views/Chat.vue | 6 +++++- vite.config.ts | 3 +++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/assets/config/modules.ts b/src/assets/config/modules.ts index 45a5de6..0150b98 100644 --- a/src/assets/config/modules.ts +++ b/src/assets/config/modules.ts @@ -12,6 +12,9 @@ import conf from "@/assets/config/host.config"; export const MODULE_CONTEXT: Record = { homeleave: "home-leave", campusnotice: "campusnotice", + // ★ 通知公告(NoticeFront)与校园公告(CampusAnnouncement)是**两个应用**: + // 模块 key 都叫「公告」,但前缀 /notice ≠ /campusnotice,字段与权限也不同。 + notice: "notice", dormnotice: "dormnotice", familyactivity: "familyactivity", coursehomework: "coursehomework", @@ -22,6 +25,7 @@ export const MODULE_CONTEXT: Record = { export const MODULE_LABEL: Record = { homeleave: "学生请假", campusnotice: "校园公告", + notice: "通知公告", dormnotice: "宿舍通知", familyactivity: "家校活动", coursehomework: "课程作业", @@ -41,6 +45,8 @@ export const MODULE_LABEL: Record = { export const MODULE_LANDING: Record = { homeleave: "/my", campusnotice: "/", + // 通知公告路由见 NoticeFront/src/router/routes.ts:「/」是「已收到」(收件箱) + notice: "/", dormnotice: "/par/notices", familyactivity: "/par/activities", coursehomework: "/stu/today", @@ -57,6 +63,7 @@ export const MODULE_LANDING: Record = { export const MODULE_META: Record = { homeleave: { icon: "假", tone: "blue", sample: "我要请假" }, campusnotice: { icon: "公", tone: "violet", sample: "我有哪些未读的校园公告?" }, + notice: { icon: "通", tone: "cyan", sample: "我有哪些未读的通知?" }, dormnotice: { icon: "舍", tone: "teal", sample: "宿舍有什么通知需要我回执吗?" }, familyactivity: { icon: "活", tone: "amber", sample: "报名秋季亲子运动会,2 人参加" }, coursehomework: { icon: "作", tone: "rose", sample: "看看我还有哪些作业没做" }, @@ -74,6 +81,7 @@ export const MODULE_META: Record(); const PRESET_TEXT: Record = { homeleave: { title: "我要请假", desc: "说清类型与时间,直接提交", text: "我要请假" }, campusnotice: { title: "有什么新公告", desc: "查看未读校园公告", text: "我有哪些未读的校园公告?" }, + // 通知公告是另一个应用(NoticeFront):按「用户」下发,没有审批/草稿/推送范围 + notice: { title: "通知公告", desc: "查看未读通知 / 发布通知", text: "我有哪些未读的通知?" }, dormnotice: { title: "宿舍通知回执", desc: "查看待回执的宿舍通知", text: "宿舍有什么通知需要我回执吗?" }, familyactivity: { title: "报名校园活动", desc: "活动广场报名,一次填清", text: "报名秋季亲子运动会,2 人参加" }, coursehomework: { title: "今天有什么作业", desc: "查看待做作业与截止时间", text: "看看我还有哪些作业没做" }, diff --git a/src/views/Chat.vue b/src/views/Chat.vue index b0391b7..d06d3c3 100644 --- a/src/views/Chat.vue +++ b/src/views/Chat.vue @@ -54,6 +54,10 @@ const EXAMPLES: { text: string; module: string; tool?: string }[] = [ { text: "我要发布校园公告", module: "campusnotice", tool: "notice.publish" }, { text: "发一条关于社团招新的通知", module: "campusnotice", tool: "notice.publish" }, { text: "这周有什么新的校园公告?", module: "campusnotice", tool: "notice.received" }, + // 教师:说「我要发布通知公告」直接弹**通知公告**的发布表单(按用户下发,无审批/草稿)。 + // ★ 必须带「通知公告」后缀 —— 光说「发通知」在两个公告模块之间是有歧义的。 + { text: "我要发布通知公告", module: "notice", tool: "notify.publish" }, + { text: "我有哪些未读的通知?", module: "notice", tool: "notify.received" }, { text: "提交数学作业", module: "coursehomework", tool: "homework.submit" }, { text: "看看我还有哪些作业没做", module: "coursehomework", tool: "homework.myList" }, // 教师/宿管:说"我要发布宿舍通知"直接弹发布表单(标题/正文/通知类型/发文部门/回执方式) @@ -88,7 +92,7 @@ const placeholder = computed(() => { /** 边说边提示:命中关键词时告诉用户"这样说更准" */ const TIPS: { key: RegExp; text: string }[] = [ { key: /请假|病假|事假/, text: "直接说「我要请假」就会弹出请假表单;也可以一次说全:10月12日上午病假,发烧就医" }, - { key: /公告|通知/, text: "直接说「我要发布校园公告」就会弹出发布表单(标题 + 正文 + 发文部门);也可以一次说全:发一条关于运动会的通知" }, + { key: /公告|通知/, text: "「校园公告」和「通知公告」是两个模块,说全称最稳:说「我要发布校园公告」/「我要发布通知公告」会直接弹出各自的发布表单" }, { key: /作业|作答|提交作/, text: "可以说「我有哪些作业没做」,或「提交数学作业」,我会列出作业让你选" }, { key: /宿舍|回执|床位|调宿/, text: "教师说「我要发布宿舍通知」直接弹发布表单;也可问「这条通知还有谁没回执」「304 房住了谁」" }, { key: /报名|活动/, text: "家长说「报名秋季亲子运动会,2 人参加」;教师说「我要发布活动」直接弹发布表单,或问「报名情况怎么样」" }, diff --git a/vite.config.ts b/vite.config.ts index d611e29..c1abe80 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -98,6 +98,9 @@ export default defineConfig((): UserConfig => { // (请假的佐证材料就曾因为拼成 /homeleave/api/base/FileUpload 而 404,直到上线才发现)。 "/home-leave": { target: "http://localhost:8093", changeOrigin: true }, "/campusnotice": { target: "http://localhost:8093", changeOrigin: true }, + // 通知公告:与「校园公告」是两个应用 —— 它是 notice(前缀 /notice), + // 而校园公告是 campusnotice(前缀 /campusnotice)。key 与前缀同名,仍显式列出。 + "/notice": { target: "http://localhost:8093", changeOrigin: true }, "/dormnotice": { target: "http://localhost:8093", changeOrigin: true }, "/familyactivity": { target: "http://localhost:8093", changeOrigin: true }, "/coursehomework": { target: "http://localhost:8093", changeOrigin: true },