feat(通知公告): 新增 notice 模块的前端登记、代理与入口
build / build (push) Successful in 2m1s

后端新增「通知公告」模块(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:补两条例句(发布通知公告 / 我有哪些未读的通知?),
  并把「公告|通知」的边打边提示改成提醒两个模块说全称最稳(光说「发通知」是跨模块歧义)
This commit is contained in:
lijing
2026-10-14 12:27:50 +08:00
parent 86e3a10a06
commit 3dc6cc561a
4 changed files with 18 additions and 1 deletions
+8
View File
@@ -12,6 +12,9 @@ import conf from "@/assets/config/host.config";
export const MODULE_CONTEXT: Record<string, string> = {
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<string, string> = {
export const MODULE_LABEL: Record<string, string> = {
homeleave: "学生请假",
campusnotice: "校园公告",
notice: "通知公告",
dormnotice: "宿舍通知",
familyactivity: "家校活动",
coursehomework: "课程作业",
@@ -41,6 +45,8 @@ export const MODULE_LABEL: Record<string, string> = {
export const MODULE_LANDING: Record<string, string> = {
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<string, string> = {
export const MODULE_META: Record<string, { icon: string; tone: string; sample: string }> = {
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<string, { icon: string; tone: string; sample: s
export const MODULE_ORDER = [
"homeleave",
"campusnotice",
"notice",
"dormnotice",
"familyactivity",
"coursehomework",
+2
View File
@@ -44,6 +44,8 @@ const emit = defineEmits<{ (e: "pick", text: string): void }>();
const PRESET_TEXT: Record<string, { title: string; desc: string; text: string }> = {
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: "看看我还有哪些作业没做" },
+5 -1
View File
@@ -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 人参加」;教师说「我要发布活动」直接弹发布表单,或问「报名情况怎么样」" },
+3
View File
@@ -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 },