4.2 KiB
4.2 KiB
公告通知弹窗功能说明
功能概述
用户登录后,系统会自动弹出公告通知窗口,显示未读的系统公告和通知。
功能特性
1. 自动弹出
- 登录后 1 秒自动加载公告列表
- 如果有未读公告,自动弹出弹窗显示
- 延迟加载避免影响页面初始渲染
2. 优先级显示
- 高优先级(1):红色背景
#fff1f0,红色文字#ff4d4f - 中优先级(2):橙色背景
#fff7e6,橙色文字#faad14 - 低优先级(3):灰色背景
#f0f2f5,灰色文字#909399
3. 排序规则
- 按优先级升序排列(高 -> 中 -> 低)
- 相同优先级按创建时间降序排列
4. 已读状态
- 未读公告:黄色背景高亮显示
- 已读公告:默认白色背景
- 点击公告自动标记为已读
5. 分类显示
- 通知(1):蓝色图标
- 紧急(2):红色警告图标
- 信息(3):绿色信息图标
- 成功(4):紫色成功图标
文件结构
src/
├── components/
│ ├── NoticePopup/
│ │ └── index.vue # 登录后自动弹窗组件
│ └── NoticePanel/
│ └── index.vue # 手动打开的公告面板
├── layout/
│ └── index.vue # 主布局,引入 NoticePopup
└── views/
└── system/
└── notice/
└── index.vue # 公告管理页面
API 接口
前端 API
// 获取用户公告列表
getUserNotices()
// 标记为已读
markAsRead(noticeId)
// 全部标记为已读
markAllAsRead(noticeIds)
// 获取未读数量
getUnreadCount()
后端接口
// GET /system/notice/public/notice
// 获取当前用户的公告列表(含已读状态)
// GET /system/notice/public/unread/count
// 获取未读公告数量
// POST /system/notice/public/read/{noticeId}
// 标记公告为已读
// POST /system/notice/public/read/all
// 批量标记为已读
数据库字段
sys_notice 表新增字段
-- 优先级字段
priority VARCHAR(1) DEFAULT '3'
-- 发布状态字段
publish_status VARCHAR(1) DEFAULT '0'
使用说明
1. 数据库迁移
执行 SQL 脚本添加必要的字段:
# 添加优先级字段
ALTER TABLE sys_notice ADD COLUMN priority VARCHAR(1) DEFAULT '3';
# 添加发布状态字段
ALTER TABLE sys_notice ADD COLUMN publish_status VARCHAR(1) DEFAULT '0';
2. 后台管理
在 系统管理 > 公告管理 中:
- 点击"新增"创建公告
- 选择优先级:高/中/低
- 选择公告类型:通知/紧急/信息/成功
- 填写标题和内容
- 点击"发布"按钮
3. 用户端显示
- 登录后自动弹出未读公告
- 点击顶部导航栏铃铛图标可手动打开
- 点击公告查看详情
- 支持全部标记为已读
样式说明
弹窗样式
- 宽度:800px
- 高度:最大 600px
- 标题栏:渐变紫色背景
linear-gradient(135deg, #667eea 0%, #764ba2 100%) - 左右分栏布局
列表样式
- 列表宽度:380px
- 滚动区域:最大高度 500px
- 未读高亮:黄色背景
#fffbe6 - 激活项:蓝色左边框
#1890ff
详情样式
- 自适应宽度
- 标题字号:18px
- 内容字号:14px
- 行高:1.8
注意事项
-
权限控制
- 只有已发布的公告才会显示
- 只有正常状态的公告才会显示
-
性能优化
- 使用延迟加载(1秒)
- 使用虚拟滚动(el-scrollbar)
- 按需加载详情
-
用户体验
- 支持点击空白处关闭
- 支持ESC键关闭
- 未读状态醒目标识
- 优先级颜色区分明显
故障排查
弹窗不显示
- 检查后端接口
/system/notice/public/notice是否正常返回 - 检查是否有未读公告
- 检查浏览器控制台是否有错误
- 清除浏览器缓存重试
样式错乱
- 检查 Element Plus 版本是否兼容
- 检查样式是否被其他 CSS 覆盖
- 使用浏览器开发者工具检查样式
数据不更新
- 检查后端返回的数据格式
- 检查 API 调用是否成功
- 检查响应拦截器处理
版本信息
- 创建日期:2025-12-30
- 功能版本:v1.0
- 前端框架:Vue 3 + Element Plus
- 后端框架:Spring Boot + MyBatis Plus