U8 产品原型站功能原型演示与产品需求文档 · 供开发与决策快速浏览

U8 Chat · 用户详情页显示「用户自己的原名」产品需求文档 PRD

资料与设置 4889 字 02_PRD-用户姓名.md 更新于 2026-10-09
← 返回功能演示列表
项目内容
文档版本v1.3(本轮定稿) —— 2026-10-09 按产品给的截图定稿:只在「基础信息」里加一行「原名」,顶部一个字不动。v1.0–v1.2 的「顶部加一行小字 / 顶部括注 / 大标题换成原名」三个方案均已废弃
功能模块用户详情页(单聊资料页 / 群成员资料页 / Web「用户信息」抽屉)的「基础信息」区增加一行 原名
适用端iOS / Android + Web(三端同一套规则)
现状整页里出现的名字只有 我给他设的备注名(顶部「鹭周」)—— 他本人叫「凯撒大帝」,页面上没有任何位置
演示与逐屏同目录 index.html(11 屏:现状 1 + 方案 1 + 边界与长度 6 + 三端 3)
设计稿版式照产品给的截图(Web「用户信息」抽屉的「基础信息」区:备注(虚线框)/ 原名 / 生日 / 账号名);移动端同一套排法。最终以 UI 为准
口径来源2026-10-09 产品拍板:① 这个字段叫「原名」(不叫「姓名」);② 只在「基础信息」里加一行 —— 改动小、页面也不丑;③ 顶部一个字不动;④ 要考虑原名很长 / 备注名很长 / 两个都很长的情况(→ 第六章)

本演示与 PRD 都是「UI 设计之前的输入」:作用是讲清楚「这一行放哪儿、四种情况各显示什么、名字很长怎么办」。最终视觉以 UI 为准。


一、背景与目标

1.1 背景

U8 支持给联系人设备注名,而且备注名是"主角":会话列表、聊天页标题、资料页顶部显示的都是备注名。

这本身没问题(我认这个名字),但它带来一个盲区:在详情页里,我看不到"这个人自己叫什么"。

真实的麻烦:

  1. 对方改了名字我不知道 —— 我看到的永远是备注名;
  2. 备注名多了会对不上人 —— 我给一堆人起了「张总」「王哥」「客户A」,隔一段时间想确认"这到底是哪一位",没有地方看;
  3. 刚加的联系人、群里的成员 —— 想核对一下他本人是谁,更没地方看。

1.2 目标

  1. 在用户详情页能看到对方自己设置的原名(以最新的为准)。
  2. 主次分明、改动最小:顶部(备注名)完全不动,只在「基础信息」里加一行。
  3. 名字再长也不撑坏版式:这一行是标准的信息行,值单行截断,行高永远不变。
  4. 改动只发生在详情页;会话列表、聊天页标题、群成员列表一个字不改。

1.3 不做什么

不把原名放到顶部(大标题 / 第二行小字 / 括注都不做)、不做「备注名与原名合并」、不做「原名自动覆盖备注名」、不在会话列表 / 聊天页标题 / 群成员列表里显示原名(见待确认 ④)、不做「查历史曾用名」。


二、范围

2.1 本期做

#模块内容
①移动端 · 用户详情页「基础信息」里新增一行 原名(排在「备注」下面、「账号名」上面)
②群成员资料页同一套规则(群里点某人的头像打开的那一页)
③Web「用户信息」抽屉同一套规则(「基础信息」里同一位置)
④显示规则4 种情况各有明确表现(见 5.2)
⑤长度规则原名很长 / 备注名很长 / 两个都很长时的处理(见 6.2)
⑥原名的时效性打开详情页时拉一次最新资料;拉到前用缓存渲染,不出现「加载中」

2.2 本期不做

不做的事说明
顶部任何改动大标题仍是备注名、第二行仍是在线状态
改会话列表 / 聊天页标题 / 群成员列表的显示名那些地方继续以备注名为主(待确认 ④)
原名与备注名合并、或自动同步两个字段各自独立(见第三章)
「曾用名 / 历史名字」需要服务端留历史,另开需求
实名认证信息本 PRD 的「原名」指他自己设置的名字,不是实名
点一下 / 长按看全名见 6.4 与待确认 ③
我的资料页自己看自己不存在这个盲区

三、名词(两个名字,别混)

