# 11 · 消息完整设计 > Route: `/message` · Design Complete --- ## 1. 目标 聚合 AI / 达人 / 社区 / 系统 / 商业通知;驱动回到「问」或咨询会话。 --- ## 2. UI 清单 ### 2.1 顶栏(✅ E8) | ID | 元素 | 行为 | |---|---|---| | M-TITLE | 「消息」 | — | | M-SEARCH | 搜索图标 | 搜会话/通知 | | M-CLEAR | 扫帚图标 | 清理/标记已读(无「全部已读」文案) | ### 2.2 列表形态(✅ E8 · 无顶部分段) **无** `全部|AI|达人|互动|系统` Segment;为**分组会话列表**: | 行类型 | 示例 | 角标 | |---|---|---| | 系统通知 | 「检测到新的登录行为…」 | 未读数字 | | AI 助手 | 「小星」+ AI 角标 | 未读数字 | | (登录后)达人/互动 | 待更多账号补证 | — | 底部可出系统通知引导条:「开启系统通知…」+「去开启」+ 关闭。 ### 2.3 会话行 `MessageRow` | 字段 | 说明 | |---|---| | avatar | 系统铃铛 / 小星 IP / 达人头像 | | title | 会话名 | | preview | 最后一条摘要 | | time | 相对时间(今天时刻 / 昨天) | | badge | 未读数 | ### 2.4 系统通知详情(✅ E8) 路由级页「系统通知」:时间分隔 + 卡片列表(纯文本 / 链接「点击查看」/ 运营富媒体)。 ### 2.5 空态 插画 + 引导回「问」(未在本版截到空态)。 --- ## 3. 交互 | 操作 | 结果 | |---|---| | Tap 行 | AI→Ask 线程;达人→ConsultSession;互动→动态/私信;系统→详情 H5;商业→会员/订单 | | LongPress | 置顶 / 免打扰 / 删除 | | 左滑 | 删除(iOS 风格);Android 长按菜单 | | 下拉 | 刷新 | --- ## 4. 状态机 `Loading` · `Ready` · `Empty` · `Offline` · `Error` · `AuthRequired` 未读角标:`GET /v1/messages/unread_count` 与 TabBar 同步;前台 30s 轮询或 WS 推送(D:优先 WS,降级轮询)。 --- ## 5. API | API | 说明 | |---|---| | `GET /v1/messages?type=&cursor=` | 列表 | | `POST /v1/messages/{id}/read` | 已读 | | `POST /v1/messages/read_all` | 全读 | | `DELETE /v1/messages/{id}` | 删会话 | | `POST /v1/messages/{id}/mute` | 免打扰 | | `GET /v1/messages/unread_count` | 角标 | Message DTO: ```json { "id": "uuid", "type": "ai|expert|social|system|commerce", "title": "", "preview": "", "avatar_url": "", "unread": 0, "muted": false, "ref": {"kind":"conversation|consult|url","id":""}, "updated_at": "ISO8601" } ``` --- ## 6. 异常 推送权限拒绝:仅站内;首次提示去设置。 Token 失效:清列表进 Auth。 删除失败:Toast 回滚 UI。 --- ## 7. 埋点 `message_tab_expose` · `message_open{type}` · `message_read_all` · `message_delete` · `message_mute` ## 8. 校验 ID `V-M01` 分类形态 · `V-M02` 行字段 · `V-M03` 长按菜单项 · `V-M04` 角标规则