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