本地字典功能
基本介绍
本地字典,在框架内进行定义,表示数据永远不会发生变化,以减少网络请求去加载数据。
使用定义
声明文件应放在/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');