中航光电热表web
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

42 lines
1.2 KiB

import dictData from './dictData.json';
/**
* @param {*} keys
* @returns
* 处理本地文件字典 对应查找
* 使用方法可定义全局变量 简化简化代码工程
* [this.departments, this.materials]= getSelectData(['departments', 'materials']);
*/
export function getSelectData(keys) {
const dict = dictData || {};
if (!keys && keys !== '') return null;
//处理单个字典值
if (typeof keys === 'string') {
return dict[keys] || null;
}
//处理多个本地字典值
if (Array.isArray(keys)) {
return keys.map(k => dict[k] || null);
}
if (typeof keys === 'object') {
const result = {};
for (const [key, value] of Object.entries(keys)) {
const list = dict[key];
if (!Array.isArray(list)) {
result[key] = null;
continue;
}
if (typeof value === 'undefined') {
result[key] = list;
} else if (Array.isArray(value)) {
result[key] = value.map(v => list.find(item => String(item.value) === String(v)) || null);
} else {
result[key] = list.find(item => String(item.value) === String(value)) || null;
}
}
return result;
}
return null;
}