Files
luo dd6bceeeb7
Some checks failed
构建并部署前端到测试环境 / build-and-deploy (push) Has been cancelled
feat: 系统配置
2026-07-25 14:13:49 +08:00

57 lines
2.2 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: 受控系统配置列表
系统 SHALL 在设置管理提供受控系统配置列表,支持按 `module` 筛选和分页,并展示后端返回的配置元数据及当前值。
#### Scenario: 查询系统配置
- **WHEN** 用户进入系统配置页面或执行刷新
- **THEN** 前端调用 `GET /api/admin/system-configs`
- **AND** 使用响应中的 `data.list``data.page``data.page_size``data.total` 渲染列表
- **AND** 展示配置 Key、模块、说明、值、控件提示、注册状态、只读状态、敏感状态和更新时间
#### Scenario: 按模块筛选
- **WHEN** 用户选择 `carrier_callback``c2b.payment`
- **THEN** 查询请求携带对应的 `module` 参数
- **AND** 页面从第一页展示筛选后的配置
### Requirement: 动态配置编辑
系统 SHALL 根据配置返回的 `control``value_type``enum_values``min``max` 元数据渲染编辑控件并进行前端基础校验;更新请求 SHALL 统一提交字符串形式的 `value`
#### Scenario: 更新可编辑配置
- **WHEN** 用户修改非只读配置并提交
- **THEN** 前端调用 `PUT /api/admin/system-configs/{key}`
- **AND** 请求体为 `{ "key": "配置Key", "value": "字符串化配置值" }`
- **AND** 成功后使用接口返回的配置数据更新列表
#### Scenario: bool 和 int 配置
- **WHEN** 配置类型分别为 `bool``int`
- **THEN** 页面分别使用开关或数字输入控件
- **AND** bool 提交 `true`/`false` 字符串int 提交十进制数字字符串
- **AND** int 值违反 `min``max` 时阻止提交
#### Scenario: 枚举配置
- **WHEN** 配置返回非空 `enum_values`
- **THEN** 页面使用枚举选择控件
- **AND** 只能提交允许的枚举值
### Requirement: 只读和敏感配置保护
系统 SHALL 禁止前端编辑只读配置;敏感配置 SHALL 展示接口返回的脱敏值,用户未主动输入新值时不得将该脱敏值再次提交。
#### Scenario: 只读配置
- **WHEN** 配置的 `readonly``true`
- **THEN** 页面禁用编辑控件和保存操作
#### Scenario: 敏感配置未修改
- **WHEN** 敏感配置仅展示脱敏值且用户未输入新值
- **THEN** 页面不提交该配置的更新请求