PRDv1.9 · 15

首页底部导航与消息中心优化 · PRD

作者 Luke 版本 v1.9 日期 2026-10-06 状态 待开发评审 平台 BRAND_A & BRAND_B 类 X

模板基准 prd

模板调整说明:沿用最新版精简 PRD 骨架;本需求为纯客户端交互,保留既有 X 类,不硬套 P/R/M/S/K/W。正文合并「入口路由、消息中心、已读红点、批量删除与异常」;不重复既有公告发布与站内信后台规格。原型视觉清单依新版模板收在默认折叠附录。

版本记录
版本 日期 变更摘要
v1.9 2026-10-06 依现网截图把列表动作更正为 View,并明确未读红点只出现在消息行与底栏 Inbox;Announcement/Inbox Tab 标题不显示红点(§2~§3)。
v1.8 2026-10-06 依现网截图移除不存在的 Mark as Read/批量已读;多选底栏只保留 Select All 与 Delete,逐条进详情即读规则不变(§2~§3)。
v1.7 2026-10-06 删除需求 34 边界段;更正未登录点 Inbox/Account 后的登录成功落点为已登录首页(§1);依新版模板将原型视觉清单收为附录 C。
v1.6 2026-10-05 补齐 Client 原型章节追溯,并将提示语的 English 上线文案整理成可机器核对的独立单元格;业务口径不变(§5)。
v1.5 2026-10-05 明确底栏基准完整显示 5 项;未登录点 Inbox 复用已上线注册/登录路由;跑马灯无论登录态只进入 Announcement 单分页;拆分「交付物」与「内容图片槽位」清单,并明确 BO HTML 不适用(§1、附录 C)。
v1.4 2026-10-05 重构为最新版精简版;业务口径不变;补需求 34 的覆盖边界、双语交付与 Client HTML 追溯(§1~§4)。
v1.3 2026-07-29 定案公告公共降级、品牌与生效过滤、逐条/批量已读、越权保护及乐观态(§3~§4)。
v1.2 2026-07-29 定案进详情即读、未登录公告恒未读、批量删除与异常行为(§2~§4)。
v1.1 2026-07-29 定案双登录态、入口初始 Tab 与红点模型(§1~§3)。
v1.0 2026-07-29 初版:底栏、个人中心、跑马灯与消息中心调整(§1~§2)。
目录

L0 · 快速掌握

首页底部导航与消息中心优化资讯图表

① 一句话需求

把消息中心提升为客户端主要入口:跑马灯只进入 Announcement 单分页;底栏 Inbox 保留既有登录限制与回跳,并以一致的逐条已读、批量删除及红点规则呈现结果。

② 术语写死表

词 本文唯一含义
Announcement/公告 按当前品牌发布的公共广播;无 Token 或 Token 失效仍可读取。
Inbox/站内信 只供已登录本人读取的私人消息。
消息中心 有返回、无底栏的二级页;承载公告与站内信。
生效公告 既有公告发布模块判定为已发布、published_at <= now 且未过期的公告。
乐观已读 点进详情时先在本地消红点;只有已读请求明确失败才回滚。

③ 全局红线表

# 不变量 破了会怎样 验证锚点
G1 公告可公开读取;站内信只能由本人读取 公开页被误挡,或私人消息泄露 AC8 AC9 AC17
G2 底部 Inbox 红点只代表未读站内信 公告会制造错误的私人消息提醒 AC12
G3 未登录公告恒未读,点开也不消红点 前端伪造无法归属到人的阅读状态 AC11
G4 进入详情即读;失败才回滚,刷新不得抢先覆盖 红点闪回或误标已读 AC13 AC14
G5 批量删除只移除成功项,删除终态优先 错删、复活或未读数失真 AC15 AC16
G6 公告只显示当前品牌的生效资料 跨品牌或未发布公告外泄 AC10

④ 适用范围与「不做」边界

本期做

  1. 首页入口、登录路由与回跳(§1)。
  2. 消息中心双态、列表、详情与返回(§2)。
  3. 红点、逐条已读、批量删除及并发收敛(§3)。
  4. 品牌、身份、安全与异常降级(§4)。

明确不做

  1. 首页 Header、Banner、游戏大厅,以及 Promo/Deposit/Chat 的既有行为(§1)。
  2. 公告/站内信发布后台、公告生效算法、站内信删除的软删/硬删实现(§4)。
  3. 推广页内容与系统级监控告警(§4)。

阅读者为客户端前端、服务端与测试。


1. 入口与路由

1.1 本需求建立的入口语义

