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的hash值原理也是table切换实例代码
Dec 14 Vue.js
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
全面解析Vue中的$nextTick
Dec 24 Vue.js
Vue实现省市区三级联动
Dec 27 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
vue组件的路由高亮问题解决方法
May 11 Vue.js
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
vue.js 使用原生js实现轮播图
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
如何在PHP程序中防止盗链
2008/04/09 PHP
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python在线运行代码助手
2016/07/15 Python
分享几道你可能遇到的python面试题
2017/07/24 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
使用python模拟高斯分布例子
2019/12/09 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
求职简历自荐信
2013/10/20 职场文书
医学检验专业大学生求职信
2013/11/18 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
Python闭包的定义和使用方法
2022/04/11 Python