ERP/NOTIFICATION_SYSTEM.md

3.3 KiB
Raw Blame 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. 新增删除已读功能:可以清理已读消息,保持消息列表整洁