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

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
- 未知控件提示可能无法映射到专用控件,使用文本输入作为安全兜底,并仍由后端校验。
- 脱敏敏感值无法判断是否为完整原值,因此禁止把未修改的脱敏值再次提交。