ERP/NOTIFICATION_SYSTEM.md

95 lines
3.3 KiB
Markdown
Raw Normal View History

# 消息通知系统使用说明
## 功能概述
为超级管理员账号添加了消息通知系统,可以实时查看其他用户的操作记录。
## 主要特性
### 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. **新增删除已读功能**:可以清理已读消息,保持消息列表整洁