入口 未登录 已登录
首页跑马灯 消息中心 Announcement 单 Tab 消息中心 Announcement 单 Tab
底栏 Inbox 既有注册/登录页;成功后回已登录首页 消息中心 Inbox Tab
底栏 Account 登录页;成功后回已登录首页 打开个人中心面板
个人中心 Announcement 不可达;Account 已先拦截 消息中心 Announcement Tab
个人中心 Affiliate 不可达;Account 已先拦截 既有推广页

1.1.1 跑马灯从「弹窗显示公告」改为「跳公告列表」;不弹窗,也不定位或直达所点公告。

1.1.2 从跑马灯进入时,无论登录态,消息中心都只显示 Announcement 一个分页;此入口不显示 Inbox 分页。

1.1.3 底栏项目名称写死为 Inbox。未登录点击 Inbox 或 Account 进入既有注册/登录页;登录成功只回到登录状态的首页,不直接打开消息中心 Inbox 或个人中心面板。本需求只复用已上线认证流程并做回归保护,不新建认证流程。

1.1.4 登录态在点击入口当下判断;登录成功后的首页须立即呈现已登录状态,用户须再次点击 Inbox 或 Account 才进入对应目标页。


2. 消息中心

2.1 页面状态

状态 Tab 初始页 页面外壳
未登录/公告 Token 失效 仅 Announcement,保留单 Tab 栏 公告 有返回、无底栏
已登录,从底栏 Inbox 进入 Announcement+Inbox 站内信 有返回、无底栏
已登录,从跑马灯进入 仅 Announcement,保留单 Tab 栏 公告 有返回、无底栏
已登录,从个人中心进入 Announcement+Inbox 公告 有返回、无底栏

2.1.1 返回来源页;来源失效时回首页。

2.2 列表与详情

对象 列表 详情与动作
公告 标题、MM/DD/YYYY HH:mm:ss、View;不显示封面图 标题、时间、正文;已登录进详情即标已读
站内信 标题、时间、View;右上 Select 进入多选 进详情即标已读;多选底栏只有 Select All 与 Delete,没有 Mark as Read

2.2.1 进页拉最新,列表以游标滚动加载并支持下拉刷新;Tab 首次进入才拉取,之后切换只显隐,主动刷新除外。

2.2.2 列表无资料显示 No more data…;已登录站内信为空时停在 Inbox,不得自动切到公告。


3. 已读、红点与批量删除

3.1 红点矩阵

位置 已登录 未登录/公告降级
底栏 Inbox 有未读站内信才亮;公告不参与 不亮
Announcement Tab/行 Tab 标题不显示红点;逐条按 is_read Tab 标题不显示红点;每行恒亮
Inbox Tab/行 Tab 标题不显示红点;逐条按 is_read 不显示

3.2 单条已读

3.2.1 点公告或站内信进入详情时,前端立即乐观清除该行红点,并提交已读请求。

3.2.2 请求成功即维持已读;明确失败才恢复红点。请求未决期间,即使下拉刷新返回 is_read=false,也不得覆盖本地乐观态。

3.2.3 未登录/公告降级态不提交公告已读;打开与返回都维持 is_read=false。

3.3 批量删除与并发

动作 成功项 失败项 联动
批量删除 从列表移除 保持原态 依剩余未读重算底栏 Inbox 红点

3.3.1 删除 batch 返回后,不论目前在哪个 Tab,都立即更新本地站内信资料源。

3.3.2 同一消息的删除与已读并发时,删除为终态,后到的已读不得让消息恢复可见。并发已读为幂等,任一成功即收敛为已读。

3.3.3 删除期间新下发的消息及未包含在成功 ID 的消息必须保留。


4. 资料、安全与异常

4.1 身份与资料范围

对象 读取 状态变更 失败一致性
公告 公共;按当前品牌且仅生效 只有已登录用户可写本人已读 未发布、过期、跨品牌、不存在统一失败
站内信 Token 解析本人+当前品牌 detail/read/delete batch 逐条校验 不存在、非本人、跨品牌统一失败

4.1.1 用户身份不得从请求参数取得;列表与详情只回必要字段,不下发他人资料或内部统计。

4.2 异常与降级

场景 系统结果 用户可见结果
公告接口带失效 Token 降级公共读取,is_read=false 留在公告页,不提示、不跳登录
私人接口 E_AUTH 清本地登录态;停止当前消息页私人交互 Toast 后跳登录,不继续显示私人内容
列表失败且有缓存 显示旧资料并允许恢复 缓存+骨架;可下拉刷新/重试
列表失败且无缓存 不伪造资料 骨架+重试入口
主动重试仍失败 保持当前页 轻 Toast,可继续重试
红点接口失败 暂按无未读处理 隐藏红点;后续成功即恢复

