# A-01 启动/登录引导页 Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use `superpowers:executing-plans` to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 新增不接接口的 A-01 登录方式选择页,以账号密码为主入口,并要求用户主动勾选协议后才允许进入已设计完成的下一页。 **Architecture:** A-01 使用独立的 `pages/auth/entry.vue`,不改动现有 `pages/auth/login.vue` 的临时密码登录骨架,避免破坏现有核心流程合同。页面状态只包含 `consented` 和点击守卫;视觉由现有本地纸纹、朱砂红头、祠堂线描与山水资产组合,微信图标以本地透明 PNG 引入。A-02/A-03 的最终跳转仅在两页都完成设计并注册路由后接通。 **Tech Stack:** uni-app、Vue 3 ` ``` 本任务阶段不得引入 `appApi`、`calcMD5`、真实登录、真实微信授权或不存在的 A-02/A-03 路由;跨页跳转在 Task 5 的执行门槛满足后替换。 - [ ] **Step 3: 写入页面主体,保持三种入口与显式复选框** ```vue ``` - [ ] **Step 4: 完成最小 SCSS 外观** 要求:用 `background-image` 组合 `header-cinnabar-texture-v2.jpg`、`paper-rice-texture-v2.jpg`;红头可见祠堂线描;纸面底部可见但低对比的 `footer-mountain-bamboo.png`;按钮高度至少 `88rpx`;不使用 CSS Grid、`gap`、`clip-path`、滤镜或外部 URL。协议区域不得使用“登录即表示同意”文案,未选中复选框只显示古金圆圈,选中后显示朱砂对勾。 - [ ] **Step 5: 运行合同测试,确认通过** Run: `powershell -ExecutionPolicy Bypass -File tests\a01-login-guide-contract.ps1` Expected: `PASS A-01 login guide contract`. - [ ] **Step 6: 做一次静态构建健康检查** Run: `powershell -ExecutionPolicy Bypass -File tests\compile-audit.ps1` Expected: `PASS compile audit`. - [ ] **Step 7: 提交独立 A-01 页面** ```powershell git add pages/auth/entry.vue pages.json tests/a01-login-guide-contract.ps1 git commit -m "feat: add A01 login guide" ``` ### Task 4: 视觉验收与设计状态记录 **Files:** - Modify: `docs/规划.md` - Test: `tests/a01-login-guide-contract.ps1`, HBuilderX Android 小屏预览 **Interfaces:** - Consumes: Task 3 完成的页面与合同 - Produces: D2 阶段下 A-01 的真实设计状态 - [ ] **Step 1: 在 HBuilderX 中预览 `pages/auth/entry` 的 `360 × 800dp` 画面** 检查:红头、标题、三个按钮和未勾选协议同时可见;账号密码为唯一红色主操作;宣纸与山水不压住协议;没有底部 Tab。 - [ ] **Step 2: 手动验证两种协议状态** 1. 初始未勾选,分别点击三个入口,均显示“请先阅读并同意相关协议”,且不跳转。 2. 勾选后复选框显示朱砂对勾;三个入口只显示本地确认提示,不请求网络。 - [ ] **Step 3: 仅在上述视觉和手动检查通过后更新 `docs/规划.md`** 将 `A-01 启动 / 登录引导页` 改为“视觉完成(已验收)”;D2 保持“进行中”,因为 A-02 至 A-06 尚未完成。 - [ ] **Step 4: 重跑最终验证** Run: ```powershell powershell -ExecutionPolicy Bypass -File tests\a01-login-guide-contract.ps1 powershell -ExecutionPolicy Bypass -File tests\compile-audit.ps1 powershell -ExecutionPolicy Bypass -File tests\uni-scss-injection.ps1 ``` Expected: 三条命令均输出 `PASS`. - [ ] **Step 5: 提交验收记录** ```powershell git add docs/规划.md git commit -m "docs: mark A01 visual review" ``` ### Task 5: D2 跨页设计完成后的路由接通(执行门槛任务) **Precondition:** A-02 与 A-03 的设计说明、页面文件和 `pages.json` 路由均已通过各自视觉验收;否则此任务不得开始。 **Files:** - Modify: `pages/auth/entry.vue` - Test: `tests/a01-login-guide-contract.ps1`(扩展路由断言) **Interfaces:** - Consumes: A-02 的已验收密码页路由;A-03 的已验收验证码/微信回跳页路由 - Produces: `entryRoutes`,键固定为 `password`、`phone`、`wechat` - [ ] **Step 1: 扩展合同,要求所有目标路由已在 `pages.json` 注册** ```powershell foreach ($route in @('pages/auth/password-login', 'pages/auth/phone-login')) { if ($route -notin $paths) { throw "Missing approved auth target route: $route" } } ``` - [ ] **Step 2: 将 Task 3 的本地确认提示替换为唯一的目标映射** ```js const entryRoutes = { password: '/pages/auth/password-login', phone: '/pages/auth/phone-login', wechat: '/pages/auth/phone-login?source=wechat' } const enterLogin = (entry) => { if (!consented.value) { uni.showToast({ title: '请先阅读并同意相关协议', icon: 'none' }) return } uni.navigateTo({ url: entryRoutes[entry] }) } ``` 模板调用固定为 `enterLogin('password')`、`enterLogin('phone')`、`enterLogin('wechat')`。不得在 A-01 增加任何接口调用或注册入口。 - [ ] **Step 3: 运行合同和 A-02/A-03 各自的视觉合同** Run: `powershell -ExecutionPolicy Bypass -File tests\a01-login-guide-contract.ps1` Expected: `PASS A-01 login guide contract`. - [ ] **Step 4: 提交跨页接通** ```powershell git add pages/auth/entry.vue tests/a01-login-guide-contract.ps1 git commit -m "feat: connect A01 auth routes" ``` ## Self-Review - **规格覆盖:** Task 1 和 Task 3 覆盖三入口、主次层级、本地资产、无接口和显式协议;Task 4 覆盖小屏视觉与两种协议状态;Task 5 覆盖 A-02/A-03 的跳转契约且被 D2 设计完成门槛锁住。 - **占位检查:** 没有未落实的实现步骤。Task 2 的来源 URL 是执行时取得的审计事实;没有可验证来源即停止该任务,不得提交资产。 - **命名一致性:** 页面状态固定为 `consented`,守卫固定为 `enterLogin`,跨页唯一映射固定为 `entryRoutes`;Task 1 与 Task 5 的测试和实现使用同一命名。 # 已失效历史记录(2026-07-13) > 本计划在未完成设计归档与验收前被错误建立,现禁止执行。唯一有效的 A-01 归档为 `docs/design/A01_启动登录引导_设计记录.md`;当前工作仍以 `docs/交接记录.md` 的 G-01 验收为准。