1. ruoyi-vue数据字典基础入门
在ruoyi-vue框架中,数据字典是一个非常重要的功能模块。它主要用于管理系统中的各种枚举值和状态码,让前端展示更加规范和统一。简单来说,数据字典就是把后端返回的数字代码转换成用户看得懂的文本标签。
举个例子,假设系统中有个"用户状态"字段,后端存储的是0和1这样的数字,0表示"禁用",1表示"启用"。如果没有数据字典,前端直接显示0和1,用户根本看不懂是什么意思。有了数据字典,我们就可以把这些数字自动转换成"禁用"和"启用"这样的友好文本。
ruoyi-vue内置了dict-tag组件专门用来处理这种转换。它的工作原理是:首先在后端配置好字典类型和对应的键值对,比如sys_user_status这个字典类型下,0对应"禁用",1对应"启用"。然后前端通过dict-tag组件,传入字典类型和实际值,组件就会自动查找并显示对应的标签文本。
数据字典的优势主要体现在三个方面:
- 前后端解耦:后端只需要返回代码值,展示逻辑完全由前端控制
- 维护方便:字典内容变更只需要修改配置,不需要改代码
- 统一规范:全系统使用相同的字典定义,避免不同页面显示不一致
在实际项目中,数据字典最常见的应用场景有两个:列表展示和表单编辑。下面我们就分别深入探讨这两个场景的具体实现方法。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 列表中的数据字典展示实战
2.1 基础列表展示
在ruoyi-vue的列表页面中,我们通常使用el-table来展示数据。当某些列需要显示字典标签而非原始值时,就需要用到dict-tag组件。先来看一个最基本的例子:
html复制<el-table :data="userList">
<el-table-column prop="userName" label="用户名"></el-table-column>
<el-table-column prop="status" label="状态">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_status" :value="scope.row.status"/>
</template>
</el-table-column>
</el-table>
这段代码做了以下几件事:
- 绑定userList数据到el-table
- 用户名列直接显示userName字段
- 状态列使用dict-tag组件,传入字典类型sys_user_status和当前行的status值
2.2 处理多值字典字段
有时候一个字段可能包含多个字典值,比如文章可能有多个标签。这种情况下,我们需要遍历值数组并显示多个dict-tag:
html复制<el-table-column prop="tags" label="标签">
<template slot-scope="scope">
<dict-tag
v-for="tag in scope.row.tags"
:key="tag"
:options="dict.type.article_tags"
:value="tag"
style="margin-right: 5px;"
/>
</template