4.2.1 游标异常、翻页去重、删除 batch 空数组/上限/去重、删除底层实现及公告生效算法沿用现有平台,本需求不重定义。


5. 提示语

场景 中文对照 English 上线文案 呈现与结果
私人接口会话失效 登录已过期,请重新登录 Session expired. Please log in again. ↪ 平台通用;轻 Toast;随后跳登录。
列表为空/到底 没有更多资料… No more data… 空态或列表底部。
重试仍失败 网络异常,请稍后再试。 Network error. Please try again later. 轻 Toast;停留并允许重试。

6. 待确认项

本版无待确认项。实现细节沿用既有的项目,不构成本需求新选型。


附录 A:验收标准
# P 验收点
AC1 P0 未登录点底栏 Inbox/Account 进入既有注册/登录页;登录成功后只回已登录首页,不直接进入消息中心或个人中心;认证流程本身不在本需求重做。
AC2 P0 已登录从底栏 Inbox、跑马灯、个人中心 Announcement 进入时,初始分页分别为 Inbox、Announcement、Announcement;其中跑马灯入口只显示 Announcement 单分页。
AC3 P0 任一登录态点跑马灯只进 Announcement 单分页,不显示 Inbox、不弹窗、不直达详情。
AC4 P1 消息中心有返回且无底栏;来源失效时返回首页。
AC5 P1 已登录站内信为空仍停在 Inbox,并显示 No more data…。
AC6 P1 公告行无封面,时间与 View 格式正确。
AC7 P1 首页底栏完整显示 Promo|Inbox|Deposit|Chat|Account 五项,且 Inbox 为第 2 项。
AC8 P0 无 Token/公告 Token 失效仍返回当前品牌生效公告,不 E_AUTH(G1 G6)。
AC9 P0 站内信 detail/read/delete batch 拒绝非本人、跨品牌或无效 ID,且统一失败(G1)。
AC10 P0 未发布、未来发布、过期、跨品牌公告不出现在 list/跑马灯,detail/read 也不可枚举(G6)。
AC11 P0 未登录公告每行红点恒亮;进详情再返回也不消;Tab 标题不显示红点(G3)。
AC12 P0 只有未读站内信可点亮底栏 Inbox;只有新公告时不亮(G2)。
AC13 P0 进详情即乐观消点;明确失败回滚;成功后不依赖返回列表(G4)。
AC14 P0 read 未决时刷新返回未读,不得让红点闪回(G4)。
AC15 P0 删除 batch 部分成功时只移除成功项,并按剩余未读更新底栏 Inbox 红点;页面没有批量已读或 Mark as Read(G5)。
AC16 P0 删除与 read 并发命中同一条时,该条保持删除;期间新消息保留(G5)。
AC17 P0 私人接口 E_AUTH 显示逐字 Toast,清登录态、停止私人互动并跳登录(G1)。
AC18 P1 列表与红点异常分别按 §4.2 降级,且恢复后可重新呈现最新状态(G1 G2)。
附录 B:来源与优先级
  1. 本文业务规则来自 v1.3 定案稿。
  2. Axure 更新5_home_首页 与 更新1_message_消息中心 提供界面与入口证据。
  3. Axure 与本文冲突时以本文为准。
附录 C:原型视觉清单
视觉 ID 载体 用途 证据
VIS-CLIENT-NONE Client 本需求不使用内容图片或图片占位;底栏 icon 仅为界面符号 L0 ④

C.1|本需求应交付什么

交付 ID 交付物 必须呈现 文件
INFO-ZH 中文资讯图表 完整 5 项底栏;跑马灯仅到 Announcement;登录成功只回已登录首页 infographic/prd_v1.7_infographic.png
INFO-EN English infographic 与中文资讯图相同口径 infographic/prd_v1.7_infographic_en.png
CLIENT-HOME Client HTML 首页 线上结构示意、完整 5 项底栏,且第 2 项明确为 Inbox prototype/Html_Client_v*_bottomNavMessageCenter.html
CLIENT-ANNOUNCEMENT Client HTML 消息中心 跑马灯入口只显示 Announcement 单分页;底栏 Inbox 入口保留双分页与 Inbox 初始页 同上
BO-N/A BO HTML 不交付:本需求没有新增或修改 BO 页面、权限或操作;沿用既有公告/站内信发布后台 N/A

上方表格供机器核对 HTML 内容图片/图片占位数量;C.1 供人核对完整交付物。两者不可混用。图标、手机外框、载入骨架、红点与标注符号不属于视觉素材槽位。


文档版本:v1.9 | 日期: 2026-10-06 | 作者: Luke | 文档状态:待开发评审