config.ts
2.35 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { DirectionEnum, DirectionNameEnum } from '../../../enum/form';
import { FormSchema, useComponentRegister } from '/@/components/Form';
import { CorrelationFilters } from '../CorrelationFilters';
import { ListItemType } from '../CorrelationFilters/config';
useComponentRegister('CorrelationFilters', CorrelationFilters);
export enum RelationsQueryFormFieldsEnum {
FETCH_LAST_LEVEL_ONLY = 'fetchLastLevelOnly',
DIRECTION = 'direction',
MAX_LEVEL = 'maxLevel',
FILTERS = 'filters',
}
export enum RelationsQueryFormFieldsNameEnum {
FETCH_LAST_LEVEL_ONLY = '仅获取最后一级关联',
DIRECTION = '方向',
MAX_LEVEL = 'Max relation level',
FILTERS = '关联筛选器',
}
export interface ValueType {
[RelationsQueryFormFieldsEnum.DIRECTION]?: DirectionEnum;
[RelationsQueryFormFieldsEnum.FILTERS]?: ListItemType[];
[RelationsQueryFormFieldsEnum.FETCH_LAST_LEVEL_ONLY]?: boolean;
[RelationsQueryFormFieldsEnum.MAX_LEVEL]?: number;
}
export const getFormSchemas = (allowAddFilters: boolean): FormSchema[] => {
return [
{
field: RelationsQueryFormFieldsEnum.FETCH_LAST_LEVEL_ONLY,
component: 'Checkbox',
label: '',
required: true,
renderComponentContent: () => ({
default: () => RelationsQueryFormFieldsNameEnum.FETCH_LAST_LEVEL_ONLY,
}),
},
{
field: RelationsQueryFormFieldsEnum.DIRECTION,
component: 'Select',
label: RelationsQueryFormFieldsNameEnum.DIRECTION,
colProps: { span: 12 },
required: true,
componentProps: {
options: Object.keys(DirectionEnum).map((value) => ({
label: DirectionNameEnum[value],
value,
})),
getPopupContainer: () => document.body,
placeholder: `请选择${RelationsQueryFormFieldsNameEnum.DIRECTION}`,
componentProps: {},
},
},
{
field: RelationsQueryFormFieldsEnum.MAX_LEVEL,
label: RelationsQueryFormFieldsNameEnum.MAX_LEVEL,
component: 'InputNumber',
colProps: { span: 12 },
required: true,
componentProps: {
min: 1,
},
},
{
field: RelationsQueryFormFieldsEnum.FILTERS,
label: allowAddFilters ? RelationsQueryFormFieldsNameEnum.FILTERS : '',
component: 'CorrelationFilters',
valueField: 'value',
changeEvent: 'update:value',
slot: RelationsQueryFormFieldsEnum.FILTERS,
},
];
};