# U8 Chat · 单聊快速建群（发起群聊）产品需求文档 PRD

| 项目 | 内容 |
|---|---|
| 文档版本 | **v1.8** —— 在 v1.7 基础上：**删掉「建群失败」那一屏**（失败提示沿用现有设计，不再重画）。v1.7 —— 按产品 2026-10-09 口径大改：**完整沿用现有「新建群组」流程与页面**（选人页 → **设置群名称** → 立即创建），**唯一的差别＝第一个用户（当前单聊对象）锁定**；**Web 端本期不做**，只做移动端 |
| 功能模块 | 单聊 → 快速建群（用户可见的名字：**发起群聊**） |
| 适用端 | **移动端 iOS / Android**（**Web / Desktop 本期不做** —— 改动较大，见 7.1） |
| 入口 | **单聊资料页**（iOS：点聊天页右上角头像进入；安卓：点右上角 `···`） |
| 演示与逐屏 | 同目录 `index.html`（**10 屏**：iOS 8 ＋ 安卓 2） |
| 参照产品 | U8 现有的「创建群聊 / 新建群组」—— **本次不是新流程，只是它的一个入口变体** |
| 设计稿 | 选人页、设置群名称页**都沿用现有画板**（`umRiEY84pJQmfomeNkbjOf`：「联系人-新建群组」安卓 `2282:64975`、已选态 `2282:65092`、设置群名称 `2282:65230`）；资料页的「发起群聊」成员行是本功能**新增**（无画板）。**最终以 UI 为准** |
| 口径来源 | 2026-10-09 产品拍板：① **完整沿用现有建群流程与页面**（含「设置群名称」这一步）；② **唯一差别＝第一个用户锁定**（已选、不可取消）；③ **不限人数**（选人页不显示人数计数）；④ **群名按成员名预填、可改**；⑤ **Web 端本期不做**，只做移动端 |

> **本演示与 PRD 都是「UI 设计之前的输入」**：讲清楚「入口在哪、和现有建群流程差在哪一步、群名怎么来」。**最终视觉以 UI 为准**。

---

## 一、背景与目标

### 1.1 背景

U8 目前只有一条建群路径：首页 ＋ →「创建群聊」→ 选人页 → 设置群名称 → 立即创建。

问题出在**最高频的那个建群动机**上：「我正在跟某人聊天，想再拉两个人一起说」。

- 微信在这条路上只要两步：单聊里点 ＋ → 勾人 → 完成。
- U8 现在要先离开这个会话、回到首页、点 ＋、进选人页，**再把刚才聊天的那个人从几百个联系人里重新找出来** —— 不但绕，而且容易漏掉「本来就在聊的那个人」。

### 1.2 目标

1. 在单聊里加一个入口，**点一下就把当前对话的人带进选人页**（已选、不可取消），再选几个人即可成团。
2. **不新造流程、不新造页面**：选人页与设置群名称页**完全沿用现有「新建群组」的那两页**，降低开发与 UI 成本。
3. **把「快」做在细节上**：设置群名称页的**群名已经按成员名字填好**，想快就直接点「立即创建」。

### 1.3 不做什么（一句话）

不做新的选人页 / 新的建群流程、不做建群前的确认页、**不做 Web / Desktop 端**、不做「把原单聊升级成群聊」（不迁移聊天记录）。

---

## 二、范围

### 2.1 本期做

| # | 模块 | 内容 |
|---|---|---|
| ① | 移动端入口 | 单聊资料页新增一行 **「发起群聊」**（左侧文字 ＋ 右侧「对方头像 32 ＋ 加号 32」，整行可点）★ 新增。**建群失败的提示沿用现有设计，本次不重新画页面** |
| ② | 选人页 | **完全沿用现有「新建群组」选人页**（右下角箭头、右侧字母索引、已选胶囊、按拼音分组、搜索）；**唯一的差别**＝当前单聊对象**默认已选、不可取消**（勾选按钮置灰） |
| ③ | 人数 | **不限人数**：选人页**不显示「已选 / 上限」计数**，也不新增人数上限规则 |
| ④ | 设置群名称页 | **沿用现有第二步**；**群名已按成员名字预填**（可改），想快就直接「立即创建」 |
| ⑤ | 建群结果 | 建群成功 → **直接跳转到新群聊天页**；我自动成为群主；新群里出现一条系统提示（沿用客户端已有文案）；**原单聊完全不变** |
| ⑥ | 安卓端 | 与 iOS **同一套规则**，版式照安卓画板 |

