Files
luo 08889d2e42
Some checks failed
构建并部署前端到测试环境 / build-and-deploy (push) Failing after 28m40s
fix: some
2026-09-18 18:11:53 +08:00

65 lines
4.0 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 以从右侧滑出的抽屉形式呈现,并 MUST 保留表单校验、关闭时重置与底部提交/取消操作。收款方式 MUST 改为远程搜索下拉:请求 MUST 携带 `keyword``page_size``20``enabled``true`,仅展示启用项;输入关键字 MUST 经防抖后发起请求,并发时 MUST 丢弃过期响应。编辑已提交申请时MUST 能回显并保留当前已选收款方式,即使其不在当前搜索结果内。
#### Scenario: 打开弹窗
- **GIVEN** 用户点击创建或修改核销申请
- **WHEN** 弹窗打开
- **THEN** 弹窗 MUST 从右侧滑出
- **AND** MUST 保留表单字段、校验与底部操作
#### Scenario: 收款方式远程搜索
- **GIVEN** 用户打开收款方式下拉
- **WHEN** 输入关键字
- **THEN** 前端 MUST 以防抖方式调用收款方式接口,携带 `keyword``page_size=20``enabled=true`
- **AND** 仅展示接口返回的启用项
- **AND** 过期请求的响应 MUST NOT 覆盖最新结果
#### Scenario: 编辑场景回显已选收款方式
- **GIVEN** 正在修改的申请已选择某收款方式且其不在首屏搜索结果中
- **WHEN** 弹窗初始化
- **THEN** 下拉 MUST 回显该收款方式名称
- **AND** MUST NOT 因搜索而清空已选值
### Requirement: 核销账单候选筛选与分页
核销申请弹窗的核销账单候选列表 MUST 默认以 `page_size``20` 加载MUST NOT 固定请求 100 条。候选列表 MUST 支持按来源(`source_type`)、来源单号(`source_no`)、核销状态(`status`)、店铺(`customer_id`)与创建时间(`created_from` / `created_to`)筛选,店铺筛选 MUST 使用远程搜索。筛选条件变化 MUST 回到第 1 页重新加载。翻页 MUST NOT 清空已选账单与已填核销金额;当前页之外已选账单 MUST 仍计入核销合计并随申请提交。
#### Scenario: 默认分页加载
- **GIVEN** 用户打开核销申请弹窗
- **WHEN** 账单候选列表加载
- **THEN** 请求 MUST 使用 `page_size=20`
- **AND** MUST 提供分页或加载更多入口以访问后续数据
#### Scenario: 按条件筛选账单
- **GIVEN** 用户已打开核销申请弹窗
- **WHEN** 其填写来源、来源单号、核销状态、店铺或起止时间中的任意条件
- **THEN** 前端 MUST 以对应查询参数从第 1 页重新加载候选账单
- **AND** 店铺 MUST 通过远程搜索选择
#### Scenario: 翻页保持已选
- **GIVEN** 用户已在当前页勾选账单并填写核销金额
- **WHEN** 其翻页后返回或直接提交
- **THEN** 已勾选账单与核销金额 MUST 保持不变
- **AND** 核销合计 MUST 包含所有页已选账单
### Requirement: 代办原因按所选账单责任员工判定
核销申请的 `acting_reason` MUST 仅在「当前登录账号为超级管理员(`user_type``1`)且存在非本人负责的所选账单」时展示并必填。责任员工 MUST 取自账单 `debtor_snapshot.account_id`,缺失时回退 `debtor_account_id`。当所选账单全部归属于当前登录账号时,前端 MUST NOT 展示且 MUST NOT 提交 `acting_reason`;当尚未选择任何账单或无法取得责任员工信息时,超级管理员 MUST 视为代办并要求填写。
#### Scenario: 超管为他人代办需填原因
- **GIVEN** 当前登录账号为超级管理员
- **WHEN** 其选择责任员工 `account_id` 不等于当前账号 `id` 的账单
- **THEN** 代办原因字段 MUST 展示且必填
- **AND** 未填写即提交 MUST 被阻止
#### Scenario: 超管本人办理无需原因
- **GIVEN** 当前登录账号为超级管理员且所选账单全部由其本人负责
- **WHEN** 其提交核销申请
- **THEN** 代办原因字段 MUST NOT 展示
- **AND** 提交载荷 MUST NOT 包含 `acting_reason`
#### Scenario: 非超管不判定代办
- **GIVEN** 当前登录账号不是超级管理员
- **WHEN** 其创建或重新提交核销申请
- **THEN** 代办原因字段 MUST NOT 展示