62 lines
3.1 KiB
Markdown
62 lines
3.1 KiB
Markdown
## 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 与 PC:H5 单列、大触控区、软键盘友好、地址使用级联选择器;PC 使用居中卡片或两列布局且字段一致。密码输入 MUST 掩码并展示强度提示;页面 MUST NOT 展示除手机号外的完整个人敏感信息。
|
||
|
||
#### Scenario: H5 与 PC 同一表单
|
||
- **GIVEN** 用户分别在手机与 PC 打开注册页
|
||
- **WHEN** 其填写注册信息
|
||
- **THEN** 两端的字段集合 MUST 一致
|
||
- **AND** 布局 MUST 按端侧自适应
|
||
|
||
#### Scenario: 密码强度与掩码
|
||
- **GIVEN** 用户在密码输入框输入
|
||
- **WHEN** 其提交表单
|
||
- **THEN** 输入 MUST 为掩码展示
|
||
- **AND** MUST 展示密码强度提示
|