Skip to content

字典数据 ​

这篇解决什么 ​

下拉和表格状态色从哪来、新类型要改哪三处。读完用 DICT_TYPE + getDictOptions,不要在页面里写死 0 启用 / 1 停用。

登录守卫会拉一次 /system/dict-data/simple-list 填进 useDictStore。请求封装见 请求封装。

示意图:先缓存,再按类型取值。改库后要刷新页面。

从哪改 ​

名称说明仓库路径
类型 / 数据 API/system/dict-type、/system/dict-dataruoyi-office/yudao-module-system/.../DictDataController.java
表类型与数据都忽略租户@TableName("system_dict_type")、system_dict_data
常量字符串 type,不要手写散串ruoyi-office-vben/packages/constants/src/dict-enum.ts
读取getDictOptions / getDictLabelpackages/effects/hooks/src/use-dict.ts
标签列表、表单apps/web-antd/src/components/dict-tag/
管理页字典维护apps/web-antd/src/views/system/dict/

getDictOptions(DICT_TYPE.COMMON_STATUS, 'number') 的第二参决定 value 类型。后端常返回数字状态,不转 number 时选中对不上。

表格用 cellRender: { name: 'CellDict', props: { type: DICT_TYPE.xxx } }。实现读的是 props.type,不是注释里的 dictType。

新字典:增量 SQL 进 system_dict_type / system_dict_data,再在 DICT_TYPE 加一项,页面才引用。只改前端常量、库里没有 type,下拉是空的。

DictTypeDO / DictDataDO 带 @TenantIgnore。字典是全库一份,不要按租户各写一套启用停用。

字段 ​

名称说明仓库路径
dictType类型字符串,如 iot_device_statesystem_dict_data
value / label存库值与展示DictDataDO
colorType / cssClass标签颜色DictTag

缓存只在进系统时拉一次

守卫里 setDictCacheByApi(getSimpleDictDataList)。管理页改了字典,已打开的浏览器仍用旧缓存,刷新或重新登录。

数字状态显式传 number

COMMON_STATUS、多数业务状态用 'number'。字符串类型(部分组织类型)才用默认 'string'。

java
@RequestMapping("/system/dict-data")
public class DictDataController { }

@TableName("system_dict_data")
public class DictDataDO extends BaseDO { }

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版