### 2.2 本期不做

| 不做的事 | 说明 |
|---|---|
| **Web / Desktop 端** | **改动较大，本期不做**（见 7.1）。Web 端的入口、选人弹窗、建群后的抽屉切换都不在本次范围 |
| 新的选人页 / 新的设置群名称页 | 一律沿用现有「新建群组」的页面，不自创样式 |
| 建群前的确认页 | 不做（现有流程本来也没有） |
| 把原单聊**升级**成新群 / 迁移聊天记录 | 技术上是「新建一个群」，与原单聊完全无关（见 5.5） |
| 群名去重、群名冲突校验 | 沿用现有规则 |
| 拉人时的申请 / 审批流 | 不做，直接入群 |

---

## 三、流程：与现有「创建群聊」逐步对照

| 步骤 | 现有「创建群聊」（首页 ＋ → 创建群聊） | 快速建群「发起群聊」（本次） |
|---|---|---|
| 1 | 首页 ＋ 菜单 → 点「创建群聊」 | **单聊资料页** → 点「发起群聊」 |
| 2 | **选人页**（从零选） | **同一个选人页** —— 差别只有：**当前单聊对象已经选上、取消不掉** |
| 3 | **设置群名称**（手填群名） | **同一个页面** —— 差别只有：**群名已经按成员名字填好**（可改） |
| 4 | 点「立即创建」→ 进新群 | **完全一样** |

> **一句话**：这是同一条流程的**另一个入口**，中途只多做了一件事 —— **把当前单聊的人预先放进选人页**。

---

## 四、本次唯一的改动：锁定第一个用户

| 项 | 规则 |
|---|---|
| 谁被锁定 | **当前单聊的对象**（不是我自己；我自己本来就在群里） |
| 初始状态 | 在选人页里**默认已勾选**，并且在「已选区」里显示 |
| 能不能取消 | **不能** —— 点它没有反应（勾选按钮**置灰**，让人一眼看出「这个改不了」） |
| 为什么锁定 | 用户是**从「和这个人聊天」进来的**，「带上他」是这条路径的前提；允许取消就可能建出一个和当前对话无关的群 |
| 副产物 | 因为永远至少有对方一个人，选人页右下角的箭头**一直是可以点的**（不会出现「一个都没选」的置灰态） |
| 能不能改人数上限 | 不限人数（见 2.1 ③） |

---

## 五、群名：沿用「设置群名称」这一步，但**已经填好**

### 5.1 规则

| 项 | 规则 |
|---|---|
| 这一步还在不在 | **在**（与现有流程完全一致：选人页 → 设置群名称 → 立即创建） |
| 群名怎么来 | **打开这一步时就已经填好**：按**成员昵称拼接**（如「毛毛、王力宏、李维」） |
| 用户能不能改 | **能**，就是现有的输入框，点进去改即可 |
| 拼法 | 不超过 **3 人**全部列出；**超过 3 人** → 「毛毛、王力宏、李维 **等 5 人**」（与系统提示里那套取名规则一致） |
| 「我」算不算 | **不算**（只列其他成员的昵称）—— 是否要把「我」也列上，见待确认 ⑤ |
| 成员重名 | 沿用现有规则（是否追加区分字符），见待确认 ⑤ |
| 群名过长 / 为空 | **沿用现有「新建群组」的校验与提示**，本次不新增规则 |
| 为什么这么做 | 既**保留了原有流程**（群名这一步还在，用户想改就改），又满足了「发起群聊」要的「快」（不用手打名字） |

### 5.2 这样做的取舍

- **好处**：完全不动现有建群逻辑与页面，开发和 UI 都最省；用户对「建群要起名字」这件事有预期。
- **代价**：比微信那种「勾完直接就建好了」多一次点击 —— 但这个点击可以**直接点右上角「立即创建」**，不需要输入任何东西。

---

## 六、建群结果与其它规则

### 6.1 建群成功之后

