27 lines
1.4 KiB
Markdown
27 lines
1.4 KiB
Markdown
## Context
|
|
|
|
系统配置由后端注册,前端不能假设固定字段。列表接口返回控件提示、值类型、枚举和范围,更新接口要求配置 Key 与路径一致且值字符串化。
|
|
|
|
## Goals / Non-Goals
|
|
|
|
- Goals:
|
|
- 在设置管理提供统一的模块筛选、分页和配置编辑入口。
|
|
- 动态遵循后端配置元数据进行展示和校验。
|
|
- 防止误修改只读配置和敏感配置脱敏值。
|
|
- Non-Goals:
|
|
- 不在前端维护配置 Key 白名单或复制后端注册规则。
|
|
- 不对 JSON 配置做业务语义解析。
|
|
- 不绕过后端对已注册配置、范围和枚举的最终校验。
|
|
|
|
## Decisions
|
|
|
|
- 列表数据读取 `data.list`,分页使用 `page`、`page_size` 和 `total`。
|
|
- 编辑控件优先根据 `control` 渲染,`value_type` 作为值转换和校验兜底。
|
|
- `bool` 以开关展示并提交 `true`/`false` 字符串;`int` 以数字输入展示并提交十进制字符串;其他类型以输入框或文本域提交字符串。
|
|
- `readonly=true` 的配置不显示可编辑操作;`sensitive=true` 的值仅显示接口返回值,只有用户主动输入新值时才提交更新。
|
|
|
|
## Risks / Trade-offs
|
|
|
|
- 未知控件提示可能无法映射到专用控件,使用文本输入作为安全兜底,并仍由后端校验。
|
|
- 脱敏敏感值无法判断是否为完整原值,因此禁止把未修改的脱敏值再次提交。
|