88 lines
4.4 KiB
Markdown
88 lines
4.4 KiB
Markdown
# A05 重置密码实施计划
|
|
|
|
> **For agentic workers:** 在当前工作区逐项执行;用户禁止子代理、worktree、Git 暂存、提交、推送与上传。
|
|
|
|
**Goal:** 将 A05 改为与已验收认证入口一致的独立手机验证重置密码页,并保留真实本地校验与 A02 回流。
|
|
|
|
**Architecture:** `pages/auth/a05-reset-password.vue` 自己拥有四项表单状态、验证码提示、重置校验和 A02 跳转,不再依赖 `ModulePage`。视觉复用 A02/A04 已用的完整认证位图,`data/page-catalog.js` 删除 `a05` 临时条目。
|
|
|
|
**Tech Stack:** Vue 3 `<script setup>`、uni-app、SCSS、PowerShell 源码契约、Chrome DevTools 截图。
|
|
|
|
## Global Constraints
|
|
|
|
- 仅修改 A05、它的契约、目录项、设计记录、规划/交接/资产台账与运行时截图。
|
|
- 不生成新资产;完整卷轴面板、朱砂主按钮、页头、结饰和返回箭头全部引用已有位图。
|
|
- 不修改已验收 A01、A02、A04、G01 的可见效果。
|
|
- 先红灯后绿灯;完成前重跑受影响回归、截图审视和 `git diff --check`。
|
|
|
|
---
|
|
|
|
### Task 1: 固化独立 A05 重置密码合同
|
|
|
|
**Files:**
|
|
- Create: `tests/a05-reset-password-contract.ps1`
|
|
- Modify: `pages/auth/a05-reset-password.vue`
|
|
- Modify: `data/page-catalog.js`
|
|
|
|
**Interfaces:**
|
|
- Consumes: `/pages/auth/a02-login`、`auth-header.png`、`a02-login-panel.png`、`a01-primary-button.png`、`auth-divider-knot.png` 与 `chevron-right.png`。
|
|
- Produces: A05 的 `phone`、`verificationCode`、`password`、`confirmPassword`、`prepareGetCode`、`submitReset`、`prepareLogin` 和 `goBack`。
|
|
|
|
- [x] **Step 1: 写失败的最小契约。**
|
|
|
|
创建 PowerShell 测试,读取 A05、`pages.json`、`data/page-catalog.js` 并断言:A05 路由存在但不使用 `ModulePage`;模板拥有认证头、卷轴面板、主按钮、结饰、手机号/验证码/新密码/确认新密码的 `v-model`、获取验证码动作、重置校验、A02 登录回流;`a05:` 从临时目录移除;A05 面板、主按钮和验证码动作不以 CSS `border`/`background` 伪造完整表面。
|
|
|
|
- [x] **Step 2: 运行红灯。**
|
|
|
|
运行:
|
|
|
|
```powershell
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/a05-reset-password-contract.ps1
|
|
```
|
|
|
|
预期:A05 仍引用 `ModulePage` 且目录仍有 `a05:`,测试失败。
|
|
|
|
- [x] **Step 3: 最小独立实现。**
|
|
|
|
将 A05 写为独立认证页:认证背景与页头、带返回动作的标题、结饰、四行真实输入;验证码行右侧是无表面文字动作;完整位图主按钮;“返回登录”回流 A02。实现 `prepareGetCode`、`submitReset` 和四项顺序校验;删除 `data/page-catalog.js` 的 `a05` 条目。
|
|
|
|
- [x] **Step 4: 运行绿灯。**
|
|
|
|
运行:
|
|
|
|
```powershell
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/a05-reset-password-contract.ps1
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/compile-audit.ps1
|
|
```
|
|
|
|
预期:输出 `A05-RESET-PASSWORD-CONTRACT PASS` 与 `PASS compile audit`。
|
|
|
|
### Task 2: 记录、截图与最终回归
|
|
|
|
**Files:**
|
|
- Create: `docs/design/A05_重置密码_设计记录.md`
|
|
- Create: `docs/design/screens/runtime/2026-07-14/A05-after-360x800.png`
|
|
- Create: `docs/design/screens/runtime/2026-07-14/A05-after-412x915.png`
|
|
- Modify: `docs/规划.md`
|
|
- Modify: `docs/交接记录.md`
|
|
- Modify: `docs/design/P00_页面结构与资产清单.md`
|
|
|
|
- [x] **Step 1: 写设计记录。**
|
|
|
|
记录 A05 的四项认证流程、复用资产、未接入短信/后端的边界、A02 回流、截图与自动检查;状态写“实现与截图完成,等待用户视觉验收”。
|
|
|
|
- [x] **Step 2: 捕获并审视真实截图。**
|
|
|
|
运行:
|
|
|
|
```powershell
|
|
node scripts/capture-chrome-page.js "http://localhost:5173/#/pages/auth/a05-reset-password" ".auth-page" "docs/design/screens/runtime/2026-07-14/A05-after-360x800.png" 360 800
|
|
node scripts/capture-chrome-page.js "http://localhost:5173/#/pages/auth/a05-reset-password" ".auth-page" "docs/design/screens/runtime/2026-07-14/A05-after-412x915.png" 412 915
|
|
```
|
|
|
|
逐张检查认证页头、四项输入、验证码动作、按钮、登录回流、横向裁切、黑块和滚动可达性。
|
|
|
|
- [x] **Step 3: 完整回归。**
|
|
|
|
运行 A05 契约、A04 契约、A03 路由移除、A01/A02 契约、资产审计、截图脚本契约、编译审计、全页契约与 `git diff --check`。同步规划、交接和资产台账;用户已于 2026-07-14 明确验收 A05,因此将它写为已验收并冻结。
|