Appearance
配置系统字典
系统字典的配置和使用
如何增加系统字典
创建表结构时 (表结构在
codegen/tables/[模块]/[模块].sql
文件中)sql`is_locked` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '锁定,dict:is_locked',
- 其中
,dict:is_locked
中的dict:
代表这个字段需要启用系统字典
- 如果是
dictbiz:
则代表的是业务字典
dict:
后面的is_locked
则代表的是系统字典
的编码
- 其中
在文件
codegen/tables/[模块]/base_dict.[模块].sql.csv
中, 如果是业务字典则:base_dictbiz.[模块].sql.csv
, 没有这个csv文件则手动创建, 具体参考codegen/tables/base_dict.sql.csv
文件- 其中:
id
可以在命令行中执行npm run uuid
来生成, 生成的同时会拷贝到剪切板, 生成多个npm run uuid -- 3
code
为系统字典
的编码, 与表结构中的dict:
后面的编码一致lbl
为系统字典
的名称
- 其中:
在文件
codegen/tables/[模块]/base_dict_detail.[模块].sql.csv
中配置 系统字典明细 , 具体参考文件codegen/tables/base/base_dict_dict.sql.csv
, 注意跟base_dict.sql.csv
的id
外键关联关系在控制台中执行命令导入系统字典, 相当于手动在页面中增加记录 (只会插入尚未存在的记录)
bashnpm run importCsv -- [模块名]/*
如果已经全局安装了
npm i -g @antfu/ni
模块, 则bashnr importCsv [模块名]/*
注意, 业务字典和系统字典里面有一个特殊的字段
is_sys
, 代表当前记录是否是系统记录
sql`is_sys` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '系统记录,dict:is_sys',
- 如果是
is_sys
为1
代表是系统记录
, 此时在生成代码时会自动同时生成枚举类型的数据类型给前端和后端的service
层使用, 同时不允许用户修改和删除, 此举可有效防止用户误操作
- 如果是
打开
.sql.csv
文件后, 点击vscode
右上角, 可以表格的方式编辑csv
文件
系统内置的系统字典
is_deleted
记录是否已经被逻辑删除is_locked
记录是否已经被锁定, 已经被锁定的记录不允许用户改动(修改和删除), 解锁之后才可以改动is_enabled
记录是否启用, 由业务逻辑判断禁用的用户如何处理, 比如: 禁用的菜单不会出现在相关配置的额下拉框中is_default
当前记录是否默认, 默认记录只会有一条, 由业务逻辑判断如何使用默认记录dict_type
系统字典的数据类型- 字符串 string
- 数值 number
- 日期 date
- 日期时间 datetime
- 时间 time
- 布尔 boolean
yes_no
是否