Files
luo ca338dd345
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 6m20s
fix: 测试环境显示develop分支
2026-07-20 11:02:05 +08:00

61 lines
3.1 KiB
Markdown

## ADDED Requirements
### Requirement: Agent Cash Available Low Balance Warning
The agent fund overview SHALL display cash balance data and a fixed-threshold low balance warning using the backend-provided `low_balance_warning` flag from `GET /api/admin/shops/fund-summary`. The frontend MUST NOT calculate the threshold itself and MUST NOT expose any threshold configuration input.
#### Scenario: Display normal balance state above threshold
- **GIVEN** 用户进入代理资金概况页面
- **WHEN** `GET /api/admin/shops/fund-summary` 返回 `balance``frozen_balance``cash_available`
- **AND** `low_balance_warning=false`
- **THEN** 页面 MUST 展示现金余额和冻结金额
- **AND** 所有金额 MUST 按分转元展示
- **AND** 页面 MUST NOT 展示“现金余额不足100元”红色状态
#### Scenario: Display warning state at or below threshold
- **GIVEN** 用户进入代理资金概况页面
- **WHEN** `GET /api/admin/shops/fund-summary` 返回 `low_balance_warning=true`
- **THEN** 页面 MUST 展示“现金余额不足100元”红色状态
- **AND** 该提示 MUST NOT 将信用额度计入文案
#### Scenario: Frontend does not expose threshold configuration
- **WHEN** 用户查看代理资金概况页面
- **THEN** 页面 MUST NOT 展示余额预警阈值输入框或配置控件
- **AND** 前端 MUST NOT 依据 `cash_available` 自行计算是否低于 `100`
### Requirement: Agent Fund Summary Low Balance Response Fields
The frontend SHALL read the low-balance display state exclusively from the `GET /api/admin/shops/fund-summary` response fields `balance:int64`, `frozen_balance:int64`, `cash_available:int64`, and `low_balance_warning:bool`.
#### Scenario: Read low balance response contract
- **WHEN** 前端请求 `GET /api/admin/shops/fund-summary`
- **THEN** 前端 MUST 读取 `balance``frozen_balance``cash_available``low_balance_warning`
- **AND** `low_balance_warning` MUST be the only source of truth for whether the warning is shown
### Requirement: Low Balance Notification Target Navigation
The system SHALL allow users to navigate from low-balance notifications in the top notification drawer to the corresponding shop's fund overview page by reusing the notification list and notification target resolution APIs. Unauthorized targets SHALL follow the shared error-page behavior.
#### Scenario: Navigate from low balance notification to shop fund overview
- **GIVEN** 用户在顶部通知抽屉中看到低余额通知
- **WHEN** 用户点击该通知
- **THEN** 前端 MUST 复用 `GET /api/admin/notifications/{id}/target` 解析跳转目标
- **AND** 系统 MUST 导航到对应店铺的资金页
#### Scenario: Handle unauthorized notification target
- **GIVEN** 用户点击低余额通知
- **WHEN** 通知目标页无权限访问或目标不可访问
- **THEN** 系统 MUST 按统一错误页处理
#### Scenario: Public notification center is out of scope
- **WHEN** 本次变更落地
- **THEN** 公共站内通知中心页面 MUST NOT be required for this change to be considered complete
- **AND** 顶部通知抽屉跳转能力仍 MUST be supported