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页面刷新,数据丢失的问题
Nov 24 Vue.js
vue实现广告栏上下滚动效果
Nov 26 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
vue 组件基础知识总结
Jan 26 Vue.js
HTML+VUE分页实现炫酷物联网大屏功能
May 27 Vue.js
一篇文章学会Vue中间件管道
Jun 20 Vue.js
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
Vue3中的Refs和Ref详情
Nov 11 Vue.js
教你部署vue项目到docker
Apr 05 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
如何优化vue打包文件过大
Apr 13 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的curl开启问题探讨
2014/04/08 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
jquery之empty()与remove()区别说明
2010/09/10 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
jquery等待效果示例
2014/05/01 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
jQuery属性选择器用法实例分析
2019/06/28 jQuery
javascript实现计算器功能
2020/03/30 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
Python连接PostgreSQL数据库的方法
2016/11/28 Python
python常见的格式化输出小结
2016/12/15 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
销售团队激励口号
2014/06/06 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
大学生创业事迹材料
2014/12/30 职场文书
海洋天堂观后感
2015/06/05 职场文书
物资采购管理制度
2015/08/06 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
Redis分布式锁的7种实现
2022/04/01 Redis