|
|
b731144a5a
|
fix: 移动端通知已读状态无法持久化
根因:
handleCardTap 中 try { await markNotificationRead(); item.is_read = true } catch {}
静默吞噬了 API 错误。PUT /notifications/{id}/read 调用失败时,本地 is_read
仍被设为 true,红点消失。下次进入页面重新拉取,服务端仍为未读状态。
修复:
- API 失败时保留 is_read = false,不更新本地状态
- 弹出Toast提示用户下拉刷新重试
- 失败时 return 阻止跳转,避免用户误以为已处理
|
2026-08-12 12:15:36 +08:00 |
|
|
|
991d713777
|
feat(backend): 新增留言通知 — add_task_record 自动推送给任务负责人
触发条件:
- 有人对任务添加流转记录(留言/备注)
- 任务有 assignee_id
- 留言人 != 任务负责人 (不给自己发通知)
通知内容:
- title: 💬 收到新留言
- content: 产品[SN]的「任务名」有新留言:{前30字摘要}
- type: COMMENT
额外:
- Notification 模型新增 NOTIFY_COMMENT 常量
- 前端 notify 页新增 COMMENT 图标(💬)和标题(收到新留言)
|
2026-08-11 18:17:52 +08:00 |
|
|
|
40a2d87345
|
fix: 消息通知页不能点进详情 — 补全 product_serial_number
问题: 点击通知卡片跳转 detail?taskId=xxx,但 detail.vue onLoad 只认 serial 参数导致空白页
修复:
1. 后端 NotificationResponse 新增 product_serial_number 字段
2. 后端 notifications API 联表 tasks+products 批量填充 serial
3. 前端 notify/index.vue handleCardTap 优先用 product_serial_number 跳转,兜底从 content 正则解析
4. 前端 detail.vue onLoad 新增 taskId 兜底 → doQueryByTask 反查 product_sn
|
2026-08-11 15:56:25 +08:00 |
|
|
|
0df7215134
|
feat: 移动端双Token队列拦截器 + 通知列表 + 登录页 + TabBar红点 + v1.0.1
|
2026-08-07 11:44:20 +08:00 |
|
|
|
5e53cd7f79
|
纳入 track-uniapp 前端项目 (扫码/任务树/记录/转交Picker)
|
2026-08-05 15:01:46 +08:00 |
|