3.6 KiB
3.6 KiB
订单详情「联系房务」按钮未读红点缺失
模块:管理后台 · 订单详情
/order-v2/detail/{orderId}· 行程安排 · 住宿安排 类型:前端修复(复用既有站内信/会话未读数据) 日期:2026-07-02 背景:顶部站内信铃铛已有未读红点,站内信列表也能看到当前订单会话未读,但订单详情住宿安排卡片里的「联系房务」按钮没有红点提示,导致用户在订单详情内看不到该订单会话待处理状态。
问题现象
测试订单示例:
- 订单:
HL20260702100458640 - 页面:
/order-v2/detail/2072501756742242305 - 顶部铃铛:显示未读红点
1 - 站内信列表:存在未读订单会话
【订单会话】HL20260702100458640 测多旅客五 - 订单详情:住宿安排卡片「联系房务」按钮未显示红点
【前端 · 管理后台】需改动
1. 「联系房务」按钮展示订单维度未读红点
在订单详情页住宿安排卡片中,只要当前订单存在未读房务/订单会话消息,「联系房务」按钮必须展示未读红点或未读数量。
建议规则:
const showHouseChatUnread =
currentOrderUnreadCount > 0
展示形式:
currentOrderUnreadCount === 1:显示红点或数字1currentOrderUnreadCount > 1:显示数量,超过上限可显示99+currentOrderUnreadCount === 0:隐藏红点
2. 未读数据源口径
复用现有站内信/会话未读能力,不需要新增后端接口。
前端需要按订单维度映射未读,不要只看顶部全局未读数:
- 顶部铃铛红点是全局未读,只能说明“有未读”,不能说明当前订单按钮是否应亮。
- 订单详情按钮需要按当前
orderId/orderNo/ 会话业务 key 匹配对应会话未读数。 - 如果已有会话列表、未读统计或站内信列表中包含
orderId、orderNo、bizId、conversationId等字段,优先使用这些字段做精确映射。 - 如果当前接口没有可稳定映射到订单的字段,前端需要反馈缺字段,不能静默不展示红点。
3. 点击后的状态同步
用户点击「联系房务」进入会话并读完消息后,需要同步刷新:
- 当前订单「联系房务」按钮红点
- 顶部站内信铃铛红点/数量
- 站内信列表该会话未读状态
建议在以下时机刷新:
- 订单详情页进入时
- 打开/关闭聊天窗口后
- 站内信 SSE / 轮询 / unread-count 更新后
- 手动点击“全部已读”后
4. 适用范围
本次明确要求修复:
- 住宿安排卡片:
联系房务
如果「联系车务」「联系服务」使用同一套聊天按钮组件,也应复用相同未读红点逻辑,避免只修房务按钮造成同类问题残留。
验收标准
| 场景 | 期望 |
|---|---|
| 当前订单有 1 条未读订单会话 | 顶部铃铛显示红点,订单详情「联系房务」按钮也显示红点/数字 1 |
| 当前订单无未读,但其他订单有未读 | 顶部铃铛可显示红点,当前订单「联系房务」按钮不显示红点 |
| 点击「联系房务」并读完消息 | 当前按钮红点消失,顶部铃铛和站内信列表同步更新 |
| 切换订单详情 | 红点按新订单重新计算,不沿用上一个订单状态 |
涉及页面/能力
| 页面/能力 | 说明 |
|---|---|
/order-v2/detail/{orderId} |
订单详情住宿安排卡片「联系房务」按钮 |
/notification/my-messages |
站内信列表已有订单会话未读状态 |
| 顶部铃铛 unread-count | 全局未读提示,需要与订单维度按钮状态联动刷新 |