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 相关文章推荐
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
Vue组件生命周期运行原理解析
Nov 25 Vue.js
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
vue3.0实现插件封装
Dec 14 Vue.js
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
vue中watch的用法汇总
Dec 28 Vue.js
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
关于vue中如何监听数组变化
Apr 28 Vue.js
vue中使用mockjs配置和使用方式
Apr 06 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缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
php 带逗号千位符数字的处理方法
2012/01/10 PHP
探讨php中header的用法详解
2013/06/07 PHP
浅谈php和.net的区别
2014/09/28 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
javascript引导程序
2008/10/26 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python使用sorted排序的方法小结
2017/07/28 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
高分子材料与工程专业推荐信
2013/12/01 职场文书
电子商务专业自荐信
2014/06/02 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python