6dsI4eKdAoZr4RP0uILIBq)node 515-989 → 画板组 633:23746,共 9 屏)index.html — 线框图 + 可点击演示(全部 20 屏可串联点击)02_PRD-设备管理.md / 02_PRD-设备管理.html — 完整 PRD.html 为网页版,双击即可阅读一句话结论
按 Telegram 逐条筛过后,真正缺的「页面」只有 1 个:扫码授权确认页。
另有 6 处是"已有页面的状态"(加载中 / 空 / 失败 / 成功反馈)—— 不补不会少功能,但会出现白屏、点了没反应、把失败误认为成功。
剩下 1 处是设计稿回改(会话详情补字段),3 处属于其它模块(登录页、官方账号 U8 Chat 的会话与资料页)。编辑态保留但只支持逐个删(决策 14 改判)。
初版补充的 16 屏中,3 屏已合并、1 屏已取消、2 屏移出本模块归类,最终补充 11 屏;全案 20 屏。
| # | 屏名 | node | 覆盖能力 | 状态 |
|---|---|---|---|---|
| 1 | 我的-设备 | 633:23747 | 主页:此设备 / 注销所有其它设备 / 活跃会话列表 / 自动终止旧会话 / 添加设备入口 | ⚠️ 主干完整;右上「编辑」入口需删、活跃会话行需支持左滑 |
| 2 | 我的-设备-注销会话提示弹窗 | 633:23862 | 「注销所有其它设备」二次确认 | ⚠️ 缺后果说明 |
| 3 | 我的-设备-编辑 | 633:23990 | 编辑态(红色减号 + 顶部对勾) | ⚠️ 保留,但只支持逐个删(决策 14):去掉批量元素(无「已选 N 项」、无全选、无底部操作条) |
| 4 | 我的-设备-编辑-确定注销 | 633:24117 | 左滑露出「注销」 | ⚠️ 左滑保留、编辑态外壳去掉(原屏名里的「编辑」已无意义) |
| 5 | 我的-设备-添加设备扫码 | 633:24240 | 扫码取景 + 相册 / 手电筒 + 权限弹窗 | ⚠️ 扫到码后没有下文(见 N02);底部相册 + 手电筒两个圆按钮去掉(决策 14);权限弹窗保留(决策 15) |
| 6 | 我的-设备-自动终止旧会话 | 633:24260 | 1 周 / 1 个月 / 3 个月 / 6 个月 | ⚠️ 缺当前值高亮、缺 1 年 |
| 7 | 我的-设备-查看此设备信息 | 633:24386 | 此设备详情(应用程序 / 位置) | ⚠️ 字段过少、有残留文案 |
| 14 | 我的-设备-查看活跃会话设备信息 | 633:24528 | 会话详情 + 注销会话按钮 | ⚠️ 数据自相矛盾 |
| 9 | 我的-设备-查看活跃会话设备信息-注销会话 | 633:24672 | 单会话注销确认 | ⚠️ 未点名设备 |
另有一个必须先处理的问题:这 9 屏在 Figma 里存了两份完全相同的副本 ——
一份在iOS端 / iOS 2.0画板(623:26609~623:27534),一份在搜索功能页面下的「设备管理」画布(633:23747~633:24672)。
两份尺寸、文案、图层数完全一致。请确认哪一份是权威稿、删掉另一份,否则研发一定会读到旧的那份。
| Telegram 能力 | U8 现状 | 缺口 |
|---|---|---|
| ① 活跃会话列表(设备名 / 平台 / 版本 / 位置 / 最后活跃时间) | ✅ 已有,且多了「此设备」独立分区 | 缺 IP、登录时间 |
| ② 单台会话:Terminate Session(含 iOS 左滑) | ✅ 已有(弹窗 + 左滑) | 缺成功/失败反馈 |
| ③ 批量终止:Edit → 多选 → 底部 Terminate / Select All | ⚠️ 只画了「减号」 | ➖ 只借用视觉形态、不做批量(决策 14):编辑态保留但只支持逐个删;「全选 → 批量终止」不引入 |
| ④ Terminate All Other Sessions(一键踢掉其它所有设备) | ✅ 已有 | 缺后果说明、缺成功后的表现 |
| ⑤ Automatically Terminate Old Sessions(1 周 / 1 月 / 3 月 / 6 月 / 1 年) | ⚠️ 缺 1 年、缺当前值标记 | 小改 |
| ⑥ Link Desktop Device:扫码 → 电脑端登录 | ⚠️ 只有中间的扫码一屏 | 缺 1 个页面(见下) |
| ⑦ 会话详情里的权限开关(新密钥聊 / 接听来电) | ❌ 无 | 不引入(与 U8 场景不匹配) |
| ⑧ 新设备登录的安全通知 | ❌ 无 | 属聊天模块 |
| ⑨ 新登录设备 24 小时内不能终止其它会话 | —(已决策:本期不引入,见第九节) | 无 |
关于 ⑥ 的一处关键差异:Telegram 是「扫码即登录」,手机端没有确认页。
U8 因为账号连着加密钱包,扫码等于把资产查看权限交出去,所以产品已决策 D1:加一道手机端「确认授权」。
这是本功能唯一一处有意偏离 Telegram 的地方,也是唯一一个 U8 独有的新页面。
扫码前的操作引导不在手机端:用户一定是从电脑屏幕上的二维码进来的,引导由电脑端二维码页承担(已决策 D6)。
初版补充清单共 16 屏,逐条对照 Telegram 后的处理结果:
| 屏 | 内容 | Telegram 有吗 | 处理 |
|---|---|---|---|
| #N02 | 扫码确认授权 | ❌ 没有(Telegram 扫完即登录) | ✅ 保留 · 新增页面(产品决策 D1) |
N03 | 确认中 | ❌ | ➖ 已合并进 #N02(按钮 loading + 超时文案,不值得单独一屏) |
| #N04 | 添加成功反馈 | ❌ Telegram 无 Toast | ✅ 保留 · 状态(#N02 成功后的收尾) |
| #N05 | 扫码识别失败 | ❌ Telegram 对无效码不响应 | ✅ 保留 · 状态(扫错码是常态,不能没反馈) |
| #N06 | 相机权限未开启 | ✅ 有 | ✅ 保留 · 状态,改为弹窗(决策 15 / D10):分「第一次授权」(系统原生弹窗)与「权限已被关闭」(应用内弹窗,沿用原稿文案「请允许访问 / 没有相机权限 / 不是现在 / 设置」)两种 |
| #N07 | 活跃会话空态 | ❌ Telegram 不显示空态 | ❌ 取消(决策 13 / D8):本机永远在,列表不会全空 —— 改成「此设备」卡片照常显示 + 「活跃会话」区一行提示 |
| #N08 | 注销成功反馈 | ❌ Telegram 靠「列表少一行」当反馈 | ✅ 保留 · 状态 |
| #N09 | 注销失败 | ✅ 异常处理标配 | ✅ 保留 · 状态 |
N10 | 编辑态批量操作栏 | ✅ 有(Edit → 多选 → Terminate) | ➖ 批量部分取消,编辑态保留(决策 14):不做「已选 N 项」/全选/底部操作条 |
N11 | 编辑态未选中 | ❌ | ❌ 随 N10 一并取消 |
N12 | 自动终止设置成功 | ❌ Telegram 改完即生效 | ➖ 已合并进 #E6(回填 + Toast) |
| #N13 | 列表加载中 | ❌ Telegram 无骨架屏 | ❌ 取消(决策 13 / D8):不做骨架屏,正常等待数据返回 |
| #N14 | 列表加载失败 | ✅ 有重试 | ❌ 取消(决策 13 / D8):改为弹一个提示框「网络连接已中断」,不带按钮 |
| #N15 | 被注销设备端 | ✅ 行为固有 | ➡️ 移出本模块(登录页的事,见第七节) |
| #N16 | 会话详情字段补全 | ✅ 字段固有 | ➡️ 归为设计稿回改(不是新页面,是原稿漏画) |
| #N17 | 登录系统消息 | ✅ 有(服务通知) | ➡️ 移出本模块(聊天模块的事,见第七节)。改为官方账号「U8 Chat」(决策 16) |
合并 / 取消的 4 屏,其要求已写进对应主屏的设计说明里,开发不会丢信息: N03 → #N02|N11 → 随 N10 的批量部分取消|N12 → #E6|N10 → 批量部分取消、编辑态保留(决策 14)|N07 / N13 / N14 → 取消,不出屏(决策 13 / D8)
| 编号 | 页面 | 为什么必须有 | 线框图 |
|---|---|---|---|
| P0-1 | 扫码成功-确认授权页 | 扫到码之后整条链路没有任何画面。用户看不到"正在给哪台设备授权",也没有拒绝的机会。涉及钱包,这是唯一的 U8 特有页面(决策 1 / D1) | #N02 |
原 P0-2「编辑态-批量操作栏」的批量部分已取消(编辑态本身保留,见决策 14)。删除会话的路径都有落点,不需要新页面:
① 一个一个删(三条等价入口) —— 列表左滑(#E4)、详情页点「注销会话」(#E8)、编辑态点红色减号(#E3);都进 #E9 确认弹窗;
② 除本机外全删 —— 主页「注销所有其它设备上的会话」(#E2 → 成功反馈 #N19)。
| 编号 | 状态 | 属于哪一页 | 不补会怎样 | 线框图 |
|---|---|---|---|---|
| P0-3 | 注销会话-成功反馈 | #E1 | 三种注销路径点完都没下文,会重复操作 | #N08 |
| P0-4 | 注销会话-失败 | #E1 / #E9 | 失败被误认为成功 —— 安全功能里最危险的一种误判 | #N09 |
| P0-5 | 添加设备-成功反馈 | #N02 | 确认完不知道电脑端到底登没登上 | #N04 |
| P0-6 | 扫码-识别失败 | #E5 | 扫到支付码 / 过期码 / 别人发的码时,相机毫无反应 | #N05 |
| P0-7 | 注销所有其它设备-成功反馈 | #E1 / #E2 | 「除本机外全删」点完只掉一台(线框演示原来错接了单台反馈 #N08),Toast 也只报一台 —— 用户会以为没生效,回头一台一台删 | #N19 |
| P1-1 | 扫码-相机权限未开启 | #E5 | 用户点了「不允许」之后就卡死在扫码页 —— 且要区分两种情况:第一次授权 vs 权限已被关闭 | #N06 |
回改 1:编辑态去掉批量元素 —— 633:23990(我的-设备-编辑)保留,但去掉「已选 N 项」计数、全选、底部操作条(只支持逐个删);紧随其后的 633:24117(编辑-确定注销)保留左滑、去掉编辑态外壳,改为列表页上的直接交互(对应线框 #E4);主页 #E1 右上角「编辑」入口保留。
回改 2:#N16 会话详情字段补全 —— 补齐 Telegram 本来就有的 IP 地址 / 登录时间 / 最后活跃时间(原稿只有「应用程序 / 位置」两行)。
13 处一致性问题:
| # | 位置 | 问题 | 建议 |
|---|---|---|---|
| 1 | 屏 8「查看活跃会话设备信息」 | 数据自相矛盾:设备是 MacBook Air M1,但「应用程序」写 U8Chat iOS 12.8.1(应为 macOS)、「位置」写 San Jose,United States(列表里是 Taipei,Taiwan);副标题写「1 小时之前」,列表里却是「3 分钟之前」 | 占位数据统一成同一台设备,避免研发误读字段来源 |
| 2 | 屏 7、屏 8 | Sheet 内出现 「预览兑换」 残留文案(设计师组件名误留) | 删除 |
| 3 | 屏 1 vs 屏 2/3/4/6 | 底部说明文案不一致:屏 1 是「…macOS、Windows。」,其余是「…macOS、Windows和 Linux。」 | 已决策:不含 Linux。统一为「U8Chat 官方应用可用于 iPhone、iPad、Android、macOS、Windows。」屏 2/3/4/6 需回改 |
| 4 | 屏 5「添加设备扫码」 | 副标题是 该功能仅支持设备登录二维码 —— 这是错误提示语气,却当成了常驻说明;对比「扫码支付」页用的是「将二维码对准框内,即可自动扫描」 | 常驻文案改成正向引导 + 安全提示:「对准电脑屏幕上的二维码,请勿扫描他人发来的二维码」;错误文案单独设计(见 P0-6) |
| 5 | 屏 5(添加设备扫码) | 底部有 「相册」+「手电筒」两个圆按钮 | ✅ 已决策(决策 14):两个都去掉 —— 设备登录码只可能出现在电脑屏幕上,补光 / 相册场景不存在。这是与扫码支付页的有意差异,不追求两页统一 |
| 6 | 屏 1 / 屏 8 | 时间格式混乱:「3 分钟之前」(相对)与 09/11/26、06/10/26(MM/DD/YY,美式)混用 | 全站统一:7 天内用相对时间,超过用 YYYY/MM/DD |
| 7 | 屏 3 vs 屏 4 | 两套删除交互并存:编辑态用「红色减号」、左滑用「注销」 | ✅ 已决策(决策 14):编辑态保留但只支持逐个删。屏 3 保留(去掉批量元素);屏 4 只留左滑(去掉编辑态外壳)。减号与左滑等价,都进同一个确认弹窗 #E9 |
| 8 | 屏 1 | 主页右上角有「编辑」入口 | ✅ 已决策(决策 14):保留(编辑态已恢复);「活跃会话为空时隐藏该入口」这条规则随之恢复 |
| 9 | 屏 9 | 确认弹窗「你确定要注销此设备吗?」没有点名是哪个设备 | 改成「注销 MacBook Air M1 的会话?」 |
| 10 | 屏 2 / 屏 9 | 确认弹窗都不说明后果(该设备立即掉线、需重新登录、加密会话中断) | 补一句后果说明 |
| 11 | 屏 6 | 弹层里当前选中值(6 个月)没有高亮标记 | 当前值打勾 |
| 12 | 全部 | 无暗色稿、无键盘/大字号适配 | 与其它模块统一排期 |
| 13 | 电脑端(网页版 / 桌面端)登录页 | 手机端已决策不再出扫码引导说明页(D6),引导责任整体转移到电脑端的二维码页 | 电脑端二维码页需补三件事:① 「用 U8Chat App 扫这个码登录」的操作引导 ② 「二维码 5 分钟内有效,过期自动刷新」的提示 ③ 「请勿将二维码发给他人」的安全提示。需确认由谁出稿。注意:网页版与桌面端两种形态都要补,文案里不要写死"网页版" |
这两屏不是设备管理的页面,但和它强相关,需要对应的模块 owner 认领:
| 屏 | 内容 | 归属 | 为什么和本功能有关 |
|---|---|---|---|
| #N15 | 被注销设备端-退出登录 | 登录模块 | A 端注销会话后,B 端要立即退回登录页并说明"是被注销,不是掉线" |
| #N17 | 官方账号 U8 Chat(会话 + 资料页) | 聊天模块 | 决策 D3 不引入 24 小时规则后,被盗的早期发现全靠这条通知,建议不要砍。形态改为官方账号(决策 16):带认证标识、不可编辑、状态显示「客服」、只有静音 |
第一批(阻塞开发,3 屏) P0-1 扫码确认授权页 → P0-4 注销失败态 → P0-3 注销成功反馈 (原 P0-2 编辑态批量操作栏的批量部分已取消;编辑态保留但只支持逐个删,见决策 14)
第二批(可并行,4 屏) P0-5 添加设备成功反馈 → P0-6 扫码识别失败 → P0-7 全删成功反馈 → P1-1 相机权限
第三批(体验 + 回改) 第六节 13 处回改(其中第 13 条要拉电脑端一起改)
第四批(其它模块认领) #N15 登录模块、#N17 聊天模块、#N20 聊天模块
| # | 问题 | 决策 | 对交付物的影响 |
|---|---|---|---|
| 1 | 扫码登录是否加手机端「确认授权」? | ✅ 要加 | #N02 成立,是本功能唯一 U8 独有的新页面 |
| 2 | 确认授权前是否再验资金密码 / Face ID? | 本期不加 | #N02 保持「点确认即授权」;安全兜底靠官方账号 U8 Chat 的登录通知(#N17) |
| 3 | 编辑态删除交互保留哪一套? | ⚠️ 改判:保留编辑态,但只支持逐个删(决策 14,原「整体取消」作废) | N10 的批量部分取消;原稿屏 3 保留(去掉批量元素)、屏 4 只留左滑;主页「编辑」入口保留。单台删除有三条等价入口(左滑 / 详情页按钮 / 编辑态减号),都进 #E9,研发阻塞解除 |
| 4 | 是否引入「新设备 24 小时内不能注销其它会话」? | ❌ 不引入(2026-09-17 复核维持) | 原 N18 屏已删除;「注销失败」不含此类业务原因。复核理由:①该规则防的是「盗号者登进来立刻把机主踢下线、令其无法察觉」,但 U8 的登录验证码只发到已登录设备、不走短信,攻击者原本就难登进来;②规则会挡住「丢手机后用新设备立刻切断旧设备」这一刚需,而 U8 旧设备上有钱包,等不起 24 小时 |
| 5 | 底部说明是否包含 Linux? | ❌ 不含 Linux | 屏 2/3/4/6 需回改 |
| 6 | 手机端是否要「添加设备-引导说明页」? | ❌ 不要 | 点「添加设备」直接进相机;引导由电脑端二维码页承担(第六节第 13 条) |
| 7 | 补充清单是否以 Telegram 为准、非固有即简化? | ✅ 是 | 合并 3 屏、编辑态保留(原「取消」已改判,见决策 14)、移出 2 屏归类、1 屏归为回改;后又取消 3 屏状态(决策 13)、新增官方账号资料页(决策 16);最终 20 屏 |
| 8 | 「一个一个删」的入口够不够(左滑是隐形手势)? | ✅ 保留左滑,并把详情页「注销会话」按钮定为可见入口 | 原稿 #E8 已有该按钮,无需新增屏;左滑与按钮等价,都进 #E9 确认弹窗 |
| 9 | 「除本机外全删」点完后的反馈怎么给? | ✅ 一次清空全部 + Toast 报数量 | 新增线框 #N19(原来缺这一屏)。PRD 6.6 早已写明「回列表 + 空态 + Toast『已注销其它 N 台设备』」,是线框演示把它错接到了单台反馈 #N08 —— 点完只掉一台、Toast 也只报一台 |
| 10 | 新登录设备要不要在列表里打「新」标记? | ❌ 不引入(原 6.2 有这句,已删除) | 追查后确认它既不是 Figma 原稿的元素、也不是 Telegram 的做法 —— 是补线框时自加的。新登录设备最后活跃时间是「刚刚」,本来就在最上面,标记信息量低;提醒统一由官方账号 U8 Chat 的登录通知承担。删除后 PRD 由 D7 记录 |
| 11 | 本期登录系统消息做哪些? | ✅ 只做 3 条(新用户首次登录 / 新设备登录 / 登录验证码) | 验证码有活跃设备时走官方账号会话、不走短信(并留「改用短信」兜底);无活跃设备才走短信。本期无两步验证(2FA),故验证码是必经步骤。扫码登录不发验证码。三条消息均为纯文本、不带按钮(对齐 Telegram)。已写进 PRD 6.9.1 |
| 12 | 「新登录通知」按什么频率发? | ✅ 每次新登录都发(含同一设备退出后重新登录) | 查证了 Telegram 官方客户端源码与 TDLib schema:其通知粒度是「每次新的授权会话」,不是「每台设备只发一次」。我原先把触发条件写成"该设备此前从未登录过"是错的,已改正。同一次查证还纠正了一处错误表述:Telegram 的两步验证是在验证码之后再加一步密码,不是跳过验证码 |
| 13 | 设备列表的「空态 / 加载中 / 加载失败」要不要各自出屏? | ❌ 三屏都取消(PRD 记为 D8) | ①空态:本机永远在,列表不会全空 —— 改成「此设备」卡片照常显示 + 「活跃会话」区一行提示;②加载中:不做骨架屏;③加载失败:弹不带按钮的提示框「网络连接已中断」。三屏已从线框与清单移除,全案 22 → 19 屏(后来又新增 #N19、#N20,最终 20 屏) |
| 14 | 编辑态到底做不做? | ⚠️ 改判:做,但只支持逐个删(推翻决策 3 / D5) | 主页「编辑」→ 其它设备每行出现红色减号(待删除态)→ 点减号进确认弹窗删这一台;不做全选 / 批量提交。连带:原稿 633:23990 由「整屏删除」改为「保留 · 需回改」;主页「编辑」入口保留;「活跃会话为空时隐藏入口」恢复。同一批还定了:扫码页去手电筒、不加相册、确认登录页取消回设备首页、加载失败弹窗文案改「网络连接已中断」 |
| 15 | 相机权限未开启怎么处理? | ✅ 弹窗引导,且区分两种情况(PRD 记为 D10) | ①第一次授权:进扫码页时系统弹原生授权弹窗;②权限已被关闭:在扫码页之上弹应用内弹窗(沿用 Figma 原稿:「请允许访问」/「没有相机权限」/「不是现在」「设置」),从设置返回后自动重查权限。`#N06` 由整屏改为弹窗,不提供「从相册选择」 |
| 16 | 登录系统消息用什么形态承载? | ✅ 做成官方账号「U8 Chat」(不再是「服务通知」) | 带官方认证标识、像用户一样出现在会话列表、可聊天;资料页无编辑、无手机号、无加好友/拉黑,状态显示「客服」,只有「静音」一个设置项。三条消息改为纯文本、不带按钮。用户给这个号发消息 → 进系统后台的接收入口,后台管理员可选是否回复(回复以官方账号身份发出)。线框新增 #N20 资料页,全案 19 → 20 屏 |
决策 4 不引入 24 小时规则后,账号被盗的防护重心全部压在 决策 1 的确认授权 和 官方账号 U8 Chat 的登录通知(#N17)上,这两项建议不要砍。
决策 3 已改判(编辑态保留、只支持逐个删),研发阻塞已解除。
| # | 问题 | 建议 |
|---|---|---|
| 8 | 「我的」页「设备」入口是否做异常红点? | 建议做,可延后 |
| 9 | 扫码后、电脑端确认前,新设备是否先以「等待确认」状态插入列表? | 建议不做,成功后再插入 |
| 10 | 会话详情是否加「允许接收通知 / 允许发起资产操作」两个开关? | 建议不做 —— 这是 U8 特有设想,Telegram 的同类开关与 U8 场景对不上(#N16 已按不做处理) |
| 11 | 被注销设备是实时踢出还是下次请求才发现? | 实时踢 + 下次请求兜底 |
| 12 | 「自动终止旧会话」是否提供「从不」选项? | 不建议提供 |
| 13 | 电脑端二维码页(含引导文案)由谁出稿、是否与本期同期? | 需指定 owner |