Files
jiapuapp/design-qa.md
T
2026-07-17 08:08:33 +08:00

764 lines
46 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Design QA — G 模块公共 C 背景贴底自适应
- source visual truth path: `design-pipeline/generated/g01-background/g01-list-background-direction-c.png`
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G01-shared-c-bottom-412x915.png`;超高屏压力证据 `G01-shared-c-bottom-412x1000.png`
- viewport: 412×915;另查 320×568、360×640、360×800,并增加 412×1000 压力测试
- state: G01 默认三分组列表,公共 C 背景按宽度等比完整显示并固定贴底,上方宣纸底承接
- full-view comparison evidence: 同一比较输入内打开 C 原始输出与 412×915 真实 H5 截图,核对左右竹枝、左侧亭台、下方山水均完整保留并落在列表下半区,没有 `aspectFill` 横向裁剪
- focused region comparison evidence: 另查 320×568、360×640、360×800、412×1000,确认图片宽度始终等于视口宽度、高度保持 2:3、底边贴合视口底部,高屏多出的宣纸区位于上方且不纵向拉伸
## Findings
当前没有公共 C 背景贴底自适应相关的 P0/P1/P2 问题。
- 字体与层级:背景没有烘焙文字,页面原有标题、卡片和状态文字保持独立节点;中央低对比留白没有削弱主要层级。
- 间距与布局:背景固定贴底后,亭台、湖面和山体承托“我创建的”“我加入的”“加入申请”区域;高屏多出的宣纸区移动到当前家谱卡片和快捷入口附近,主要被内容覆盖。内容与 Tabbar 尺寸未改变,四档视口没有新增横向溢出或主操作裁切,320×568 保持自然纵向滚动。
- 色彩:暖宣纸、淡金竹影和灰褐山水与现有朱砂、古金、墨褐体系一致;审核中和被拒绝状态色仍可识别。
- 图片质量:公共运行资产与 C 构建输出 SHA-256 完全一致,使用 `widthFix` 保留完整 2:3 画面,没有 `aspectFill` 裁剪、`scaleToFill` 拉伸、透明边或绿幕残留。
- 文案与内容:本轮只替换背景,不改变 G01 的谱名、分组、申请状态或操作文案。
## Comparison history
1. 首轮截图只有宣纸色,定位为页面缺少公共组件显式 import;加入契约后补齐 9 页 import。
2. 第二轮顶部对齐截图完整显示左右画面,但图片结束后的纯宣纸区落在“加入申请”下半区,用户要求继续优化。
3. 第三轮只使用现有 C 图并改为固定贴底;四档截图中下半区空白显著减少,同轮源图/实现对照没有发现 P0/P1/P2 差异。
4. 用户确认额外增加 412×1000 超高屏压力测试;真实截图中新增高度落在当前家谱卡片和快捷入口附近,下方山水继续覆盖列表,未发现横向溢出、裁剪或拉伸。
## Evidence limits
本段仅记录已经被后续旗舰长背景替代的公共 C 背景贴底历史候选。固定区/独立滚动结构已在后续同日形成新的 H5 候选;G01 整页与 Android/HBuilderX 真机或模拟器仍未验收。
final result: passed
---
# Design QA — 全模块基础视觉系统(无截图验证)
- source specification: `docs/superpowers/specs/2026-07-16-global-heritage-visual-system-design.md`
- implementation handoff: `docs/design/全模块长背景与A系列控件交接.md`
- scope: 52 个活动页面的 A 系列控件统一、普通页返回箭头、G 系列共享母体,以及 T/F/R/N/M 独立长背景
- evidence mode: 用户明确要求本轮不生成截图,因此只记录可重复构建资产、静态契约和 H5 运行 smoke,不把本节冒充视觉截图审计
## Findings
- A 系列透明卷轴按钮、对话框、Toast 和自定义 Loading 已建立统一组件;活动页面与组件中的原生 Toast、Modal、Loading、ActionSheet 调用以及旧不透明 A01 按钮引用均已清零。
- G 系列继续消费既有 G01 公共长背景;G01 元数据、角色和更新时间文字提高字重与对比度。T/F/R/N/M 分别消费独立的 1440×3600 RGB 长背景,并共享浅色国风主题。
- 普通页面标题栏以真实左箭头替代“返回”文字;根页面品牌标题栏保持原结构。
- 静态契约与无截图 H5 运行 smoke 覆盖 G、T、根页面及共享 ModulePage 的主要状态、按钮事件、导航和自定义弹层。
## Evidence limits
- 本轮没有生成或比较新的实现截图,不能据此宣称逐页视觉 QA 已完成。
- 52 页仍全部为内部基础候选,尚未获得用户逐页正式验收。
- Android/HBuilderX 的系统字体、状态栏、返回手势、软键盘以及 4GB 设备长图解码与回收仍待验证。
final result: contract/runtime passed (visual review and Android verification pending)
---
# Design QA — A01 卷轴祥云四件套 v3
- approved visual source: `docs/design/assets/a01-vnext/A01-shared-scroll-skins-with-dialog-approved.png`
- H5 runtime evidence: `tmp/a01-scroll-v3-password-412x915.png``tmp/a01-scroll-v3-toast-412x915.png``tmp/a01-scroll-v3-dialog-412x915.png`
- viewport: 412×915;自动运行 smoke 另覆盖 320×568、360×640、360×800
- scope: 登录主按钮、微信次按钮、反馈 Toast;安全验证弹窗已按用户最新决定降为流程占位,不属于最终视觉
## Findings
当前真实 H5 运行图未发现四件套相关的 P0/P1/P2 问题。
- 视觉统一:四件套均采用用户选定的“方案 2”卷轴祥云体系,主按钮为朱砂底,次按钮、Toast 与弹窗为暖宣纸底,古金边框和角饰属于同一套装饰语言。
- 资产质量:四张运行资产外角透明,没有旧按钮的白边/浅绿边;按钮与弹窗使用等比显示,Toast 使用固定切片的 `border-image`,没有整体拉伸角饰。
- 内容分层:按钮文字、微信图标、Toast 文案和弹窗内容仍由 Vue 承载,位图只负责复杂装饰表面;文字可访问性和状态切换不被烘焙进图片。
- 真实运行:412×915 的密码/短信、掩码/明文、无效手机号 Toast、协议错误和协议勾选状态均已实际触发;320×568 继续允许自然纵向滚动。
- 用户决定:2026-07-16 已明确通过除真实滑动验证外的 7 类 A01 H5 视觉状态,并确认缩小后的品牌 Logo;真实滑动验证内部视觉使用接口组件自带样式,延期到接入阶段审核。
## Evidence limits
除真实滑动验证外的 7 类 H5 状态已取得用户视觉确认,但这仍不是 A01 整页冻结。`tmp/` 截图不作为长期交接代表图;真实滑动验证组件、Android/HBuilderX 的状态栏、安全区、软键盘、字体放大、触摸和返回手势仍未复核,因此 A01 保持 `[~]`
## Implementation checklist
- [x] 四张独立 v3 资产通过 manifest、Node/Python 测试与像素质量门
- [x] A01 静态合同、透明角审计和四档 H5 运行 smoke
- [x] 用户确认 7 类非滑动验证 H5 视觉状态与缩小后的品牌 Logo
- [ ] 接入真实滑动验证组件并审核其自带样式
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收并冻结 A01 整页
final result: partially accepted (7 H5 visual states accepted; slider verification and Android review pending)
---
# Design QA — T04 新增亲属
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/T04-current-form-success-contact-720x800.png`
- viewport: 360×800;成员链路 smoke 覆盖 T04–T08 关键路由与状态
## Findings
没有遗留的 H5 P0/P1/P2 问题。新增亲属表单的关系、姓名、出生日期和性别层级清楚,成功结果与表单使用同一纸面体系。共用成员表单中残留的原生 `uni.showModal` 已替换为项目自定义冲突说明层。
## Evidence limits
当前是 H5 内部候选;关系选择器、真实保存、键盘与 Android 返回手势仍待功能阶段和设备复核,用户视觉验收尚未进行。
# Design QA — T01 世系树
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/T01-current-tree-empty-contact-720x800.png`
- viewport: 360×800;运行 smoke 覆盖横向提示、空、失败、树态、节点选择和成员档案跳转
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 树态使用横向可拖动画布表达同代支系,页面本身无横向溢出;首屏保留阅读提示、代际标识、节点层级与选中成员操作条。
- 空态说明内容产生方式,只突出“录入首代成员”;加载失败与横向提示继续由 T01 同页状态承接。
- 移除了未注册路由但仍残留的 T02 旧占位文件,T01 成为世系阅读状态的唯一所有者。
## Evidence limits
当前是 H5 内部候选,不证明真实世系接口、超大族谱性能或 Android 手势已通过;用户验收和 Android/HBuilderX 复核仍待进行。
## Implementation checklist
- [x] T01 聚焦静态合同
- [x] T01 H5 运行 smoke
- [x] 树态/空态真实运行联系表及人工审视
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户视觉验收
# Design QA — G11 家谱设置/G12 字辈诗
- G11 representative contact sheet: `docs/design/screens/handoff/2026-07-16/G11-current-form-permission-contact-720x800.png`
- G12 representative contact sheet: `docs/design/screens/handoff/2026-07-16/G12-current-list-edit-contact-720x800.png`
- viewport: 360×800;运行 smoke 覆盖列表、空、编辑、成功、失败与无权限
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- G11:名称、公开范围、访问说明保持接口可解释边界;名称错误就近显示,保存反馈为项目自定义,无权限独立表达。
- G12:列表、空、编辑、校验、保存失败、无权限均有位置;连续文本预览与缺失旧世代策略保持清晰。
- 两页均移除原生 Toast,保留现有完整纸面板、按钮和输入资产。
## Evidence limits
当前保存只更新本地候选,不证明设置/字辈接口、权限或并发编辑已经接通;Android 仍待设备复核。
## Implementation checklist
- [x] G11 表单/成功/错误/无权限与自定义反馈
- [x] G12 列表/空/编辑/校验/失败/无权限与自定义反馈
- [x] H5 真实运行烟测和联系表
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收
final result: passed (internal H5 candidate QA only; user review pending)
---
# Design QA — G10 入谱审核
- source visual truth path: 现有审核记录卡视觉与 `docs/验收规划.md` G10 状态合同
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G10-current-list-360x800.png``G10-current-no-permission-360x800.png`
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/G10-current-list-permission-contact-720x800.png`
- viewport: 360×800;运行 smoke 覆盖说明、确认和结果反馈
- state: 列表、空、失败、无权限、通过确认、拒绝确认、说明
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 审核操作:每条待审记录保留拒绝/通过,二者都必须进入自定义二次确认后才更新结果。
- 自定义反馈:顶栏审核说明、确认弹层和处理结果全部使用项目组件,已移除原生 Modal/Toast。
- 权限状态:无权限与网络失败分开表达,避免把角色限制误报成加载错误。
- 卡片信息:姓名、脱敏手机号、关系说明和提交时间保持同屏可核对。
## Evidence limits
当前审核结果只更新本地候选卡片,不证明服务端权限、并发审核、消息通知或成员身份写入已经完成。
## Implementation checklist
- [x] 列表/空/失败/无权限
- [x] 自定义通过/拒绝确认
- [x] 自定义审核说明与结果反馈
- [x] H5 真实运行烟测
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收
final result: passed (internal H5 candidate QA only; user review pending)
---
# Design QA — G05 成员总览/公开预览
- source visual truth path: 已选 G05 总览位图与 `docs/验收规划.md` 公开/成员权限合同
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G05-current-member-owner-360x800.png``G05-current-public-360x800.png`
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/G05-current-member-public-contact-720x800.png`
- viewport: 360×800;运行 smoke 另查 320×568、412×915
- state: 公开预览、成员/所有者、加载、空、失败、无权限
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 公开边界:只展示身份、来源、地区、堂号、支系、上级谱和公开说明;不渲染成员统计、世系或管理入口。
- 申请入口:公开态底部唯一主操作进入 G08 搜索来源。
- 角色差异:所有者显示四个业务入口与顶栏管理;普通成员只显示世系和字辈,不显示录入、审核或设置。
- 视觉层级:世系入口不再单独用朱砂强调,保持“总览优先、世系次级”的产品层级。
- 实现边界:移除远程 API,加载/错误/无权限均为同页本地样式状态。
## Evidence limits
当前公开字段和角色由本地候选决定,不证明真实接口字段级权限、成员身份、管理权限或全局家谱上下文已接通。
## Implementation checklist
- [x] 公开预览最小字段与申请入口
- [x] 成员/所有者入口差异
- [x] loading/empty/error/no-permission 同页状态
- [x] 三档 H5 响应式与真实运行烟测
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收
final result: passed (internal H5 candidate QA only; user review pending)
---
# Design QA — G03 创建家谱/首代人物
- source visual truth path: 现有 G03 两步题签设计与 `docs/验收规划.md` 最新创建合同
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G03-current-create-360x800.png``G03-current-ancestor-360x800.png`
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/G03-current-create-ancestor-contact-720x800.png`
- viewport: 360×800;运行 smoke 另查 320×568、412×915
- state: 创建表单/校验/重复建谱提醒/提交中/失败,首代恢复/校验/保存中/失败/成功
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 创建字段:姓氏、谱名、堂号、所在地和访问规则齐全,访问规则提供仅成员可见/可搜索申请两个明确候选。
- 防重复建谱:本地校验通过后先打开自定义提醒层,可先去 G06 搜索或确认继续创建。
- 中断恢复:已创建未录始祖继续使用同一路由 `step=ancestor&genealogyId=`,不重复建谱。
- 完成路径:首代保存成功显示自定义结果并进入 G05 总览,不再错误直跳 T01。
- 实现边界:移除本页远程 API 和原生 UniApp 提示,当前只审核页面样式状态。
## Evidence limits
当前创建 ID、保存结果和失败状态均为本地候选,不证明服务端创建、重复谱检索、始祖持久化或断点恢复已经接通。
## Implementation checklist
- [x] 创建字段与页内校验
- [x] 自定义已有谱提醒和访问规则候选
- [x] 两步提交中/失败/成功与中断恢复外观
- [x] 完成后进入 G05
- [x] 三档 H5 响应式与真实运行烟测
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收
final result: passed (internal H5 candidate QA only; user review pending)
---
# Design QA — G09 我的申请
- source visual truth path: 现有申请状态题签视觉与 `docs/验收规划.md` G09 状态合同
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G09-current-list-360x800.png``G09-current-empty-360x800.png`
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/G09-current-list-empty-contact-720x800.png`
- viewport: 360×800;运行 smoke 同时验证交互路径
- state: 待审、通过、拒绝、撤回、修改后重提、空、失败、加载
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 状态动作:待审只显示撤回,通过只显示进入家谱,拒绝只显示修改后重新提交;状态与动作分行显示,不再重叠。
- 撤回流程:使用自定义确认层,确认后本地状态变为已撤回且不再显示审核动作。
- 来源边界:空态明确只有搜索申请进入本页,邀请码直接加入不生成审核记录。
- 路由语义:通过进入 G05;拒绝携带 `source=search&previous=rejected` 返回 G08。
## Evidence limits
当前记录和撤回结果为本地样式状态,不证明服务端撤回、审核同步、消息通知或列表现场恢复已经完成。
## Implementation checklist
- [x] 待审/通过/拒绝/撤回状态
- [x] 状态唯一动作与自定义撤回确认
- [x] 修改后重提和通过后进入家谱路径
- [x] loading/empty/error 样式与运行烟测
- [ ] 320/412 Android 真机专项复核
- [ ] 用户验收
final result: passed (internal H5 candidate QA only; user review pending)
---
# Design QA — G08 搜索申请/邀请码直加入谱
- source visual truth path: 现有入谱表单题签视觉与 `docs/验收规划.md` 双来源合同
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G08-current-search-360x800.png``G08-current-invite-360x800.png`
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/G08-current-search-invite-contact-720x800.png`
- viewport: 360×800;运行 smoke 另查 320×568、412×915
- state: 搜索申请/邀请直加表单、页内错误、提交中、成功、失败、来源对应下一步
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 单一来源合同:页面通过 `sourceContract` 集中管理两种来源的标题、说明、第三字段、按钮、结果和下一步,避免“申请/直接加入”文案混用。
- 字段边界:真实姓名、以已知长辈为参照的文字关系必填;没有虚构接口尚不支持的成员选择器或结构化关系。
- 搜索来源:第三字段为申请说明,成功后去 G09 查看审核进度。
- 邀请来源:第三字段为可选补充信息,明确无需审核;成功后返回 G01 并携带选中家谱。
- 错误反馈:必填错误就近显示,重复点击提交被拦截,没有原生 UniApp 提示。
## Evidence limits
当前提交结果为本地样式状态,不证明真实申请、邀请码直加、重复提交防护服务端逻辑或 G01 全局上下文刷新已经接通。
## Implementation checklist
- [x] 搜索/邀请双来源单一合同
- [x] 真实姓名与参照长辈文字关系校验
- [x] 来源对应第三字段、结果和下一步
- [x] 本地提交中/成功/失败与三档响应式
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收
final result: passed (internal H5 candidate QA only; user review pending)
---
# Design QA — G06 搜索/邀请码加入
- source visual truth path: 已选 G06 题签检索视觉与 `docs/验收规划.md` 最新双模式/关系状态合同
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G06-current-initial-360x800.png``G06-current-results-360x800.png``G06-current-invite-360x800.png`
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/G06-current-initial-results-invite-contact-1080x800.png`
- viewport: 360×800;运行 smoke 另查 320×568、412×915
- state: 搜索初始/加载/结果/空/失败/清空,邀请码初始/无效/有效目标,六种用户关系动作
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 双模式:同一路由明确区分“搜索家谱”和“邀请码加入”,从 G01 邀请入口可直接进入邀请码状态。
- 识别信息:结果卡同时展示谱名、姓氏、地区、堂号、上级谱、支系、管理/认证、成员数和更新时间,降低同名谱误选。
- 关系动作:未加入、已加入、审核中、被拒绝、已退出/移除、我创建的六种状态各只有一个明确动作,不再统一显示“可申请”。
- 公开预览:未加入用户点结果卡进入 G05 `mode=public`;申请按钮单独进入 G08 搜索来源。
- 邀请流程:无效邀请码就近显示;有效目标明确提示确认关系后直接加入、无需等待审核。
- 实现边界:移除远程 `appApi`,当前只用本地展示数据审核样式;没有原生 UniApp 提示。
## Evidence limits
当前邀请码 `JP2026` 和六种结果均为样式数据,不证明真实搜索、邀请码有效性、成员继承规则、认证信息或接口权限已经接通。
## Implementation checklist
- [x] 搜索/邀请码双模式
- [x] 详细结果字段和六种关系动作
- [x] 搜索五类状态、清空与地区筛选位置
- [x] 邀请码无效/有效目标与 G08 来源合同
- [x] 三档 H5 响应式、真实点击与联系表
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收
final result: passed (internal H5 candidate QA only; user review pending)
---
# Design QA — G01 我的家谱重新审核
- source visual truth path: 历史 G01 成熟视觉基准与 `docs/验收规划.md` 最新 G01 状态合同
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G01-current-default-360x800.png``docs/design/screens/runtime/2026-07-16/G01-current-empty-360x800.png`
- representative contact sheet: `docs/design/screens/handoff/2026-07-16/G01-current-default-empty-contact-720x800.png`
- viewport: 360×800;运行 smoke 另查 320×568、412×915
- state: 默认三分组、空态三入口、loading、error、添加家谱弹层、当前谱切换层
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 视觉策略:保留现有成熟的朱砂顶栏、宣纸、题签、金线图标和水墨页脚,不为重审无必要地更换风格。
- 空态分流:搜索家谱为朱砂主入口,邀请码为快捷入口,创建为三级入口并明确提示先确认无现有家谱;三者始终同屏可见。
- 默认状态:我创建的、我加入的、加入申请三组均存在,加入申请示例覆盖审核中、被拒绝和已退出的位置与语义。
- 页面操作:添加家谱不再直接跳创建页,而是打开自定义三入口弹层;当前大卡支持自定义切换层。
- 兼容性:三档无横向溢出,底部 Tabbar 保留内容安全距离;短屏正常滚动。
## Evidence limits
当前使用本地展示数据验证页面样式,不代表全局家谱上下文已经持久化,也不代表真实申请状态、接口加载、Android 返回现场恢复或用户验收完成。
## Implementation checklist
- [x] 空态搜索/邀请码/创建三入口及优先级
- [x] 默认三分组与关键申请状态
- [x] loading/error 与自定义重新加载
- [x] 添加家谱弹层和当前谱切换层
- [x] 三档 H5 响应式、真实点击与截图 QA
- [ ] 全局家谱上下文真实持久化
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收
final result: passed (internal H5 candidate QA only; user review pending)
---
# Design QA — A06 阻断登录状态
- archive status: 2026-07-16 用户确认当前样式没有问题,但当前流程暂时不用该页;已从 `pages.json` 和活动验收队列移除,源码、测试和证据保留。
- source visual truth path: A01/A04/A05 红色宗祠水墨认证系列与 `docs/验收规划.md` A06 最新产品合同
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/A06-current-risk-v2-412x915.png`
- viewport: 412×915;运行 smoke 另查 320×568、360×640、360×800
- state: 账号冻结、账号停用、风险限制、未知旧状态回落、自定义恢复说明层
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 产品边界:旧 normal/failed/register/wechat 状态已移除;A06 仅保留冻结、停用、风险限制,普通登录错误继续由 A01 就近承接。
- 信息完整性:每种状态明确展示限制原因、影响范围和恢复方式,不只给出模糊失败提示。
- 视觉与反馈:Logo 已同步 A01 的 `184×221rpx` 槽位;页面继承全局楷体,标题分隔、两处朱砂按钮和恢复卷轴均使用 A01 新资产,不再引用旧按钮或旧面板。
- 尺寸适配:四档无横向溢出,320×568 与 360×640 按正常比例自然滚动。
## Evidence limits
当前结论仅说明用户对封存前 H5 样式没有异议,不等于完整页面验收或冻结;真实状态来源、账号申诉服务、Android 返回手势和字体放大均未验证。封存期间运行 smoke 明确 SKIP;恢复路由后必须重新执行。
## Implementation checklist
- [x] 只保留冻结、停用、风险限制
- [x] 原因、影响范围、恢复入口完整
- [x] 未知旧状态安全回落到风险限制
- [x] 自定义恢复说明层与返回 A01
- [x] A01 新 Logo、全局字体、标题分隔、两处按钮和恢复卷轴
- [x] 封存前四档 H5 响应式和运行烟测
- [x] 从活动路由和验收表移除,源码/测试/证据保留
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 恢复路由后的用户逐态验收
final result: archived (H5 style had no user objection; not an accepted or frozen active page)
---
# Design QA — A05 重设密码
- source visual truth path: A01/A04 已确定的红色宗祠水墨认证系列与 `docs/design/screens/handoff/2026-07-16/A01-current-password-sms-contact-824x915.png`
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/A05-current-reset-v2-412x915.png`
- viewport: 412×915;运行 smoke 另查 320×568、360×640、360×800
- state: 默认表单、手机号错误、滑动验证待接入 Toast、全字段错误、密码不一致、自定义成功结果
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 视觉连续性:Logo 已同步 A01 的 `184×221rpx` 槽位;页面继承全局楷体,标题分隔、页面主按钮、成功结果按钮和 Toast 均迁移到 A01 新资产体系。
- 流程边界:获取验证码先校验手机号;通过后只提示“滑动验证待接口接入”,不再用旧面板伪造验证完成、验证码已发送或重新获取状态。
- 错误与结果:四字段错误继续就近显示;成功结果使用新卷轴容器和新版朱砂按钮,不调用原生 UniApp 提示。
- 尺寸适配:四档无横向溢出;320×568 和 360×640 保持正常比例并自然纵向滚动。
## Evidence limits
2026-07-16 用户已逐态确认当前 7 类 H5 视觉状态。真实滑动验证使用接口组件自带样式;真实短信、重设接口、Android 状态栏、安全区、软键盘、字体放大和返回手势属于后续功能/真机复核。返回 A01 后回填手机号并聚焦密码框由用户明确延期到真实重置接口链路接入时解决,不阻塞当前样式验收。
## Implementation checklist
- [x] A01/A04 同系列 Logo、全局字体、标题分隔、按钮与 Toast
- [x] 移除旧验证面板和伪验证码发送状态
- [x] 手机号通过后使用滑动验证待接入反馈并保留表单
- [x] 四字段页内校验与自定义成功结果
- [x] 四档 H5 响应式和真实运行烟测
- [x] 用户确认当前 7 类 H5 视觉状态(接口回流数据与焦点延期)
- [ ] Android/HBuilderX 真机或模拟器复核
final result: user H5 visual review passed for implemented states; real slider, interface return data/focus and Android review pending
---
# Design QA — A04 注册账号
- source visual truth path: A01 已选红色宗祠水墨视觉体系与 `docs/design/screens/handoff/2026-07-16/A01-current-password-sms-contact-824x915.png`
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/A04-current-register-v2-412x915.png`
- viewport: 412×915;运行 smoke 另查 320×568、360×640、360×800
- state: 默认注册、空表单错误、协议错误、协议勾选、新版自定义反馈
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 视觉连续性:Logo 已同步 A01 的 `184×221rpx` 槽位;标题分隔、朱砂主按钮和 Toast 已迁移到 A01 新资产体系,页面统一继承全局楷体,不再引用旧按钮、旧 Toast 图片层或旧验证面板。
- 表单层级:手机号、设置密码、确认密码三行保持清晰标签和输入提示;错误信息就近显示,不调用原生 UniApp 提示。
- 尺寸适配:三档宽高无横向溢出;320×568 按最新决定保持正常比例并自然纵向滚动。
- 流程验证:A01 注册入口、三字段校验、协议校验、新版 Toast 反馈以及返回登录均通过浏览器运行烟测;完整本地校验后只提示“滑动验证待接口接入”。
## Evidence limits
2026-07-16 用户已逐态确认当前可实现的 8 类 H5 视觉状态;真实滑动验证使用接口组件自带样式,注册成功/失败真实链路留到接口阶段审核。Android 状态栏、安全区、软键盘、字体放大和返回手势仍需真机或模拟器复核,因此 A04 继续保持 `[~]`,不冻结。
## Implementation checklist
- [x] A01 同系列视觉与真实资产
- [x] 三字段就近校验与协议页内错误
- [x] A01 新 Logo、标题分隔、主按钮、Toast 与全局字体
- [x] 移除非最终自定义验证层,保留滑动验证待接入反馈
- [x] 320×568 自然滚动、360×640、360×800 与 412×915 无横向溢出
- [x] H5 静态契约与真实运行烟测
- [ ] Android/HBuilderX 真机或模拟器复核
- [x] 用户确认当前 8 类 H5 视觉状态(真实滑动验证与接口结果态除外)
final result: user H5 visual review passed for implemented states; real slider, interface result states and Android review pending
---
# Design QA — A01 红色宗祠水墨登录页
- source visual truth path: `docs/design/assets/a01-vnext/source/A01-layered-source-v1.psd`;长期实现代表证据为 `docs/design/screens/handoff/2026-07-16/A01-current-password-sms-contact-824x915.png`
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/A01-password-final-412x915.png``docs/design/screens/runtime/2026-07-16/A01-sms-final-412x915.png`
- viewport: 412×915;另查 320×568、360×640、360×800
- state: 密码登录、短信验证码登录;运行 smoke 另查协议页内错误与自定义行为验证层
- full-view comparison evidence: `docs/design/screens/runtime/2026-07-16/A01-password-compare-final.png``docs/design/screens/runtime/2026-07-16/A01-sms-compare-final.png`
- focused region comparison evidence: 全页比较以原始 412px 宽度并排显示,顶部宗祠、Logo、输入图标和协议文字均可辨认;没有需要额外放大的高密度区域。
## Findings
没有遗留的 P0/P1/P2 问题。
- 字体与层级:标题、Tab、输入文案、主按钮和辅助文案已形成与选定稿一致的层级;中文字体受 H5 系统宋体渲染影响存在轻微字形差异,归为 P3。
- 间距与布局:第二轮已扩大标题和表单节奏,协议区不再过早结束;四档宽度无横向溢出,320×568 按用户最新决定自然纵向滚动。
- 颜色与令牌:朱砂红、暗红宗祠、象牙宣纸、淡墨山水和旧金线条与选定稿一致。
- 图片质量:宗祠水墨底板为 824×1830 PNG`brand-seal.png` 独立叠放,未让生成模型重绘“谱”字;锁、闭眼瞳孔、短信气泡三点和微信均使用真实资产。
- 文案与内容:密码/短信标签、短信验证码、获取验证码、忘记密码、微信登录、注册和协议文案齐全。
- 交互与可达性:密码/短信状态切换、密码显隐、协议页内错误、自定义行为验证层均通过浏览器 smoke;截图不能证明读屏顺序和 Android 真机触摸体验。
## Comparison history
1. v1 P1:标题、Tab、输入和按钮文字明显偏小,表单整体比设计稿提前约 90px 结束;已扩大字号并重排垂直节奏。
2. v2 P2:宗祠区比设计稿高约 17px;已对新底板分段缩放,保持总尺寸不变。
3. v3 P2:短信气泡、微信图标偏小且输入图标槽位偏右;已在固定槽位内调整显示比例和视觉位移。
4. final:密码/短信同尺寸比较未发现新的 P0/P1/P2。
## Evidence limits
本轮是 HBuilderX H5 + Chrome 调试截图,不能替代 Android/HBuilderX 真机或模拟器对状态栏、安全区、软键盘、系统字体放大、读屏和返回手势的最终复核,也不代表用户已经验收。
## Implementation checklist
- [x] 密码/短信共用红色宗祠水墨底板
- [x] 独立使用现有 `brand-seal.png`
- [x] 密码锁、闭眼瞳孔和横线下方忘记密码
- [x] 短信气泡三点和获取验证码
- [x] 320×568 自然滚动与四档无横向溢出
- [x] 协议页内错误和自定义行为验证层 smoke
- [ ] Android/HBuilderX 真机或模拟器复核
- [ ] 用户验收
final result: passed
---
# Design QA — G05 家谱总览
- source visual truth path: `docs/design/screens/runtime/2026-07-14/g-module-audit/before/01-g05-before-360x800.png``static/assets/modules/genealogy/opaque/g05-overview-surface.png`、外部思维导图与 `家谱主页.png` 的信息层级参考
- implementation screenshot path: `docs/design/screens/runtime/2026-07-14/g-module-audit/g05/01-g05-ready-360x800.png`
- viewport: 360×800;另查 412×915
- state: `ready`;另查 `empty``error`
- full-view comparison evidence: `docs/design/screens/runtime/2026-07-14/g-module-audit/g05/05-g05-before-after-comparison.png`
- focused region comparison evidence: 未单独裁切;合并图中 360px 单页按原始像素显示,谱名区、四宫格、近况行和底部说明文字均可直接辨认。
## Findings
没有遗留的 P0/P1/P2 问题。
- 字体与层级:谱名、核心动作、辅助说明形成三级层级;第一次审计发现元信息和说明文字偏小,已将相关字号提高到 22–23rpx 后重截。
- 间距与布局:四个点击区与位图槽位一致;360 与 412 均无横向溢出、裁切或底部操作遮挡。
- 颜色与令牌:继续使用朱砂、墨蓝、暖宣纸与古金,没有采用外部参考的灰绿色视觉。
- 图片质量:总览面、四宫格边框、分隔和底部说明面全部来自 1122×1506 不透明位图;没有用 CSS 边框、渐变、SVG 或占位图形代替。
- 文案与内容:删除了“邀请亲人→申请加入”的角色错误;保留 OpenAPI 能支持的概览、世系、始祖、字辈、审核和设置任务。
## Comparison history
1. 改前 P1:录入族人指向已删除 G04;已改为 G03 `step=ancestor`,静态契约和真实点击通过。
2. 改前 P1:管理员邀请动作错误进入申请者 G08;已删除该动作,不臆造 OpenAPI 未提供的邀请功能。
3. 改前 P2:完整卡片与面板由 CSS 拼接;已改成 ImageGen 不透明位图并验证尺寸和 alpha。
4. 首次改后 P2:部分 360 宽屏辅助文字偏小;已提高字号并重新捕获四张最终证据。
## Evidence limits
截图能够确认层级、裁切、图像质量和可见点击面积,不能单独证明读屏顺序、外接键盘焦点、Android 系统字体放大或完整 WCAG 合规;这些留给真机专项验证。
## Implementation checklist
- [x] G01 统一使用 `genealogyId` 查询键
- [x] G05 同页承载 `loading|ready|empty|error`
- [x] G04 旧路径清除
- [x] 误导邀请动作清除
- [x] 360×800 与 412×915 截图检查
- [x] 静态契约与浏览器运行冒烟通过
final result: passed
---
# Design QA — 54 路由候选覆盖审计
- 审计日期:2026-07-14
- 用户验收状态:7 个冻结页为 `[x]`;其余 47 个页面仅为 `[~]` 候选,本文件的 `passed` 只表示本轮内部截图 QA 通过,不代表用户审美验收。
- 全量候选截图:`docs/design/screens/runtime/2026-07-14/all-page-candidates/`
- G 模块证据:`g-module-audit/`
- T 模块证据:`t01-audit/``t-module-audit/`
- F01/F02/N01/M01 根页证据:`root-pages-audit/`
- 六类共享母版证据:`module-page-audit/`
## Audit summary
- 54 条最终路由已按当前信息架构覆盖;G07→G06、T02→T01 的重复状态路由已收敛。
- 候选页面继续使用宣纸、朱砂、古金、墨褐视觉体系;按钮、卡片、字段、面板和边框使用完整位图,未在共享母版中使用 CSS 伪元素或 CSS 构造可见表面。
- 47 个待审页面均使用本地模拟数据与可操作状态,不调用 `appApi`;接口清单只用于功能位置、字段与状态语义。
- 29 个原通用壳页面逐页捕获 360×800 候选图,并按 F、R、M/N 生成模块联系表统一审视。
- F01、F02、N01、M01 根页在 360×800 与关键 412×915 下复核;底部导航、主操作和状态卡没有裁切。
- 首轮 T01 状态卡横向裁切已按契约先行修复并重截;G09/G10 假按钮槽已用独立状态位图修复;当前没有遗留的 P0/P1/P2 截图问题。
## Evidence limits
H5 Chrome 截图不能证明 Android 真机字体放大、读屏语义、系统返回手势、软键盘遮挡和所有触摸目标;这些项目不在本轮候选 QA 中冒充完成,留到用户视觉审核后的 Android 设备复核。
final result: passed (internal candidate QA only; user review pending)
# Design QA — G01 旗舰长屏公共背景
- source visual truth path: `static/assets/modules/genealogy/opaque/genealogy-page-background-long.png`
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G01-shared-long-background-412x915.png`
- additional responsive evidence: `G01-shared-long-background-320x568.png``360x640.png``360x800.png``412x1000.png`(同目录)
- viewport: 412×915;另查 320×568、360×640、360×800、412×1000
- state: G01 默认三分组列表,公共背景固定贴底
- full-view comparison evidence: 同一比较输入内打开 1440×3600 源图与 320×568、412×915、412×1000 实现截图,核对全屏覆盖、画面连续性和响应式裁切
- focused region comparison evidence: 不另做局部裁图;横向分界线、左右边缘、顶部竹枝和底部山水在全尺寸原图及原像素实现截图中均可直接辨认
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 字体与排版:本轮未改变页面字体、字号、行高和文案;背景中央保持低对比,未压低标题、卡片和状态文字可读性。
- 间距与布局:背景层固定全屏且不参与布局;320×568 允许自然滚动,五档均无横向溢出,底栏未被背景层遮挡。
- 颜色与视觉令牌:暖灰宣纸、淡金竹影和灰褐山水连续覆盖视口;旧 C 图与 `#e7ded1` 的明显横向拼接线不再出现。
- 图片质量与资产一致性:原稿、1536×3840 母版和 1440×3600 运行图均为真实位图;`widthFix` 保证左右完整且不拉伸,短屏只裁顶部安全区。
- 文案与内容:背景无文字、Logo、UI、按钮或红色污染;页面现有业务文案未改变。
- 交互与运行:G01 空态、添加弹层、当前家谱切换、loading/error 和五档响应式 smoke 通过;截图脚本检查浏览器异常和 `console.error`
## Comparison history
1. 旧方案 P1:1024×1536 C 图固定贴底,高屏上方由纯色宣纸承接,出现明显横向分界线。
2. 当前方案:用户确认连续长图后,改用 1440×3600 单张背景覆盖最高压力档;五档复核未见分界线、左右裁切或拉伸。
## Evidence limits
当前结论只覆盖 HBuilderX H5 + Chrome 内部候选。尚未完成 Android/HBuilderX 真机或模拟器复核,也未验证 4GB Android 上约 19.8MiB 解码内存、切页和回收;本结论不表示 G01 整页验收或冻结。
## Implementation checklist
- [x] 用户确认旗舰长屏方向
- [x] 原稿、归一化母版、运行图和清单可恢复
- [x] 9 个活动 G 页面仍只使用一个共享背景组件
- [x] 五档 H5、背景静态契约和 G 页面运行 smoke
- [ ] Android/HBuilderX 与 4GB Android 图片性能复核
- [x] G01 固定区/独立滚动方向已确认并形成五档 H5 候选
- [ ] G01 整页用户验收
final result: passed
---
# Design QA — G01 固定信息区与独立列表滚动
- source visual truth path: `docs/superpowers/specs/2026-07-16-g01-fixed-header-independent-list-scroll-design.md`
- interactive design reference: `.superpowers/brainstorm/120-1784206869/content/g01-scroll-layout-comparison.html`(本机可再生成设计会话,不作为长期交接证据)
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G01-fixed-list-scroll-412x915.png`
- additional responsive evidence: `G01-fixed-list-scroll-320x568.png``360x640.png``360x800.png``412x1000.png`(同目录)
- viewport: 412×915;另查 320×568、360×640、360×800、412×1000
- state: 已有家谱正常态,列表滚动 135px;另查添加家谱弹层、切换家谱回顶、loading、error、empty
- full-view comparison evidence: 同一比较输入内打开改前 412×915、改后 320×568、改后 412×915 和改后 412×1000,核对固定范围、列表裁切边界、底栏和背景连续性
- focused region comparison evidence: 固定区和列表边界在原像素全页图中可直接辨认;运行 smoke 另以元素矩形坐标验证滚动前后固定元素位移不超过 1px,因此不另建局部裁图
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 字体与排版:标题、当前谱名、快捷入口、分组标题、卡片和申请状态的字体、字号与行高未改变;320×568 未压缩字号。
- 间距与布局:标题栏、当前家谱卡、四快捷入口、金色分隔线和底部导航固定;三组标题、卡片及“添加家谱”在单一滚动区内移动。加入申请相邻卡继续保持 `12rpx`
- 颜色与视觉令牌:未改变朱砂、古金、暖宣纸和状态色;滚动边界没有增加阴影、渐变或新的视觉层。
- 图片质量与资产一致性:公共 1440×3600 长背景继续固定全屏,不随内部列表滚动;现有卡框、谱印、快捷图标、分隔线和底栏资产未替换、裁切或拉伸。
- 文案与内容:页面文案、分组顺序、申请状态和“添加家谱”入口未改变。
- 交互与运行:五档运行 smoke 验证固定元素位置变化不超过 1px、列表内容确实位移、滚到底可完整点击“添加家谱”;弹层开关保持列表位置,切换当前家谱后回顶。loading、error、empty 保持原布局。
## Comparison history
1. 改前:整个 G01 内容随页面滚动,当前家谱与四快捷入口会离开视口。
2. 可操作示意稿:用户选择“上方固定、下方列表独立滚动”,并确认异常状态继续使用原布局。
3. 实现后:五档 H5 均形成可计算的列表高度,固定区不移动;未发现横向溢出、底栏遮挡或滚动穿透。
## Evidence limits
当前结论只覆盖 HBuilderX H5 + Chrome 内部候选。Android/HBuilderX 真机或模拟器上的惯性、短暂系统滚动指示条、状态栏、安全区、返回现场和 4GB 设备性能仍未验证;用户已查看本次实际 H5 实现并确认共享背景浓度,但未给出 G01 整页正式验收,因此不表示 G01 已验收或冻结。
## Implementation checklist
- [x] 正常态上方固定、列表单独滚动
- [x] loading/error/empty 保持原布局
- [x] 五档尺寸、弹层位置保持、切换家谱回顶、底部入口可达
- [x] 公共背景图片画层按后续确认统一调整为 28% 不透明度,页面结构与背景资产不变
- [x] 用户查看实际 H5 页面
- [ ] Android/HBuilderX 与 4GB Android 性能复核
- [ ] G01 整页验收
final result: passed
---
# Design QA — G 模块公共背景 28% 不透明度
- source visual truth path: `docs/superpowers/specs/2026-07-16-genealogy-background-opacity-design.md`
- implementation screenshot path: `docs/design/screens/runtime/2026-07-16/G01-fixed-list-visible-audit-412x915.png`
- additional responsive evidence: `G01-fixed-list-scroll-320x568.png``360x640.png``360x800.png``412x915.png``412x1000.png`(同目录)
- viewport: 412×915 初始位置;另查五档滚动状态
- state: G01 已有家谱正常态,共享长背景图片画层使用 `opacity: 0.28`
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 视觉层级:竹枝、山水和亭台退为淡水印,标题、卡框、文字、状态色和底部导航保持原有不透明度。
- 布局与图片:背景继续 `widthFix` 固定贴底,左右完整显示;五档未新增横向溢出、接缝、底栏遮挡或滚动结构变化。
- 组件边界:透明度由 `GenealogyPageBackground.vue` 单一持有,9 个活动 G 页面没有页面级覆盖;运行 PNG 和可恢复母版未重制。
- 运行:共享背景契约完成 RED/GREEN/回归证明;G01、G03、G05、G06、G08G10、G11G12 六组运行 smoke 通过。
## Evidence limits
当前仅覆盖 H5 + Chrome 内部候选。用户确认的是 28% 背景浓度,不等于 G01 或其他 G 页面整页验收;Android/HBuilderX 与 4GB Android 长图解码、切页和回收仍待复核。
final result: passed (internal candidate QA only)
---
# Design QA — G01 申请次要文字可读性
- source visual truth path: `docs/superpowers/specs/2026-07-16-g01-secondary-text-legibility-design.md`
- before screenshot: `docs/design/screens/runtime/2026-07-16/g01-text-legibility-audit/01-current-list.png`
- first-round screenshot: `docs/design/screens/runtime/2026-07-16/g01-text-legibility-audit/02-enhanced-list.png`
- final B screenshot: `docs/design/screens/runtime/2026-07-16/g01-text-legibility-audit/03-b-medium-weight.png`
- viewport: 412×915;另查 320×568、360×640、360×800、412×1000
- state: G01 已有家谱正常态,内部列表滚到“加入申请”区域
## Findings
没有遗留的 H5 P0/P1/P2 问题。
- 说明文字首轮从 `23rpx / #776b5c` 调整为 `26rpx / #62584c / 1.4`,用户认为变化仍不明显;最终 B 方案为 `28rpx / 500 / #62584c / 1.4`412px 视口实测约 15.38px,估算对比度在宣纸与背景承接色上约为 6.13:1 和 5.22:1。
- 状态文字首轮从 `23rpx / 400` 调整为 `25rpx / 500`,最终 B 方案为 `27rpx / 600`412px 视口实测约 14.83px;审核中使用 `#7f4f16`,估算对比度约为 6.11:1 和 5.20:1;被拒绝保留语义红,已退出使用更深 muted 色。
- 五档截图未见说明与状态/箭头重叠,卡片高度、12rpx 连续间距、固定区、独立滚动和底栏均未改变。
- 共享 `GenealogyCard.vue` 的“更新于”等文字不在本轮范围,未随手修改。
## Evidence limits
对比度为基于 CSS 色值和两种代表底色的估算,不能代替 Android 真机面板、户外亮度、系统字体缩放或读屏复核;本轮不表示 G01 整页已验收。
final result: passed (internal candidate QA only)
---