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 elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
用vue设计一个日历表
Dec 03 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
vue+element UI实现树形表格
Dec 29 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
vue3.0中使用element的完整步骤
Mar 04 Vue.js
vue实力踩坑之push当前页无效
Apr 10 Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
vue ant design 封装弹窗表单的使用
Jun 01 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
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python常用模块介绍
2014/11/21 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
pycharm新建一个python工程步骤
2019/07/16 Python
使用python实现学生信息管理系统
2021/02/25 Python
python 对xml解析的示例
2021/02/27 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
个人求职简历中英文自我评价
2013/12/16 职场文书
个人求职信范例
2014/01/29 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js
OpenFeign实现远程调用
2022/08/14 Java/Android