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 +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 Vue.js
用vue设计一个日历表
Dec 03 Vue.js
Vue实现随机验证码功能
Dec 29 Vue.js
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
vue常用高阶函数及综合实例
Feb 25 Vue.js
关于vue中如何监听数组变化
Apr 28 Vue.js
Vue实现下拉加载更多
May 09 Vue.js
详解Vue的sync修饰符
May 15 Vue.js
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue 自定义的组件绑定点击事件
Apr 21 Vue.js
vue elementUI批量上传文件
Apr 26 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
node跨域请求方法小结
2017/08/25 Javascript
switchery按钮的使用方法
2017/12/18 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
Python如何使用turtle库绘制图形
2020/02/26 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
美国社交购物市场:MassGenie
2019/02/18 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
中学家长会邀请函
2014/01/17 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
湘江北去观后感
2015/06/15 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
使用Springboot实现健身房管理系统
2021/07/01 Java/Android