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 18 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
vue 动态创建组件的两种方法
Dec 31 Vue.js
手动实现vue2.0的双向数据绑定原理详解
Feb 06 Vue.js
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
详解Vue router路由
Nov 20 Vue.js
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
vue特效之翻牌动画
Apr 20 Vue.js
vue生命周期钩子函数以及触发时机
Apr 26 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
php 各种应用乱码问题的解决方法
2010/05/09 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
java关于string最常出现的面试题整理
2021/01/18 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
解决margin 外边距合并问题
2019/07/03 HTML / CSS
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
学校运动会广播稿
2014/10/11 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
三行辞职书范文
2015/02/26 职场文书
收银员岗位职责范本
2015/04/07 职场文书
检察院起诉书
2015/05/20 职场文书
银行服务理念口号
2015/12/25 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
Python3.10的一些新特性原理分析
2021/09/15 Python
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