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基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
vue 递归组件的简单使用示例
Jan 14 Vue.js
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
详细聊聊vue中组件的props属性
Nov 02 Vue.js
vue elementUI表格控制对应列
Apr 13 Vue.js
vue使用localStorage持久性存储实现评论列表
Apr 14 Vue.js
解决vue-router的beforeRouteUpdate不能触发
Apr 14 Vue.js
VUE递归树形实现多级列表
Jul 15 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
php 进度条实现代码
2009/03/10 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
jquery按回车提交数据的代码示例
2013/11/05 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
阿里云ecs服务器中安装部署node.js的步骤
2016/10/08 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
JS实现购物车特效
2017/02/02 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
python多任务及返回值的处理方法
2019/01/22 Python
python3实现点餐系统
2019/01/24 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
python如何求圆的面积
2020/07/01 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
python Cartopy的基础使用详解
2020/11/01 Python
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
企业金融服务方案
2014/06/03 职场文书
2015年实习单位评语
2015/03/25 职场文书
2015年质检工作总结
2015/05/04 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
python 中的@运算符使用
2021/05/26 Python