ERP/NOTIFICATION_SYSTEM.md

95 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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