Files
2026-09-17 12:16:20 +08:00

62 lines
3.1 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.
## ADDED Requirements
### Requirement: 独立代理注册页免登录访问
代理扫码分销注册页 MUST 独立于登录态提供未登录可访问且挂在后台项目内H5 与 PC 共用同一套表单);注册流程 MUST NOT 复用当前登录态。
#### Scenario: 未登录访问注册页
- **GIVEN** 用户未登录并通过扫码或直接访问注册入口
- **WHEN** 其打开注册页面
- **THEN** 页面 MUST 正常渲染注册表单
- **AND** MUST NOT 跳转到登录页
#### Scenario: 已登录用户访问注册页
- **GIVEN** 用户已登录后台
- **WHEN** 其打开注册页面
- **THEN** 注册流程 MUST 不携带登录态
### Requirement: 发送短信验证码
注册页 MUST 调用 `POST /api/c/v1/auth/send-code` 发送验证码,请求体 `{ phone, scene }``scene``bind_phone`),响应 `data.cooldown_seconds` MUST 用于 60 秒倒计时;请求 MUST 不携带 Token。
#### Scenario: 发送验证码并倒计时
- **GIVEN** 用户输入手机号
- **WHEN** 其点击获取验证码
- **THEN** 系统 MUST 调用发送验证码接口
- **AND** 按钮 MUST 进入 60 秒倒计时且不可重复点击
#### Scenario: 注册失败后不复用验证码
- **GIVEN** 一次注册提交失败
- **WHEN** 用户再次尝试注册
- **THEN** 页面 MUST 提示重新获取验证码
- **AND** MUST NOT 复用已消费的验证码
### Requirement: 代理扫码注册提交
注册页 MUST 调用 `POST /api/c/v1/agent-distribution-registrations` 提交注册,必填 `distribution_code`(扫码自动带)、`phone``code``password``shop_name``shop_code``username`,选填 `contact_name``province``city``district``address`;成功响应为「待审批」,前端 MUST 展示待审批结束页且不自动登录。
#### Scenario: 注册成功进入待审批
- **GIVEN** 用户填写完整表单并通过校验
- **WHEN** 其提交注册
- **THEN** 系统 MUST 调用注册接口
- **AND** 成功时 MUST 展示「待审批,审核结果将通知你」结束页
- **AND** MUST NOT 发放账号凭证或自动登录
#### Scenario: 注册失败统一提示
- **GIVEN** 注册提交失败(无效分销码、上级停用、验证码无效或已消费等)
- **WHEN** 注册接口返回失败
- **THEN** 页面 MUST 统一提示「分销码不可用」
- **AND** MUST NOT 根据错误文案区分原因
### Requirement: 表单适配与敏感项处理
注册表单 MUST 同时适配手机 H5 与 PCH5 单列、大触控区、软键盘友好、地址使用级联选择器PC 使用居中卡片或两列布局且字段一致。密码输入 MUST 掩码并展示强度提示;页面 MUST NOT 展示除手机号外的完整个人敏感信息。
#### Scenario: H5 与 PC 同一表单
- **GIVEN** 用户分别在手机与 PC 打开注册页
- **WHEN** 其填写注册信息
- **THEN** 两端的字段集合 MUST 一致
- **AND** 布局 MUST 按端侧自适应
#### Scenario: 密码强度与掩码
- **GIVEN** 用户在密码输入框输入
- **WHEN** 其提交表单
- **THEN** 输入 MUST 为掩码展示
- **AND** MUST 展示密码强度提示