2.3 KiB
2.3 KiB
Dictionary Rendering Specification
Purpose
定义前端字典驱动渲染机制:登录后缓存全部启用字典,组件按字典 code 声明下拉/标签,页面不再硬编码枚举中文映射,且字典管理页对内置项施加保护交互。
Requirements
Requirement: 字典缓存
前端 SHALL 在登录后一次性拉取全部启用字典(GET /dicts)并缓存于全局字典 store,登录失效时清空。
Scenario: 登录后缓存
- WHEN 用户登录进入后台
- THEN 前端拉取并缓存全部启用字典
Scenario: 登出清空
- WHEN 用户登出
- THEN 字典缓存被清空
Requirement: useDict Hook
前端 SHALL 提供 useDict(dictCode) Hook,返回该字典类型的响应式字典项数组(label/value/color_type/sort)。
Scenario: 读取字典项
- WHEN 组件调用 useDict('common_status')
- THEN 返回 启用(enabled)/停用(disabled) 等字典项
Requirement: 组件字典 code 声明
JSON Schema 字段 SHALL 支持 dictCode 声明:ty-form / ty-search-form 的 select/enum 字段用 dictCode 自动解析下拉选项(label/value);ty-table 列用 dictCode 自动渲染标签(按 color_type 着色)。
Scenario: 下拉按字典渲染
- WHEN 搜索/表单字段声明 dictCode='resource_type'
- THEN 下拉选项按字典项渲染为 菜单/按钮/接口
Scenario: 表格标签按字典渲染
- WHEN 表格列声明 dictCode='common_status'
- THEN 单元格按字典项渲染启用/停用标签并按 color_type 着色
Requirement: 字典管理保护交互
字典管理页 SHALL 对内置类型/项展示「内置」标记,并禁用内置项的 value 编辑与删除(仅 label/排序/颜色可编辑)。
Scenario: 内置项 value 只读
- WHEN 管理员在字典管理页编辑内置字典项
- THEN value 输入框禁用,label/排序/颜色可编辑,且不提供删除入口
Requirement: 字典化渲染生效
各页面枚举字段 SHALL 按字典渲染:修改某字典项的 label 或 color_type 后,引用该字典的页面 SHALL 刷新后按新 label/颜色展示。
Scenario: 改 label 全局生效
- WHEN 管理员把 common_status 中 enabled 的 label 由「启用」改为「可用」
- THEN 所有引用 common_status 的页面(租户/角色/资源/组织等)刷新后展示「可用」