Files
jiapuapp/docs/superpowers/specs/2026-07-14-a02-agreement-control-design.md
T
2026-07-14 17:36:43 +08:00

2.8 KiB
Raw Blame History

A02 协议确认控件设计

状态:用户已确认方案并验收 A02;本文件只保留本轮已完成的 A02 调整记录。

目标

让直接进入 A02 的用户能在当前登录页完成协议确认,替换“请先在登录引导页阅读并确认协议”的被动提示,同时保持 A01 已验收的可见效果与既有入口行为不变。

范围与边界

  • 只修改 A02 账号登录、其最小契约、两枚认证模块透明状态图标、A02 文字注册入口、相应资产台账和 A02 设计记录。
  • A01 的页面结构、视觉、协议勾选、agreed=1 跳转和拦截行为均不改动。
  • 不新建协议正文路由;《用户协议》《隐私政策》沿用当前“协议页面准备中”的提示行为。
  • A03 已删除;A02 已验收。后续 A04--A06 必须各自审视与验收,不把 A02 表单直接复制过去。

A02 交互合同

  1. A02 的 agreed 是 A02 提交前协议状态的唯一所有者。
  2. agreed=1 只作为从 A01 进入时的初始已同意值;直接进入 A02 时默认未同意。
  3. 登录按钮下方提供整行可点击的协议确认控件。点击行切换状态,点击协议名称不切换状态。
  4. 未同意时提交提示“请先阅读并同意相关协议”,不再要求返回 A01;已同意后保留既有账号密码、短信登录校验和登录待接入提示。
  5. 协议行下方提供“还没有账号? 注册账号”入口;仅“注册账号”可点,且直接进入既有 A04,不以协议状态或新接口阻断新用户。

视觉与资产合同

  • 控件位于 A02 卷轴面板内、登录按钮下方,使用至少 88rpx 高的点击区和不小于 24rpx 的正文。
  • 未选中和选中图标分别使用 static/assets/modules/auth/transparent/a02-agreement-unchecked.pnga02-agreement-checked.png
  • 图标为 96 × 96 的 RGBA PNG,四角透明;显示时只承担图标,不用 CSS 绘制圆环、勾号或底色。
  • 文本与链接位于 Vue 文字层,保留项目既有墨褐与朱砂层级;不把文字烘焙进图标。
  • 注册入口是无底色、无边框的文字导航,不伪造为 CSS 按钮,也不新增视觉资产;“注册账号”保持至少 88rpx 高的触点。

验收

  • 最小 UI 契约先红后绿,覆盖 A02 协议行、两枚图标、初始状态、切换、当前页拦截与旧提示移除。
  • 资产审计验证两枚图标存在、尺寸、RGBA 与透明角。
  • 运行 A02 相关审计、编译审计、全路由合同;用 Chrome 截取 A02 未选中与 agreed=1 选中状态,并验证注册入口实际到达 A04。
  • 截图脚本每次必须确认目标 URL 并创建新文档后再等待图片,不能复用同一路由遗留的 Vue 状态作为视觉证据。
  • design-qa.md 已标记 accepted;A02 不再阻塞后续页面,但其可见效果保持冻结。