词含义谁设的谁能看到本次怎么显示
备注名我给这个联系人起的名字(如「鹭周」)我只有我自己顶部大标题(不动)+ 基础信息「备注」行(不动)
原名对方自己设置的名字(如「凯撒大帝」)对方所有人★ 基础信息里新增的一行
账号名U8 账号(如 @sv8I8EjwN)系统——不动(它不是名字)

术语(产品 2026-10-09 定名):用户可见的叫法就是「原名」—— 全文不再用「姓名」。它取的是对方自己设置的那个名字,具体对应 U8 的哪个字段由开发对齐(见待确认 ①)。


四、方案(已定:基础信息里加一行)

4.1 定稿

只在「基础信息」区新增一行:

基础信息
  [备注]  鹭周            ← 虚线框,可点编辑(既有入口,不动)
  原名     凯撒大帝        ← ★ 本次新增的一行(标签在左、值在右)
  账号名   @sv8I8EjwN     ← 不动
  • 位置:紧跟在「备注」下面 —— 这两个正好是一对:上面是我给他起的名字,下面是他自己的名字。
  • 版式:与「账号名」「生日」等既有信息行完全一样(标签在左、值在右),不新增区块。
  • 顶部:一个字不动。

4.2 为什么选这个方案(产品理由)

理由说明
改动小就是现有「基础信息」列表里多一行,不占新的版面高度、不影响照片区与按钮行
页面也不丑与「备注」「账号名」同一套版式,看起来本来就该有它
含义无歧义字段名直接写着「原名」—— 不需要靠位置或颜色去暗示"这是他自己叫的名字"
长度问题被限制在一行里见 6.2:不管名字多长,都只是这一行文字截断,不牵动其它任何排版

4.3 已废弃的方案(v1.0–v1.2)

废弃的方案为什么不采用
顶部名字下面加一行小字(「鹭周」下面写「凯撒大帝 · 10:44 今天」)要重新安排顶部两行的宽度预算、还要防折行(折行会把按钮行顶下去),改动比现在这个大
顶部括注「鹭周(凯撒大帝)」两个名字挤一行,主语不清;备注名一长就截断
大标题换成原名(备注名降为小字)与会话列表 / 聊天页标题 / 群成员列表相反(那些都是备注名),进详情页突然换名字会让人懵

五、显示规则

5.1 一行两列

列内容样式
标签原名灰色,固定宽度、不收缩(与「备注」「账号名」「生日」同款)
值对方自己设置的名字深色,右对齐,单行 + 超出省略号(见 6.2)

5.2 四种情况

情况顶部(不动)基础信息区里的「原名」行
我设了备注,对方也有原名大标题=备注名(「鹭周」)显示(「凯撒大帝」)
我没设备注,对方有原名大标题=原名(「凯撒大帝」)照常显示 —— 原名的显示与有没有备注完全无关
对方没设置原名大标题=备注名这一行不渲染(不显示「未设置」「加载中」「未知」)
原名拉取失败大标题=备注名同上,不渲染(名字不是关键信息,不出现占位块)

两条容易搞混的规则:

  • 「没设备注」≠「没有原名」 —— 前者「原名」行照常显示,后者这一行才消失。
  • 值撞上备注名也照常显示(见 5.3)。

5.3 不做去重

如果我把备注名起成了和他原名一样的「凯撒大帝」,两处显示同一个值 —— 照常显示,不去重、不做特殊处理。

理由:字段就是字段。一旦做了「相同就隐藏」,用户会以为这一行时有时无、像是出了问题。

5.4 时效性(「最新的」原名)

项规则
打开详情页时拉一次对方的最新资料(对方可能刚改过名字)
拉到之前怎么显示先用本地缓存渲染(不出现「加载中…」占位,避免页面跳一下)
拉到之后静默替换成最新值
拉取失败保持缓存值,不报错、不提示;如果连缓存都没有,就不渲染这一行
页面已打开时对方改名本期不做实时推送,下次进页面更新(待确认 ⑥)

六、长度与排版规则

前提:原名和备注名都可能很长(中文名 + 公司 / 职务、中英混排)。本方案下,长度问题只影响「一行文字」 —— 不会把页面撑高、不会影响照片区。

6.1 宽度预算

对象可用宽度换算
一行(整行)339pt375 − 左右各 18pt
标签「原名」约 30pt固定,不收缩
间距约 14pt——
值可用约 295pt16pt 字号 → 约 18 个汉字

6.2 三种情况怎么处理

