1. 需求背景
- 当前
讯息列表缺少明确的会话分组,用户无法快速切换查看全部、好友与未读会话。 - 右上
+入口承载多个高频动作,但尚未形成完整的新聊天、搜寻、邀请和批量处理链路。 - 当前搜寻缺少历史回流,用户重复查找同一账号时仍需反复输入,操作成本高。
- 当前加好友与联络页缺少具备转化能力的推荐模块,无法主动曝光主播或可加好友账号。
- 当前联络列表只有浏览能力,缺少对低价值联系人进行隐藏或删除的轻量管理动作。
本方案覆盖 讯息 Tab 与 联络 Tab 两个主入口的交互改版:在讯息页补齐
全部 / 好友 / 未读 分组、右上 + 操作菜单、搜寻历史、加好友推荐、
新对话、邀请好友与批量操作链路;在联络页顶部新增精美推荐好友 / 推荐主播区,并补齐联络项的
隐藏 / 删除 操作。所有原型均按你提供的截图排版,PRD 同步明确排序、展示、返回、
批量动作与推荐随机逻辑,方便直接进入实现评审。
讯息 与 联络 两个一级页签,统一消息处理入口与联系人发现入口。
搜寻 / 加好友 / 扫一扫 / 新聊天 / 邀请好友 / 批量置顶 / 联系客服。
讯息 分组默认进入 全部,仅保留 好友 与 未读 两个辅助筛选。搜寻 页固定展示 近 10 笔搜寻;点击任一历史记录后回填输入框并直接执行搜寻。新对话 的搜寻交互与 搜寻用户 同规则,点击搜寻结果或联络列表项后直接进入一对一聊天;搜寻无结果时展示错误提示弹窗。联络 Tab 顶部推荐模块固定展示,不随 全部 / 群管 / 主播 / 客服 筛选切换而隐藏。讯息 列表缺少明确的会话分组,用户无法快速切换查看全部、好友与未读会话。+ 入口承载多个高频动作,但尚未形成完整的新聊天、搜寻、邀请和批量处理链路。讯息 Tab 顶部新增 全部 / 好友 / 未读 三个分组;默认选中 全部,右上 + 展开 7 个动作入口;好友 / 未读 需补齐独立空状态图示与文案。我的小程序 右侧不额外挂 全部/更多 入口,截图内按钮选中态需与当前空状态完全对应。加好友 进入搜寻用户页;顶部保留 ID 搜寻,新增 推荐好友 与 推荐主播 模块,推荐池同时覆盖所在群组与可跨群推荐对象;点击推荐卡片 加好友 后直接建立好友关系并进入一对一聊天。新聊天 进入 新对话 页;空态展示最近联系和联络分组,搜寻结果态只展示匹配账号,点击任一项直接进入一对一聊天;无结果时弹出错误提示弹窗。邀请好友 进入 我的邀请 页;点击左上返回时回到原讯息列表,点击主按钮进入现有邀请动作链路。批量置顶 进入统一多选页;勾选会话后底部主按钮展示 置顶(N),顶部筛选按钮灰阶禁用,点击主按钮后弹出单一确认弹窗。联络 Tab 顶部固定新增推荐好友 / 推荐主播模块;推荐逻辑与加好友页一致;点击推荐卡片 加好友 后直接进入一对一聊天,从聊天返回时回到联络列表。
原型区按实际交互路径排版:先看 讯息 Tab 的分组和右上 + 菜单,再看搜寻、加好友、
新对话、邀请好友与批量操作,最后落到 联络 Tab 的推荐区与隐藏 / 删除动作。
全部 / 好友 / 未读 三个分组,右上 + 固定展开 7 个动作入口,截图维持原始比例。
全部 展示全部会话;好友 仅展示好友会话;未读 仅展示未读数大于 0 的会话。
+ 固定自上而下展示 搜寻、加好友、扫一扫、新聊天、邀请好友、批量置顶、联系客服。
无好友、无未读 两个整页空状态;我的小程序 右侧直接延续小程序区域,不额外挂 全部/更多 入口。
好友 显示 当前没有好友聊天;未读 显示 当前没有未读消息。
全部/更多 入口;两页均使用完整整页截图,不再切成上中下三段组合示意。
| 字段名称 | 定义 | 交互 | 规则说明 |
|---|---|---|---|
| 分组按钮 | 全部 / 好友 / 未读 |
点击后切换当前讯息列表筛选结果。 |
|
| 全部 | 展示全部会话。 | 进入页默认命中该分组。 |
|
| 好友 | 仅展示好友会话。 | 点击后切换为好友列表;无数据时进入好友空状态。 |
|
| 未读 | 仅展示 unread_count > 0 的会话。 |
点击后切换为未读列表;无数据时进入未读空状态。 |
|
| 右上+菜单 | 固定 7 个动作入口。 | 点击右上 + 展开动作菜单。 |
|
| 搜寻 | 进入搜寻页。 | 点击后跳转到搜寻页面,展示近 10 笔搜寻。 |
|
| 加好友 | 进入搜寻用户页。 | 点击后跳转到加好友页面。 |
|
| 扫一扫 | 进入现有扫一扫链路。 | 点击后调用既有扫一扫能力。 |
|
| 新聊天 | 进入新对话页。 | 点击后跳转到新对话页面。 |
|
| 邀请好友 | 进入我的邀请页。 | 点击后跳转到邀请页面。 |
|
| 批量置顶 | 进入批量置顶多选页。 | 点击后切换到批量模式。 |
|
| 联系客服 | 直接进入客服一对一对话。 | 点击后不经过中间列表,直接拉起与客服的单聊会话。 |
|
| 字段名称 | 定义 | 交互 | 规则说明 |
|---|---|---|---|
| 空状态页 | 拆分为 好友、未读 两个独立整页。 |
通过上方 tab 切换对应空状态页面。 |
|
| 好友空状态 | 文案为 当前没有好友聊天。 |
点击 好友 且无数据时展示。 |
|
| 未读空状态 | 文案为 当前没有未读消息。 |
点击 未读 且无数据时展示。 |
|
| 版式要求 | 与其他手机端原型保持一致比例。 | 空状态页直接整页展示,不额外叠加搜寻框。 |
|
| 异常处理 | 切换失败时保留当前页并提示。 | 先本地切换,后台异步补同步。 |
|
推荐好友 与 推荐主播 两个精美推荐区;点击卡片 加好友 后直接加好友并进入一对一聊天。
推荐好友 包含 所在群组群主 / 群管 与 非所在群组群主 / 群管;推荐主播 额外纳入 当前直播主播,并保留所在群组与跨群可推荐主播。
加好友 后立即送出加好友请求;成功后建立一对一会话并自动进入聊天页,聊天页返回依来源回到原列表。
| 字段名称 | 定义 | 交互 | 规则说明 |
|---|---|---|---|
| 推荐好友池 | 由所在群组群主 / 群管、非所在群组群主 / 群管组成。 | 进入页面时加载;点击 换一批 只刷新该模块。 |
|
| 推荐主播池 | 由当前直播主播、所在群组主播、跨群可推荐主播组成。 | 进入页面时加载;点击 换一批 只刷新该模块。 |
|
| 随机抽样 | 先按优先层级补位,再在当前层内随机抽样。 | 每次进入页面或点击 换一批 后重算结果。 |
|
| 推荐卡片 | 展示头像、昵称前 5 个字、火热程度。 | 点击 加好友 后直接建立好友关系并进入一对一聊天。 |
|
| 推荐加好友流程 | 推荐好友与推荐主播共用同一套加好友后进入聊天流程。 | 点击卡片按钮后直接加好友,成功后进入一对一聊天。 |
|
| 刷新频率 | 仅在进入页 1 次与手动刷新时更新。 | 点击 换一批 立即刷新当前模块。 |
|
| 不足 4 位 / 空池 | 按实际人数展示,不补假卡。 | 不足 4 位时仍展示模块;无可推荐时隐藏整个推荐区块。 |
|
| 剔除与异常 | 不符合资格的账号即时移出推荐池。 | 操作失败时保留原卡片并异步重试。 |
|
精确 ID 命中优先、昵称前缀命中次之、昵称包含命中最后;点击任一搜寻结果或联络列表项后直接进入一对一聊天。
不存在此ID號的資訊,您可能輸錯了吧!;点击 确定 关闭弹窗并保留输入内容。
| 字段名称 | 定义 | 交互 | 规则说明 |
|---|---|---|---|
| 搜寻范围 | 好友 ID、好友昵称。 | 输入关键字后直接触发搜寻。 |
|
| 命中优先级 | ID 完全相同 > 昵称开头相同 > 昵称包含关键字 |
按优先级逐层匹配,前一层命中后不再进入下一层。 |
|
| 默认列表 | 展示最近联络与全部联络人分组。 | 未输入关键字时展示默认列表态。 |
|
| 结果点击 | 点击搜寻结果、最近联络项或联络列表项。 | 点击后直接进入一对一聊天。 |
|
| 无结果弹窗 | 文案固定为 不存在此ID號的資訊,您可能輸錯了吧!。 |
搜寻无命中时弹出;点击 确定 后关闭。 |
|
| 异常处理 | 搜寻或进入聊天失败时保留当前状态。 | 前端保留输入与结果态,后台异步补同步。 |
|
邀请好友 进入 我的邀请 页面,主按钮为 立即邀请,左上返回回到讯息列表。
+ 点击 邀请好友 后 push 到 我的邀请 页面,不在当前列表页弹窗承载。
我的邀请 左上返回时,固定返回发起入口的 讯息列表,并保留原分组与滚动位置。
| 字段名称 | 定义 | 交互 | 规则说明 |
|---|---|---|---|
| 页面标题 | 我的邀请 |
进入页面后顶部固定展示。 |
|
| 主按钮 | 立即邀请 |
点击后进入现有邀请动作链路。 |
|
| 统计字段 | 累计邀请人数、邀请奖励。 | 进入页面时展示当前统计数据。 |
|
| 返回行为 | 固定返回讯息列表原入口。 | 点击左上返回执行回跳。 |
|
批量置顶。
取消,右侧主按钮固定为 置顶(N);未选择时主按钮禁用。
确认置顶这 N 个聊天?。
全部 / 好友 / 未读 按钮进入灰阶不可点击态;点击 确认 执行动作并刷新当前分组列表。
| 字段名称 | 定义 | 交互 | 规则说明 |
|---|---|---|---|
| 批量动作 | 仅支持 置顶。 |
从右上 + 点击 批量置顶 进入。 |
|
| 会话选择 | 进入批量态后,会话前展示 checkbox。 | 勾选会话后累计选中数量。 |
|
| 底部主按钮 | 固定展示 置顶(N)。 |
勾选数量大于 0 时启用。 |
|
| 确认弹窗 | 文案固定为 确认置顶这 N 个聊天?。 |
点击主按钮后弹出;点击确认后提交。 |
|
| 分组按钮状态 | 批量态下 全部 / 好友 / 未读 进入灰阶禁用。 |
退出批量态后恢复可点击。 |
|
| 异常处理 | 提交失败时保留当前勾选状态。 | 前端先锁定当前勾选状态,后台异步同步。 |
|
推荐好友 / 推荐主播 模块;点击推荐卡片 加好友 后直接进入一对一聊天,返回回联络列表。
隐藏 与 删除;隐藏 仅隐藏当前用户本地展示,不影响好友关系与历史聊天;删除 解除联络关系,并同步清出联络相关默认列表。
加好友 后不再停留确认页;成功后直接进入一对一聊天,聊天页点击返回固定回到联络列表并刷新推荐区。
| 字段名称 | 定义 | 交互 | 规则说明 |
|---|---|---|---|
| 推荐区 | 固定展示 推荐好友 与 推荐主播 两个模块。 |
页面顶部固定展示,不随下方筛选切换隐藏。 |
|
| 推荐池与优先级 | 共用 03 页的推荐池组成、优先级、随机抽样、更新频率与空池策略。 | 进入页、换一批时按同规则重算。 |
|
| 推荐卡片 | 展示头像、昵称前 5 个字、火热程度。 | 点击 加好友 后直接加好友并进入一对一聊天。 |
|
| 推荐加好友流程 | 联络页推荐好友 / 推荐主播卡片的加好友主流程。 | 点击 加好友 后,成功即进入该对象的一对一聊天,并支持返回联络列表。 |
|
| 左滑动作 | 固定为 隐藏 与 删除。 |
左滑联系人行后露出操作按钮。 |
|
| 隐藏 | 仅隐藏当前用户本地展示,不解除好友关系。 | 执行后从联络列表、最近联络、新对话默认列表移除。 |
|
| 删除 | 解除当前联络关系。 | 执行后同步从联络列表、最近联络、新对话默认列表、推荐去重缓存移除。 |
|
| 异常处理 | 隐藏、删除、恢复展示同步失败时保留当前结果。 | 前端先保留当前操作结果,后台异步补同步。 |
|
| 4. 权限规则 |
1. 讯息分组、右上 + 菜单与搜寻历史仅对当前登录用户本人展示,不同步给其他终端。2. 好友、未读 分组仅作用于 讯息 页签,不影响 联络 与 群组 页签独立列表。3. 推荐模块仅展示符合推荐资格的账号;已删除、已拉黑、被系统禁推、本人账号不允许进入推荐池;跨群推荐仅对被允许跨群曝光的群主 / 群管 / 主播生效。 4. 若当前账号无加好友权限,则推荐卡片按钮禁用,保留浏览展示。 4.1 推荐好友 / 推荐主播仅推荐 尚未加好友 的账号;点击 加好友 成功后,应立即建立好友关系并进入一对一聊天。5. 新对话 仅可检索当前可聊天的好友 / 联络对象;不可透过该入口搜出陌生人并直接发起聊天。6. 批量模式仅支持 批量置顶,一次仅允许一种动作态。7. 批量置顶仅对当前筛选结果中的可见会话生效,不跨分组批量处理未加载列表项。 8. 联络页 隐藏 与 删除 仅对当前用户生效;隐藏 不改变好友关系、不删除历史聊天、不中断既有聊天权限。9. 删除 成功后双向关系按现有平台联络规则处理;删除后该账号需同步从联络列表、最近联络、新对话默认列表与推荐缓存中移除。10. 被隐藏账号仍允许在搜寻结果中命中;是否重新展示到联络页列表,取决于后续是否有独立恢复入口或新消息触发规则。 11. 联系客服 入口点击后直接进入客服一对一对话;若已有客服会话则复用现有会话。 |
|---|---|
| 5. 返回链路规则 |
1. 从 讯息 页通过右上 + 进入 搜寻、加好友、新对话、我的邀请 页面时,进入时记录 source_tab = message、source_group 与当前滚动位置。2. 搜寻 页点击左上返回时,回到原 讯息 分组列表,并恢复进入前的滚动位置。3. 加好友 页点击左上返回时,回到原 讯息 分组列表;若从推荐卡片加好友后进入一对一聊天,聊天页返回优先回到来源页,来源为 联络 Tab 时固定返回联络列表。4. 新对话 页点击左上返回时,回到原 讯息 分组列表;若从 新对话 进入一对一聊天,则聊天页返回优先回到 新对话,再次返回才回到讯息列表。5. 我的邀请 页点击左上返回时,固定返回原 讯息 分组列表。6. 批量模式点击底部 取消 时,退出批量态并回到进入前的原分组列表;若操作完成,则留在当前分组并刷新结果。7. 联络页推荐卡片加好友后进入一对一聊天,点击聊天页返回时需回到 联络 Tab 原筛选、原滚动位置,并刷新推荐区与联络列表。8. 若来源分组不存在、参数丢失或页面已失效,则统一兜底返回 讯息 / 全部 列表;若来源标记为 contact,则兜底返回 联络 列表。9. 触发兜底返回时,toast 固定提示 原来源页面已失效,已返回列表。 |
| 6. 异常场景 |
1. 所有新增操作若遇到网络不稳、接口超时或状态无法立即同步:前端先保留当前页面状态并走异步补同步;toast 统一提示 网络不稳,操作未同步,请稍后重试。2. 当前无搜寻历史:不展示历史记录列表,仅展示空态提示。 3. 搜寻关键字无命中:展示弹窗 不存在此ID號的資訊,您可能輸錯了吧!,关闭后保留当前输入内容,不保留旧结果。4. 推荐好友池不足 4 个:按实际人数展示;若仅剩 1-3 位,则保留模块并允许后续 换一批 回流同池账号。5. 推荐主播池不足 4 个:按实际人数展示,不补占位卡;若只剩当前直播主播 1 位,也允许单卡展示。 6. 点击 换一批 后无更多候选:回到当前批次首轮结果,并允许重复回流已展示账号。7. 最近联络为空:不展示最近联络区,仅展示全部联络人。 8. 批量模式未勾选任何会话:底部主按钮保持禁用,点击无动作。 9. 批量置顶请求失败:关闭 loading,保留当前勾选状态,toast 提示 操作失败,请稍后重试。10. 批量置顶过程中部分会话置顶失败:仅更新成功项,失败项保留在原列表并 toast 提示 部分会话置顶失败,请稍后重试。11. 隐藏联系人后重新刷新列表:被隐藏联系人不再出现在联络列表与最近联络区,但不影响历史聊天记录存在。 12. 删除联系人后该账号已置顶或在最近联络中:同步从联络列表、最近联络与推荐去重缓存中移除。 13. 已隐藏联系人若收到新消息:讯息列表仍按正常会话流转展示;联络页是否恢复显示按隐藏规则处理,不自动加入最近联络。 14. 新对话搜寻命中已隐藏联系人:若双方仍可聊天,则允许搜出并进入一对一聊天,但不自动恢复联络页展示。 15. 新对话搜寻命中已删除联系人:若平台规则要求先重新建立关系,则不直接进入聊天,按现有平台关系校验处理。 16. 点击历史搜寻记录后目标账号已失效:沿用当前无结果弹窗文案,不保留旧结果列表。 17. 推荐池中账号刚被加好友、隐藏、删除、下播或失去跨群推荐资格:下一次 换一批 或页面重进时需即时剔除,避免重复推荐。18. 被删除联系人若仍存在未读消息或置顶状态:删除成功后需同步清理对应未读筛选命中和置顶状态,避免脏数据残留。 19. 当前用户所在群组为空且无跨群可推荐对象、或当前无主播在播:推荐模块按空池展示,不补假卡片、不展示无效按钮。 20. 推荐卡片加好友成功但进入聊天失败:好友关系仍保留,toast 提示 聊天开启失败,请稍后重试,并回到来源列表刷新状态。21. 推荐卡片加好友请求处理中重复点击:忽略后续点击,保留按钮 loading,直到成功或失败回写。 |
| 模块 | 建议新增字段 | 说明 |
|---|---|---|
| 讯息分组 | message_group_type / is_friend_conversation / pin_time / latest_message_time / unread_count |
用于支撑 全部 / 好友 / 未读 三分组的过滤与排序,并兼容批量置顶后的会话状态管理。 |
| 右上+菜单 | message_plus_entry_list / entry_code / entry_sort / entry_enabled |
用于统一管理右上 + 菜单 7 个动作入口的顺序、显隐与禁用态。 |
| 搜寻历史 | search_keyword / search_type / search_history_list / search_history_updated_at |
用于保存近 10 笔搜寻记录、去重、回填与排序展示。 |
| 推荐模块 | recommend_scene / recommend_section_type / recommend_group_id / recommend_batch_seed / recommend_batch_no / recommend_user_list / is_streamer / is_group_admin / recommend_hot_level / recommend_click_source / friendship_request_status / target_conversation_id |
用于区分加好友页与联络页推荐场景,管理所在群组 / 非所在群组群主群管、当前直播主播、跨群主播推荐池,并控制 推荐好友、推荐主播、换一批、火热标签、推荐加好友状态与成功后进入一对一聊天。 |
| 新对话 | contact_search_keyword / contact_search_result / recent_contact_list / contact_group_label / contact_alpha_index / search_empty_popup_text |
用于支撑 新对话 搜寻态、最近联络、分组联络列表展示,以及无结果弹窗文案。 |
| 批量操作 | batch_action_type / selected_conversation_ids / selected_count / batch_confirm_text / batch_request_id |
用于支撑批量置顶的多选页、确认弹窗、请求幂等与失败重试。 |
| 联络动作 | contact_hidden / contact_deleted / contact_swipe_action_state / contact_role_tag |
用于联络列表的隐藏、删除、左滑动作状态和下方筛选项联动。 |