外观
字典管理
使用说明
主界面
- 字典名称:字典类型的中文名称
- 字典类型:字典类型的英文名称,与前端
src\utils\dict.ts
中的定义相对应
- 数据:点击字典类型后面的“数据”,跳转到相应的字典数据
- 字典标签:前端显示的内容
- 字典键值:后端数据库存储的值
新增
新增字典步骤:
- 新增字典类型:点击新增,填写字典名称和字典类型,状态选择开启。
- 新增字典数据:点击上面新增的字典类型的数据按钮,进入字典数据管理界面,逐个新增字典数据
- 打开前端文件
src\utils\dict.ts
,在DICT_TYPE
中添加字典类型
后端实现
目录
代码目录:
mysite\myapp_system\dict_type
对应字典类型的增删改查mysite\myapp_system\dict_data
对应字典数据的增删改查
实现步骤
后端实现字典数据步骤:
- 设计字典类型和字典数据,定义为一个Python的枚举类型,放到后端文件
mysite\mars_framework\db\enums.py
中。例如
python
class SexEnum(Enum):
"""性别的枚举值"""
MALE = 1 # 男
FEMALE = 2 # 女
UNKNOWN = 0 # 未知
- 定义模型字段时,使用
SmallIntegerField
字段类型,并添加choices
参数。例如
python
sex = models.SmallIntegerField(
blank=True,
null=True,
default=0,
choices=[(item.value, item.name) for item in SexEnum],
db_comment="用户性别",
help_text="用户性别",
)
- 在视图等地方,也可以引用这些定义好的Python的枚举类型。例如
前端实现
目录
代码目录:src\views\system\dict
sh
dict
|-- DictTypeForm.vue # 字典类型新增/编辑界面
|-- data
| |`-- DictDataForm.vue # 字典数据新增/编辑界面
| `-- index.vue # 字典数据主界面
`-- index.vue # 字典类型主界面
实现步骤
前端实现字典数据步骤:
- 打开前端
src\utils\dict.ts
文件,向DICT_TYPE
添加一个记录。例如
- 在前端组件中,引用字典类型并进行转换。例如
src\views\system\loginlog\index.vue
前端缓存策略
用户登录成功后,前端会从后端获取到全量的字典数据,默认缓存在sessionStorage
中。
TIP
当字典类型或字典数据发生变更后,用户需求刷新浏览器才能看到效果。