Files
ctms/docs/plans/2026-05-13-register-protocol-implementation.md
T
2026-06-23 09:21:57 +08:00

1.9 KiB

Register Protocol Supplement Implementation Plan

For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.

Goal: 让注册页的“服务条款”和“隐私政策”链接打开可阅读的协议内容。

Architecture: 把登录页已有 CTMS 协议文案抽到前端共享模块,登录页与注册页共同引用。注册页只增加弹窗状态与打开/关闭逻辑,不新增后端接口、路由或持久化配置。

Tech Stack: Vue 3 SFC、Element Plus、Vitest。


Task 1: 共享协议文案

Files:

  • Create: frontend/src/content/authProtocol.ts
  • Modify: frontend/src/views/Login.vue
  • Test: frontend/src/views/Login.test.ts

Step 1: Write failing test

验证登录页引用共享模块,不再内联维护 protocolSections

Step 2: Run test to verify it fails

Run: npm run test:unit -- src/views/Login.test.ts

Step 3: Write minimal implementation

创建共享协议模块并让登录页导入。

Step 4: Run test to verify it passes

Run: npm run test:unit -- src/views/Login.test.ts

Task 2: 注册页协议弹窗

Files:

  • Modify: frontend/src/views/Register.vue

Step 1: Write failing test

验证注册页两个协议按钮有 @click 行为、弹窗根据当前类型展示服务条款或隐私政策、确认按钮关闭弹窗。

Step 2: Run test to verify it fails

Run: npm run test:unit

Step 3: Write minimal implementation

添加 protocolDialogVisibleactiveProtocolTypeactiveProtocolTitleactiveProtocolSectionsopenProtocolDialogcloseProtocolDialog,模板新增 el-dialog

Step 4: Run test to verify it passes

Run: npm run test:unit

Task 3: Final verification

Run:

  • npm run test:unit -- src/views/Login.test.ts
  • npm run type-check

不执行 git commit,遵循用户指令。