← 返回首页
字典系统与运行时选项
# anenreo 字典系统
## 目标
字典系统把状态、类型、来源、情绪、附件种类、时间精度等可枚举选项从页面源码中移出,形成由 PostgreSQL 持久化、PC 配置中心维护、Web 与移动端运行时共同读取的统一选项来源。
## 数据边界
- `dictionary_definition`:保存字典编码、中文名称、系统保护标记、发布状态和修订号。
- `dictionary_item`:保存字典项编码、中文标签、排序、启停、图标、颜色和扩展元数据。
- 系统字典不可删除;用户字典允许增删改,但仍受 ownerId、乐观锁和审计约束。
- 隐私等级等安全枚举在运行时仍由代码实施硬性约束,字典只能提供展示和选择,不能放宽安全规则。
## 运行链路
```text
字段定义.dictionaryCode
↓
DictionaryService
↓
Web DynamicDictionarySelect / MobileDictionaryPicker
↓
保存字典项 code,而不是保存页面中文文案
```
字典项修改后,动态表单重新请求即可读取新选项;不需要重新编译前端。
## PC 配置中心
`/settings/dictionaries` 支持:
- 新建用户字典;
- 修改名称和说明;
- 新增、修改、排序、启停字典项;
- 查看系统字典保护状态;
- 在字段设计器中选择字典。
## 安全与测试
- API 始终按当前用户隔离;系统字典可读但不能被普通删除。
- 字典编码和项目编码在所有者范围内唯一。
- 修改携带 revision,防止多个页面静默覆盖。
- 自动测试必须覆盖系统字典保护、用户字典 CRUD、排序、停用以及动态表单实时消费。