| 项 | 规则 |
|---|---|
| 成功 | **直接跳转到新群的聊天页**（与原单聊不是同一个会话） |
| 群名 | 上一步填的那个（默认是成员名拼接） |
| 我 | **创建者，自动成为群主**（2026-10-09 产品拍板）；群内权限跟「新建群组」一致 |
| 群类型 | 与「新建群组」的默认一致，**不新增规则** |
| **新群里的系统提示** | 群创建后出现**一条系统提示**，文案**沿用客户端已开发好的那条**：**「您已添加XXX加入群聊」**（2026-10-09 产品拍板，不新造文案） |
| **原单聊** | **完全不变**：会话保留在列表原位置、不置顶、不折叠、未读数不变、**不插任何系统消息** |
| 新群在列表里的位置 | 按「新会话」的自然时间排在列表顶部（不做置顶、不做「刚创建」标记） |
| 被拉的人 | **不发通知、不需要同意**，直接进群（与「新建群组」一致） |
| 失败 | **不新增任何页面**：**沿用现有的建群失败提示（既有设计）**；仍是「停在当前页 + 保留已勾选的人」，用户可以直接重试 |
| 连点 | 请求进行中，右下角箭头 / 「立即创建」不可再点（不允许建出两个群） |
| 建群成功后跳转 | **不存在「跳转失败」**（2026-10-09 产品确认），不做半成功态的兜底提示 |

### 6.2 聊天记录：**不带**（2026-10-09 拍板）

| 问题 | 结论 |
|---|---|
| 原单聊的历史消息会进新群吗？ | **不会。** 新群是一个**全新的会话**：除 6.1 那条系统提示外没有任何历史消息 |
| 原单聊里的消息会不会被「搬走」/「清空」？ | **不会**，原单聊一个字节都不动 |
| 为什么不做 | 用户对「建群」的期待本来就是「**开一个新的地方说话**」，不是「把这段聊天升级」；与微信一致，也是最省的做法 |

### 6.3 入口：成员行（移动端）

| 项 | 规则 |
|---|---|
| 位置 | 单聊**资料页**：在**按钮行（音频通话 / 视频通话 / 静音 / 更多）下方、操作卡（删除联系人 / 发送消息）上方** |
| 形态 | 独立白卡：**左侧「发起群聊」文字**（与「删除联系人 / 发送消息」同一档字号）＋ **右侧「对方头像 32 ＋ 加号 32」**；**整行可点** |
| 为什么带文字 | 只放「头像 ＋ ＋」会出现没有文案的控件，第一次看到的人不知道那是什么 |
| 为什么不只做文字 | 右侧那个「头像 ＋ ＋」表达的是「**这个人会一起进去**」，纯文字说不出来 |
| 只显示对方头像 | **不显示自己的头像**（省纵向空间） |
| 哪些情况**不显示**这一行 | ① 对方是**陌生人**（非互关好友，对齐既有 `NOT_MUTUAL_FRIEND 73083`）；② 对方是**官方账号 / 服务通知**；③ **拉黑关系**；④ 对方账号已注销 / 已删除；⑤ 会话是群聊或频道。**整行不出现**（不是置灰、也不是点了报错） |

---

## 七、各端与影响面

### 7.1 Web / Desktop：**本期不做**

| 项 | 说明 |
|---|---|
| 结论 | **Web / Desktop 端本次不做**（产品 2026-10-09：*改动较大*） |
| 具体不做 | Web「用户信息」抽屉里的入口、Web 的选人弹窗、建群后抽屉切成群信息 —— 都不在本次范围 |
| 原因 | Web 端的资料抽屉是另一套版式，改起来牵动的面比移动端大；先把移动端做出来 |
| 遗留 | Web 端后续要做时，**规则与移动端一致**即可（同一条流程、同样的锁定与预填），只需单独出 Web 的版式 |

### 7.2 与既有功能的关系

| 既有功能 | 关系 |
|---|---|
| 首页 ＋ → 创建群聊（新建群组） | **同一套页面、同一套建群能力**。区别只有：入口、「当前对象已选」、群名预填 |
| 群资料页 → 添加成员 | 视觉上与本次的「成员行」同款（头像 ＋ 加号），但**语义不同**：那边是「往这个群里加人」，本次是「新建一个群」 |
| 单聊资料页的既有按钮行 / 操作卡 | 本次**不动** |
| 文件夹 / 聊天列表 | 新群就是一个普通会话，会被现有规则（文件夹包含、置顶、静音）正常处理，本次不新增规则 |

### 7.3 本次改哪些、哪些一个字不动

