dic.js
1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import { getDicByCodeApi } from '@/api/base.js';
/**
* 获取单个字典数据(无缓存版本)
* @param {string} code
* @returns {Promise<Array>}
*/
export function getDicByCode(code) {
return getDicByCodeApi(code);
}
/**
* 批量获取多个字典数据(无缓存版本)
* @param {string[]} codes
* @returns {Promise<Object>}
*/
export function getDicByCodes(codes) {
const list = Array.isArray(codes) ? codes : [];
const promises = list.map(code => getDicByCodeApi(code));
return Promise.all(promises).then(results => {
const result = {};
list.forEach((code, index) => {
result[code] = results[index] || [];
});
return result;
});
}
/**
* 获取字典项的名称(需要传入字典项数组)
* @param {string} code 字典编码(仅用于标识,实际不使用)
* @param {string} value 字典值
* @param {Array} items 字典项数组
* @returns {string}
*/
export function getDicName(code, value, items = []) {
const list = Array.isArray(items) ? items : [];
const item = list.find(it => it && it.code === value);
return item ? item.name : value;
}
export function getAuditStatusName(value, items = []) {
return getDicName('AUDIT_STATUS', value, items);
}
export async function getAuditStatusOptions() {
const results = await getDicByCodes(['AUDIT_STATUS']);
return (results.AUDIT_STATUS && results.AUDIT_STATUS.data) || [];
}
export async function fillStandardApprovedName(detail = {}) {
const items = await getAuditStatusOptions();
const name = getAuditStatusName(detail && detail.standardApproved, items);
return { ...detail, standardApprovedName: name };
}
export async function fillFormalApprovedName(detail = {}) {
const items = await getAuditStatusOptions();
const name = getAuditStatusName(detail && detail.formalApproved, items);
return { ...detail, formalApprovedName: name };
}