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

39 lines
2.8 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.
# 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.png``a02-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 不再阻塞后续页面,但其可见效果保持冻结。