util.ts
1.06 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
import type { OptionField, WidgetField } from './type';
export const getUsefulFieldProp = (field: any) => {
let mode = 'widget'; //TODO 接口废弃,后续要删掉
if (field?.extract) {
mode = 'option';
}
let widget = field?.propertyWidget || field.widget;
let code = field?.fieldName || field.code;
let name = field?.fieldComment || field.title;
let relFunId = field?.relFunId;
if (mode === 'option') {
widget = field?.extract.widget;
relFunId = field?.extract.relId;
code = field?.code;
name = field?.name;
}
return {
widget,
code,
name,
relFunId,
};
};
/**
* 摊平fields ,以map形式展示 {code:{...}}
* @param fields
* @param excludeWidgets
*/
export const flatFields = (fields: WidgetField[] | OptionField[], excludeWidgets?: string[]) => {
const fieldFlatten: any = {};
fields.forEach((field: any) => {
const { code, widget } = getUsefulFieldProp(field);
if (excludeWidgets && excludeWidgets.indexOf(widget) > -1) {
return;
}
fieldFlatten[code] = field;
});
return fieldFlatten;
};