95 lines
3.3 KiB
Markdown
95 lines
3.3 KiB
Markdown
# 消息通知系统使用说明
|
||
|
||
## 功能概述
|
||
|
||
为超级管理员账号添加了消息通知系统,可以实时查看其他用户的操作记录。
|
||
|
||
## 主要特性
|
||
|
||
### 1. 消息铃铛
|
||
- 位置:页面右上角(仅超级管理员可见)
|
||
- 红色圆点徽章:显示未读消息数量
|
||
- 点击铃铛:打开/关闭消息面板
|
||
|
||
### 2. 消息面板
|
||
- 显示最近100条操作通知
|
||
- 未读消息有蓝色圆点标记和高亮背景
|
||
- 点击单条消息:标记为已读
|
||
- "全部已读"按钮:一键标记所有消息为已读
|
||
- "删除已读"按钮:删除所有已读消息(需确认)
|
||
|
||
### 3. 自动更新
|
||
- 每30秒自动刷新未读消息数量
|
||
- 实时显示最新的用户操作
|
||
|
||
### 4. 时间显示
|
||
- 使用北京时间(UTC+8)
|
||
- 智能显示:刚刚、X分钟前、X小时前、X天前
|
||
- 超过7天显示完整日期时间
|
||
|
||
## 会触发通知的操作
|
||
|
||
以下操作会为超级管理员创建通知:
|
||
|
||
1. **批量上传MAC文件** - 显示上传类型(pdd/yt/tx)
|
||
2. **批量上传发货记录文件** - 显示箱数和总数量
|
||
3. **添加人员信息** - 显示姓名和角色
|
||
4. **上传发货记录** - 显示日期和数量
|
||
5. **上传MAC与批次** - 显示记录数量
|
||
6. **批量上传不良明细文件** - 显示记录数量
|
||
7. **上传返修记录** - 显示数量
|
||
8. **上传良/不良统计** - 显示良品和不良品数量
|
||
9. **上传不良明细** - 显示记录数量
|
||
|
||
## 通知内容
|
||
|
||
每条通知包含:
|
||
- **用户名**:执行操作的用户
|
||
- **操作类型**:执行的具体操作
|
||
- **详细信息**:操作的详细数据(如数量、日期等)
|
||
- **时间**:操作时间(智能显示:刚刚、X分钟前、X小时前等)
|
||
|
||
## 技术实现
|
||
|
||
### 后端
|
||
- 新增 `notifications` 数据表
|
||
- 新增 `notify_superadmin()` 函数,在关键操作点调用,使用北京时间
|
||
- 新增 5 个 API 端点:
|
||
- `GET /api/notifications` - 获取通知列表
|
||
- `GET /api/notifications/unread-count` - 获取未读数量
|
||
- `POST /api/notifications/mark-read` - 标记单条已读
|
||
- `POST /api/notifications/mark-all-read` - 标记全部已读
|
||
- `POST /api/notifications/delete-read` - 删除所有已读消息
|
||
|
||
### 前端
|
||
- 新增 `notifications.js` 组件
|
||
- 在 `index.html` 添加铃铛和通知面板
|
||
- 在 `styles.css` 添加通知相关样式
|
||
- 在 `app.js` 集成通知系统初始化
|
||
|
||
## 使用方法
|
||
|
||
1. 使用超级管理员账号登录系统
|
||
2. 在页面右上角可以看到消息铃铛图标 🔔
|
||
3. 当有新消息时,铃铛上会显示红色数字徽章
|
||
4. 点击铃铛查看消息列表
|
||
5. 点击单条消息标记为已读
|
||
6. 点击"全部已读"按钮标记所有消息为已读
|
||
7. 点击"删除已读"按钮清理已读消息(需确认)
|
||
|
||
## 注意事项
|
||
|
||
- 只有超级管理员(role='superadmin')才能看到消息铃铛
|
||
- 超级管理员自己的操作不会创建通知
|
||
- 通知数据存储在 SQLite 数据库中
|
||
- 消息列表最多显示最近100条记录
|
||
- 所有时间使用北京时间(UTC+8)
|
||
- 删除已读消息操作不可恢复,请谨慎操作
|
||
|
||
## 修复的问题
|
||
|
||
### v1.1 更新
|
||
1. **修复时间显示问题**:后端使用北京时间(UTC+8)存储,前端正确解析显示
|
||
2. **修复铃铛无法点击问题**:调整z-index层级,确保铃铛和面板在最上层
|
||
3. **新增删除已读功能**:可以清理已读消息,保持消息列表整洁
|