import { http } from '/nerv-lib/util/http'; let dictionary: any; let dicCodeValueMap: any; export function getDicCodeValue() { asyncLoadDictTree(); return dicCodeValueMap; } export function getDictionary() { return dictionary; } export function asyncLoadDictTree(): Promise { return http .get('/api/community/objs/DictTree') .then((res) => { if (res) { const response = res; if (response && response['success']) { const mainMap = {}; const codeValueMap = {}; transferData(response, 'data', mainMap); setCodeValueMap(response, 'data', codeValueMap); dicCodeValueMap = codeValueMap; dictionary = mainMap; return mainMap; } } }) .catch((error) => { console.log(error); }); } export function transferData(data, attri, mainMap): {} { const objs = data[attri]; if (objs && objs instanceof Array && objs.length > 0) { objs.forEach((it) => { mainMap[it['dictCode']] = it; mainMap[it['dictCode'] + '_' + 'name'] = it['dictName']; if (it['subList'] && it['subList'] instanceof Array) { mainMap[it['dictCode'] + '_' + 'subList'] = it['subList']; transferData(it, 'subList', mainMap); } else { mainMap[it['dictCode'] + '_' + 'subList'] = []; return; } }); } else { return ''; } } export function setCodeValueMap(data: any, attri: any, map: any) { const objs = data[attri]; if (objs && objs instanceof Array && objs.length > 0) { objs.forEach((it) => { map[it['dictParentCode'] + '_' + it['dictValue']] = it['dictName']; map[it['dictParentCode'] + '_' + it['dictCode']] = it['dictName']; if (it['subList'] && it['subList'] instanceof Array) { setCodeValueMap(it, 'subList', map); } else { // map[it['dictParentCode'] + '_' + it['dictCode']] = ''; // map[it['dictParentCode'] + '_' + it['dictValue']] = ''; return; } }); } else { return; } } /** * 根据code和value获取显示名 * @param code 字典code * @param value 值 */ export function getCodeNameFromValue(code, value): string { console.log(code, value, 'code, value'); const name = getDicCodeValue() && getDicCodeValue()[code + '_' + value] ? getDicCodeValue()[code + '_' + value] : ''; return name; }