情况处理
原名很长这一行的值单行截断(末尾 …)。与备注行、账号名行互不影响,行高不变
备注名很长顶部大标题截断 + 基础信息里「备注」虚线框里的值截断 —— 这是现有表现,本次一个字不改
两个都很长三处各自独立截断(顶部大标题 / 备注行的值 / 原名行的值),页面高度一行都不变

6.3 两条硬规则

  1. 每行都只占一行:值一律 单行 + 省略号,绝不折行 —— 折行会让基础信息区变高、连带把整个资料页的滚动位置与照片区比例都改掉。
  2. 标签不收缩、值可收缩:值让位(截断),标签「原名」永远完整显示 —— 保证这一行的含义始终可读。

6.4 值被截断时,怎么看全名?

本期不做。可选做法(供产品选,见待确认 ③):① 点一下弹完整名字;② 长按复制;③ 不做。


七、影响面(哪里改、哪里一个字都不动)

位置本次
用户详情页(单聊 / 联系人 / 群成员)· 基础信息区★ 改:加一行「原名」
Web「用户信息」抽屉 · 基础信息区★ 改:同一行
顶部(大标题、在线状态)不改
资料页的「备注」「账号名」「生日」「成员资料」不改
会话列表不改
聊天页标题不改
群成员列表不改
@提及 / 搜索结果 / 转发选人页 / 消息选择不改
我的资料页不改

八、各端

端做法
iOS「基础信息」区:备注(虚线框)→ 原名 → 账号名
Android与 iOS 同一套规则,只差系统壳(状态栏 / 返回方式)
Web「用户信息」抽屉的「基础信息」:备注(虚线框)→ 原名 → 生日 → 账号名(=产品截图里的样子)

九、文案

位置文案说明
字段名原名与「备注」「账号名」「生日」同级的标签
值为空时整行不显示不写「未设置」「未知」「—」
值被截断时只加省略号不加「原名叫…」这类说明文字
拉取失败时不显示、不提示不给用户任何错误提示

十、边界与异常

场景表现
对方刚改了名字进详情页拉最新;拉到前用缓存渲染,拉到后静默替换(5.4)
原名很长 / 中英混排值单行截断,行高不变(6.2)
备注名很长顶部与备注行各自截断(现有表现,本次不改)
两个都很长三处各自独立截断(6.2)
原名里有 emoji / 空格原样显示,不做特殊处理
原名值 == 备注名照常显示,不去重(5.3)
对方没设置原名 / 拉取失败这一行不渲染
对方已注销 / 账号异常按既有规则(该页还能不能打开),本次不新增
群成员资料页与单聊资料页同一规则;该页原有的「成员资料」区(入群时间 / 群内备注)不动

十一、待确认

#待确认影响建议
①「原名」取的是 U8 里的哪个字段(他设置的昵称 / 别的字段)?服务端字段名是什么?取数文案已定为「原名」;请开发给出对应的数据字段
②「原名」行放在「备注」下面是否合适(是否要放到「账号名」下面 / 更靠后)版式建议紧跟「备注」——两个名字挨着,语义成对
③原名很长时,点一下能不能看全名交互本期建议不做
④确认「只在详情页显示、列表与聊天页标题不变」这个范围范围若希望列表也显示,是另一个需求(会影响列表行高与信息密度)
⑤「我的资料页」(自己看自己)要不要也显示原名范围建议不动
⑥对方改名后,已打开的页面要不要实时更新技术建议本期不做(下次进页面更新)
⑦Web 抽屉里「生日」这一行是否在所有场景都显示版式照截图保留;由 UI / 开发确认字段可用性

附:演示屏清单(同目录 index.html,共 11 屏)

#屏 id端内容优先级
1E_A1iOS现状:详情页看不到「原名」(问题在哪)P1
2E_B1iOS已定方案 · 基础信息里加一行「原名」 ★P0
3E_C1iOS边界 · 他没设备注(原名行照常显示)P0
4E_C2iOS边界 · 原名和备注名一模一样(不去重)P1
5E_C3iOS长度 · 原名很长(值单行截断)P1
6E_C4iOS边界 · 他还没设置原名(这一行不出现)P1
7E_C5iOS长度 · 备注名很长(现有表现,本次不改)P1
8E_C6iOS长度 · 两个都很长(最坏情况)P1
9E_D1iOS群成员资料页 · 同一行P0
10E_D2Web「用户信息」抽屉 · 同一行(=产品截图的样子)P0
11E_D3安卓资料页 · 同一行(安卓版式)P1