| 位置 | 本次 |
|---|---|
| 单聊资料页（iOS / 安卓） | ★ **改**：加一行「发起群聊」 |
| 选人页 | ★ **改 1 处**：当前对象默认已选且不可取消；**不显示人数计数**。其余照原样 |
| 设置群名称页 | ★ **改 1 处**：群名预填。其余照原样 |
| 首页 ＋ 菜单、聊天页标题、会话列表、群资料页 | **不改** |
| Web / Desktop | **不改**（本期不做） |

---

## 八、文案（建议稿）

| 位置 | 文案 | 备注 |
|---|---|---|
| 资料页 · 成员行 | **发起群聊** | 移动端行内文字 |
| 选人页 · 标题 | **选择联系人** | 沿用现有 |
| 选人页 · 人数计数 | **不显示** | 不限人数 |
| 设置群名称页 · 标题 / 按钮 | **新建群组** / **立即创建** | 沿用现有 |
| 设置群名称页 · 预填群名 | 毛毛、王力宏、李维 | 超过 3 人 → 毛毛、王力宏、李维 等 5 人 |
| 新群 · 系统提示 | **您已添加 王力宏、李维 加入群聊** | 客户端**已有**的文案 |
| 建群失败 | **沿用现有文案**（不新增） | 既有设计，本次不重画页面 |

---

## 九、边界与异常

| 场景 | 表现 |
|---|---|
| 对方是陌生人 / 官方账号 / 拉黑关系 | 资料页**没有成员行**（整行不显示），没有任何提示 |
| 只带了对方一个人就去建群 | **允许**（选人页箭头一直可点），建出的是「我 ＋ 他」的 2 人群 —— 是否需要拦一下，见待确认 ⑥ |
| 群名为空 | 按**现有「新建群组」的校验**处理（不允许空名） |
| 群名过长 | 按现有规则截断 / 提示 |
| 建群请求中网络中断 | **沿用现有的失败提示**（不新增页面），停在当前页 |
| 连点 | 只建一个群（箭头 / 按钮 loading 或置灰） |
| 多人同时建群造成重名 | 允许重名，不做校验 |

---

## 十、待确认

| # | 待确认 | 影响 | 建议 |
|---|---|---|---|
| ① | 资料页成员行的**确切位置与间距** | 版式 | 见 6.3；最终以 UI 为准 |
| ② | 选人页**不显示人数计数**这一处，UI 是否要改成显示「已选 N 人」 | 版式 | 建议就不显示（不限人数） |
| ③ | 「被拉进群的人要不要收到通知」 | 体验 | 与「新建群组」一致（现有规则），本次不改 |
| ④ | 是否需要「谁可以拉我进群」的隐私开关 | 隐私 | U8 无此项，建议本次不做 |
| ⑤ | **预填群名的细节**：「我」算不算在内、成员重名怎么处理、群名字符上限 | 文案 | 与系统提示里那套取名规则保持一致；由开发对齐 |
| ⑥ | **只带对方一人建 2 人群**是否需要拦截 | 规则 | 建议**不拦**（与「新建群组」一致）；如果要拦，需要新增规则 |
| ⑦ | Web / Desktop 端什么时候做 | 排期 | 产品定（本次已明确不做） |

---

## 附：演示屏清单（同目录 `index.html`，共 10 屏）

| # | 屏 id | 端 | 内容 | 优先级 |
|---|---|---|---|---|
| 1 | `E_A1` | iOS | 单聊聊天页（入口是右上角头像） | P1 |
| 2 | `E_A2` | iOS | **单聊资料页 · 新增「发起群聊」成员行** ★ | P0 |
| 3 | `E_A3` | 安卓 | 资料页 · 同一行（安卓版式） | P0 |
| 4 | `E_B1` | iOS | **选择联系人（对方已选、不可取消）** ★ | P0 |
| 5 | `E_B2` | iOS | 选择联系人 · 已选多人（右下箭头可点） | P0 |
| 6 | `E_B3` | 安卓 | 选择联系人（安卓版式） | P1 |
| 7 | `E_C1` | iOS | **设置群名称（群名已填好，可改）** ★ | P0 |
| 8 | `E_C2` | iOS | 建群成功 → 新群聊天页（群名 ＋ 系统提示） | P0 |
| 9 | `E_C3` | iOS | 会话列表：新群出现，原单聊不变 | P1 |
| 10 | `E_D1` | iOS | 陌生人 / 官方账号：**没有成员行** | P1 |
