vue数据字典取键值项目的字典问题


Posted in Vue.js onApril 12, 2022

vue数据字典取键值

首先:项目里的数据字典路由已经配好

vue数据字典取键值项目的字典问题

vue数据字典取键值项目的字典问题

进入项目页面

vue数据字典取键值项目的字典问题

引入数据字典

import { getTypeValue } from '@/api/dict/dictValue/index';

vue数据字典取键值项目的字典问题

创建前获取到字典

getTypeValue('org_attr_type').then(response => {
  this.attrTypeOptions = response.data.rows;
});

vue数据字典取键值项目的字典问题

设置el下拉框

vue数据字典取键值项目的字典问题

注意上面的写法是错误的,注意:key,:label, :value值

vue数据字典取键值项目的字典问题

搜索列表也显示

vue数据字典取键值项目的字典问题

vue项目的字典问题

我们在项目中经常会遇到一个字典问题,就是一个从后台获取的一个固定的数组,然后在系统中的很多地方都会通过select选择框用到。如果每次用的时候获取,就会经常出现两个问题:

1.这个数组数据量过大的时候,有可能点击select下拉框,数据还没有返回来,导致select无法选择;

2.每次都重新请求后台,当数据量过大,且同一页面其他接口也比较多时,导致页面加载缓慢。

那怎么解决呢?如下:

在utils中写一个dict.js的文件

内容如下:

//系统中封装好的axios
import { httpPost } from '@/utils/axios'
export function getDict(obj) {
    //这个dictList中的键名都是字典名称,即传入对应名称可获取对应list
    const dictList = {
        graduateSchool: [],
        major: [],
        topDegree: [],
        sex: [],
        title: [],
        workUnit: [],
        place: [],
        expertType: [],
    }
    for (let k in dictList) {
        httpPost('/sysdict/findByDictType', { dictType: `${k}` })
            .then((res) => {
                obj[k] = res.data
            })
    }
}

在main.js中引用刚才封装好的getDict方法

并对字典进行全局声明:

import { getDict } from "@/utils/dict.js"
Vue.prototype.$dictObject = {}
getDict(Vue.prototype.$dictObject)

之后我们就可以在系统中使用

“$dictObject.字典名” 来代替对应的list了:

 <el-form-item label="专业" prop="majorId">
               <el-select v-model="dataForm.majorId" placeholder="请选择专业">
                  <el-option
                    v-for="item in $dictObject.major"
                    :key="item.id"
                    :label="item.dictName"
                    :value="item.id">
                  </el-option>
                </el-select>
            </el-form-item>
Vue.js 相关文章推荐
浅析VUE防抖与节流
Nov 24 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
Vue中引入svg图标的两种方式
Jan 14 Vue.js
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
Vue+TypeScript中处理computed方式
Apr 02 Vue.js
vue动态绑定style样式
Apr 20 Vue.js
Vue2项目中对百度地图的封装使用详解
Jun 16 Vue.js
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
vue选项卡切换的实现案例
分享一个vue实现的记事本功能案例
vue代码分块和懒加载非必要资源文件
Apr 11 #Vue.js
vue打包时去掉所有的console.log
三种方式清除vue路由跳转router-link的历史记录
Apr 10 #Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 #Vue.js
You might like
聊天室php&amp;mysql(四)
2006/10/09 PHP
PHP 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
Redis构建分布式锁
2017/03/28 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
Python实例之wxpython中Frame使用方法
2014/06/09 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
Python可以用来做什么
2020/11/23 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
学校教研活动总结
2014/07/02 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
春节随笔
2015/08/15 职场文书
医院病假条怎么写
2015/08/17 职场文书