Skip to content
On this page

本地字典功能

基本介绍

本地字典,在框架内进行定义,表示数据永远不会发生变化,以减少网络请求去加载数据。

使用定义

声明文件应放在/src/const/dict,这里创建一个名为base.ts的文件,包含三种方法,分别是 对外提供转换为键值对功能,根据字典值转换成字典名称,按原始数组形式对外。 内容如下描述

ts
const baseDict: any = {
  dictItems: {
    baseOrgType: [
      { name: '单位', code: '1' },
      { name: '部门', code: '2' },
      { name: '班组', code: '3' }
    ],
    basePersonGender: [
      { name: '', code: '0' },
      { name: '', code: '1' }
    ],
    baseDictType: [
      { name: '公开', code: '1' },
      { name: '私有', code: '0' }
    ],
    baseOrgPersonType: [
      { name: '内部', code: '1' },
      { name: '外派', code: '2' },
      { name: '轮换', code: '3' },
      { name: '其他', code: '9' }
    ],
    basePersonStatus: [
      { name: '已激活', code: '1' },
      { name: '未激活', code: '0' }
    ],
    baseOrgPersonUserStatus: [
      { name: '生效中', code: '1' },
      { name: '未生效', code: '0' }
    ]
  },
  // 对外提供转换为键值对功能
  getDictConvertKeyValue(key: string) {
    const arr = this.dictItems[key];
    const dict: any = {};
    for (let i = 0; i < arr.length; i += 1) {
      dict[`${arr[i].code}`] = arr[i].name;
    }
    return dict;
  },

  // 根据字典值转换成字典名称
  formatDict(key: any, cellValue: any) {
    const arr = this.dictItems[key];
    const item = arr.find((itemTemp: { code: any }) => itemTemp.code === cellValue);
    return item && item.name ? item.name : cellValue;
  },

  // 按原始数组形式对外
  getDictItems(key: string) {
    return this.dictItems[key];
  }
};
export default baseDict;

加载使用

ts
// 导入这个基础字典对象
import baseDict from '@/const/dict/base';

// 获取字典为baseDictType的字典项,转换为键值对功能
baseDict.getDictConvertKeyValue('baseDictType');

// 获取字典为baseDictType的字典项并且值为'0',转换成字典名称
baseDict.formatDict('baseDictType','0');

// 获取字典为baseDictType的字典项,得到一个数组
baseDict.getDictItems('baseDictType');