cnhis-design-vue 3.1.16-beta.1 → 3.1.16-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/packages/big-table/index.d.ts +652 -430
- package/es/packages/big-table/src/BigTable.vue.d.ts +655 -457
- package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +106 -112
- package/es/packages/big-table/src/bigTableProps.d.ts +4 -0
- package/es/packages/big-table/src/bigTableProps.js +2 -1
- package/es/packages/big-table/src/bigTableState.d.ts +2 -0
- package/es/packages/big-table/src/bigTableState.js +3 -1
- package/es/packages/big-table/src/components/edit-form/edit-time.js +1 -1
- package/es/packages/big-table/src/hooks/index.d.ts +9 -0
- package/es/packages/big-table/src/hooks/index.js +9 -0
- package/es/packages/big-table/src/hooks/useAnchor.d.ts +7 -0
- package/es/packages/big-table/src/hooks/useAnchor.js +49 -0
- package/es/packages/big-table/src/hooks/useColumnConfigAdaptor.js +24 -8
- package/es/packages/big-table/src/hooks/useEdit.js +1 -1
- package/es/packages/big-table/src/hooks/useEvent.d.ts +1 -1
- package/es/packages/big-table/src/hooks/useEvent.js +3 -2
- package/es/packages/big-table/style/index.css +1 -2
- package/es/packages/button-print/index.d.ts +7 -4
- package/es/packages/button-print/src/ButtonPrint.vue.d.ts +7 -4
- package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +5 -16
- package/es/packages/button-print/src/components/IdentityVerification.js +5 -7
- package/es/packages/button-print/src/components/IdentityVerification.vue.d.ts +6 -3
- package/es/packages/drag-layout/index.d.ts +2 -2
- package/es/packages/drag-layout/src/DragLayout.vue.d.ts +2 -2
- package/es/packages/fabric-chart/src/FabricChart.js +3 -2
- package/es/packages/fabric-chart/src/hooks/constant.js +5 -5
- package/es/packages/fabric-chart/src/hooks/useCenter.js +20 -23
- package/es/packages/fabric-chart/src/hooks/useDraw.js +11 -4
- package/es/packages/fabric-chart/src/hooks/useEvent.js +11 -3
- package/es/packages/fabric-chart/src/hooks/useLeft.js +8 -4
- package/es/packages/fabric-chart/src/hooks/useOther.js +63 -13
- package/es/packages/fabric-chart/src/hooks/useTop.js +5 -8
- package/es/packages/field-set/index.d.ts +1 -1
- package/es/packages/field-set/src/FieldSet.vue.d.ts +1 -1
- package/es/packages/form-config/index.d.ts +110 -3367
- package/es/packages/form-config/src/FormConfig.js +42 -34
- package/es/packages/form-config/src/FormConfig.vue.d.ts +147 -3404
- package/es/packages/form-config/src/components/FormConfigCreator.js +13 -11
- package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +23 -22
- package/es/packages/form-config/src/components/FormConfigEdit.js +2 -2
- package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +75 -49
- package/es/packages/form-config/src/constants/index.d.ts +58 -24
- package/es/packages/form-config/src/constants/index.js +52 -23
- package/es/packages/form-config/src/hooks/index.d.ts +1 -0
- package/es/packages/form-config/src/hooks/index.js +1 -0
- package/es/packages/form-config/src/hooks/useConfigurationField.d.ts +2 -1
- package/es/packages/form-config/src/hooks/useConfigurationField.js +29 -80
- package/es/packages/form-config/src/hooks/usePresetRenderer.d.ts +2 -3
- package/es/packages/form-config/src/hooks/usePresetRenderer.js +16 -19
- package/es/packages/form-config/src/hooks/useSortable.js +1 -1
- package/es/packages/form-config/src/types/index.d.ts +22 -4
- package/es/packages/form-config/src/utils/index.d.ts +2 -0
- package/es/packages/form-config/src/utils/index.js +15 -0
- package/es/packages/form-config/style/index.css +27 -3
- package/es/packages/form-render/index.d.ts +13 -15
- package/es/packages/form-render/src/FormRender.js +11 -8
- package/es/packages/form-render/src/FormRender.vue.d.ts +14 -16
- package/es/packages/form-render/src/components/renderer/cascader.d.ts +2 -14
- package/es/packages/form-render/src/components/renderer/cascader.js +3 -3
- package/es/packages/form-render/src/components/renderer/checkbox.js +1 -1
- package/es/packages/form-render/src/components/renderer/combination/index.js +2 -1
- package/es/packages/form-render/src/components/renderer/complex.js +1 -1
- package/es/packages/form-render/src/components/renderer/date.d.ts +20 -4
- package/es/packages/form-render/src/components/renderer/date.js +36 -20
- package/es/packages/form-render/src/components/renderer/input.js +2 -1
- package/es/packages/form-render/src/components/renderer/inputNumber.js +2 -1
- package/es/packages/form-render/src/components/renderer/linebar.js +1 -4
- package/es/packages/form-render/src/components/renderer/radio.js +1 -1
- package/es/packages/form-render/src/components/renderer/select.d.ts +1 -10
- package/es/packages/form-render/src/components/renderer/select.js +26 -17
- package/es/packages/form-render/src/components/renderer/slider.d.ts +8 -344
- package/es/packages/form-render/src/components/renderer/slider.js +24 -2
- package/es/packages/form-render/src/components/renderer/switch.js +1 -1
- package/es/packages/form-render/src/components/renderer/textarea.js +1 -1
- package/es/packages/form-render/src/hooks/useAnchor.js +7 -4
- package/es/packages/form-render/src/hooks/useBusinessBinding.d.ts +15 -9
- package/es/packages/form-render/src/hooks/useBusinessBinding.js +62 -58
- package/es/packages/form-render/src/hooks/useChangeContext.d.ts +4 -2
- package/es/packages/form-render/src/hooks/useChangeContext.js +4 -7
- package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +17 -7
- package/es/packages/form-render/src/hooks/useFormContext.d.ts +2 -1
- package/es/packages/form-render/src/hooks/useFormContext.js +2 -2
- package/es/packages/form-render/src/hooks/useFormValidator.js +13 -3
- package/es/packages/form-render/src/hooks/useInitialData.d.ts +1 -1
- package/es/packages/form-render/src/hooks/useInitialData.js +9 -4
- package/es/packages/form-render/src/hooks/useTypeNormalize.js +3 -2
- package/es/packages/form-render/src/types/fieldItem.d.ts +11 -12
- package/es/packages/form-render/src/types/index.d.ts +7 -8
- package/es/packages/form-render/src/utils/business.d.ts +12 -0
- package/es/packages/form-render/src/utils/business.js +78 -0
- package/es/packages/form-render/src/utils/dom.d.ts +6 -0
- package/es/packages/form-render/src/utils/dom.js +14 -0
- package/es/packages/form-render/src/utils/index.d.ts +6 -26
- package/es/packages/form-render/src/utils/index.js +9 -138
- package/es/packages/form-render/src/utils/schema.d.ts +16 -0
- package/es/packages/form-render/src/utils/schema.js +94 -0
- package/es/packages/index.css +28 -5
- package/es/packages/scale-view/src/hooks/use-component.d.ts +7 -7
- package/es/packages/select-label/index.d.ts +10 -10
- package/es/packages/select-label/src/LabelFormContent.vue.d.ts +3 -3
- package/es/packages/select-label/src/SelectLabel.vue.d.ts +7 -7
- package/es/packages/shortcut-setter/index.d.ts +18 -20
- package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +18 -20
- package/es/packages/time-line/index.d.ts +2 -2
- package/es/packages/time-line/src/TimeLine.vue.d.ts +2 -2
- package/global.d.ts +8 -8
- package/package.json +1 -1
|
@@ -1,28 +1,57 @@
|
|
|
1
|
-
const WidgetTextMap =
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
CASCADER: "\u7EA7\u8054\u4E0B\u62C9\u6846",
|
|
6
|
-
SWITCH: "\u5F00\u5173",
|
|
7
|
-
RADIO: "\u5355\u9009",
|
|
8
|
-
TEXT: "\u6587\u672C",
|
|
9
|
-
BUTTON: "\u6309\u94AE",
|
|
10
|
-
CHECKBOX: "\u591A\u9009",
|
|
11
|
-
LINEBAR: "\u5206\u884C\u7B26",
|
|
12
|
-
LINE_BREAKS: "\u5206\u7EBF\u680F"
|
|
13
|
-
};
|
|
1
|
+
const WidgetTextMap = /* @__PURE__ */ new Map([
|
|
2
|
+
["LINE_BAR", "\u5206\u7EBF\u680F"],
|
|
3
|
+
["NEWLINE", "\u5206\u884C\u7B26"]
|
|
4
|
+
]);
|
|
14
5
|
var EditAbleField = /* @__PURE__ */ ((EditAbleField2) => {
|
|
15
|
-
EditAbleField2["
|
|
16
|
-
EditAbleField2["
|
|
17
|
-
EditAbleField2["
|
|
18
|
-
EditAbleField2["
|
|
19
|
-
EditAbleField2["
|
|
20
|
-
EditAbleField2["
|
|
21
|
-
EditAbleField2["
|
|
22
|
-
EditAbleField2["
|
|
23
|
-
EditAbleField2["
|
|
6
|
+
EditAbleField2["NAME"] = "name";
|
|
7
|
+
EditAbleField2["NOTES"] = "notes";
|
|
8
|
+
EditAbleField2["DEFAULT_VALUE"] = "defaultValue";
|
|
9
|
+
EditAbleField2["LAYOUT_WIDTH_ENUM"] = "layoutWidthEnum";
|
|
10
|
+
EditAbleField2["DESC"] = "desc";
|
|
11
|
+
EditAbleField2["DEFAULT_EXPAND"] = "defaultExpand";
|
|
12
|
+
EditAbleField2["FOLD"] = "fold";
|
|
13
|
+
EditAbleField2["REQUIRED"] = "required";
|
|
14
|
+
EditAbleField2["EDITABLE"] = "editable";
|
|
24
15
|
return EditAbleField2;
|
|
25
16
|
})(EditAbleField || {});
|
|
17
|
+
function widgetWidthOptionConfig() {
|
|
18
|
+
return {
|
|
19
|
+
option: [
|
|
20
|
+
{ text: "\u6574\u884C", value: "ALL_LINE" },
|
|
21
|
+
{ text: "\u534A\u884C", value: "HALF_LINE" },
|
|
22
|
+
{ text: "5/6", value: "FIVE_SIX" },
|
|
23
|
+
{ text: "2/3", value: "TWO_THREE" },
|
|
24
|
+
{ text: "1/3", value: "ONE_THREE" },
|
|
25
|
+
{ text: "3/4", value: "THREE_FOUR" },
|
|
26
|
+
{ text: "1/4", value: "ONE_FOUR" },
|
|
27
|
+
{ text: "1/6", value: "ONE_SIX" }
|
|
28
|
+
]
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function isShowOptionConfig() {
|
|
32
|
+
return {
|
|
33
|
+
open: { describe: "\u9ED8\u8BA4\u5C55\u5F00", value: true },
|
|
34
|
+
close: { describe: "\u9ED8\u8BA4\u6536\u8D77", value: false }
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function isNotFoldOptionConfig() {
|
|
38
|
+
return {
|
|
39
|
+
open: { describe: "\u53EF\u6298\u53E0", value: true },
|
|
40
|
+
close: { describe: "\u4E0D\u53EF\u6298\u53E0", value: false }
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function isEditOptionConfig() {
|
|
44
|
+
return {
|
|
45
|
+
open: { describe: "\u53EF\u7F16\u8F91", value: true },
|
|
46
|
+
close: { describe: "\u4E0D\u53EF\u7F16\u8F91", value: false }
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function isNullOptionConfig() {
|
|
50
|
+
return {
|
|
51
|
+
open: { describe: "\u5FC5\u586B", value: true },
|
|
52
|
+
close: { describe: "\u4E0D\u5FC5\u586B", value: false }
|
|
53
|
+
};
|
|
54
|
+
}
|
|
26
55
|
const InjectionActiveFieldItem = Symbol("InjectionActiveFieldItem");
|
|
27
56
|
|
|
28
|
-
export { EditAbleField, InjectionActiveFieldItem, WidgetTextMap };
|
|
57
|
+
export { EditAbleField, InjectionActiveFieldItem, WidgetTextMap, isEditOptionConfig, isNotFoldOptionConfig, isNullOptionConfig, isShowOptionConfig, widgetWidthOptionConfig };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { FormConfigItem } from '../../../../../es/packages/form-config';
|
|
1
2
|
import { EditAbleField } from '../../../../../es/packages/form-config/src/constants';
|
|
2
3
|
import { FieldItem } from '../../../../../es/packages/form-render';
|
|
3
4
|
export declare function useConfigurationField(): {
|
|
4
5
|
generateFieldListByKeys: (keyList: EditAbleField[]) => FieldItem[];
|
|
5
|
-
generateFieldListByFieldItem: (fieldItem:
|
|
6
|
+
generateFieldListByFieldItem: (fieldItem: FormConfigItem) => FieldItem[];
|
|
6
7
|
};
|
|
@@ -1,100 +1,49 @@
|
|
|
1
|
-
import { EditAbleField } from '../../../../packages/form-config/src/constants';
|
|
1
|
+
import { EditAbleField, widgetWidthOptionConfig, isShowOptionConfig, isNotFoldOptionConfig, isEditOptionConfig, isNullOptionConfig } from '../../../../packages/form-config/src/constants';
|
|
2
2
|
|
|
3
3
|
function useConfigurationField() {
|
|
4
4
|
const fieldMap = /* @__PURE__ */ new Map([
|
|
5
|
-
[EditAbleField.
|
|
6
|
-
[EditAbleField.
|
|
5
|
+
[EditAbleField.NAME, { alias: "\u540D\u79F0", elem_width: 12, is_null: "0", html_type: "INPUT" }],
|
|
6
|
+
[EditAbleField.NOTES, { alias: "\u95EE\u53F7\u63D0\u793A", elem_width: 12, html_type: "INPUT" }],
|
|
7
7
|
[
|
|
8
|
-
EditAbleField.
|
|
9
|
-
{ alias: "\u9ED8\u8BA4\u503C",
|
|
8
|
+
EditAbleField.DEFAULT_VALUE,
|
|
9
|
+
{ alias: "\u9ED8\u8BA4\u503C", elem_width: 12, html_type: "INPUT", validate: { max_length: 20 } }
|
|
10
10
|
],
|
|
11
11
|
[
|
|
12
|
-
EditAbleField.
|
|
13
|
-
{
|
|
14
|
-
alias: "\u5BBD\u5EA6",
|
|
15
|
-
fieldType: "number",
|
|
16
|
-
val_key: "elem_width",
|
|
17
|
-
html_type: "SELECT",
|
|
18
|
-
elem_width: 12,
|
|
19
|
-
option: [
|
|
20
|
-
{ text: "\u6574\u884C", value: 12 },
|
|
21
|
-
{ text: "\u534A\u884C", value: 6 },
|
|
22
|
-
{ text: "5/6", value: 10 },
|
|
23
|
-
{ text: "2/3", value: 8 },
|
|
24
|
-
{ text: "1/3", value: 4 },
|
|
25
|
-
{ text: "3/4", value: 9 },
|
|
26
|
-
{ text: "1/4", value: 3 },
|
|
27
|
-
{ text: "1/6", value: 2 }
|
|
28
|
-
]
|
|
29
|
-
}
|
|
12
|
+
EditAbleField.LAYOUT_WIDTH_ENUM,
|
|
13
|
+
{ alias: "\u5BBD\u5EA6", fieldType: "number", html_type: "SELECT", elem_width: 12, ...widgetWidthOptionConfig() }
|
|
30
14
|
],
|
|
15
|
+
[EditAbleField.DESC, { alias: "\u8BF4\u660E\u6587\u672C", elem_width: 12, html_type: "INPUT", validate: { max_length: 30 } }],
|
|
31
16
|
[
|
|
32
|
-
EditAbleField.
|
|
33
|
-
{ alias: "\
|
|
17
|
+
EditAbleField.DEFAULT_EXPAND,
|
|
18
|
+
{ alias: "\u662F\u5426\u9ED8\u8BA4\u5C55\u5F00", html_type: "SWITCH", elem_width: 12, ...isShowOptionConfig() }
|
|
34
19
|
],
|
|
35
|
-
[
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
val_key: "is_show",
|
|
39
|
-
alias: "\u662F\u5426\u9ED8\u8BA4\u5C55\u5F00",
|
|
40
|
-
html_type: "SWITCH",
|
|
41
|
-
elem_width: 12,
|
|
42
|
-
open: { describe: "\u9ED8\u8BA4\u5C55\u5F00", value: "1" },
|
|
43
|
-
close: { describe: "\u9ED8\u8BA4\u6536\u8D77", value: "0" }
|
|
44
|
-
}
|
|
45
|
-
],
|
|
46
|
-
[
|
|
47
|
-
EditAbleField.IS_NOT_FOLD,
|
|
48
|
-
{
|
|
49
|
-
val_key: "is_not_fold",
|
|
50
|
-
alias: "\u662F\u5426\u53EF\u6298\u53E0",
|
|
51
|
-
html_type: "SWITCH",
|
|
52
|
-
elem_width: 12,
|
|
53
|
-
open: { describe: "\u53EF\u6298\u53E0", value: "0" },
|
|
54
|
-
close: { describe: "\u4E0D\u53EF\u6298\u53E0", value: "1" }
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
[
|
|
58
|
-
EditAbleField.IS_EDIT,
|
|
59
|
-
{
|
|
60
|
-
val_key: "is_edit",
|
|
61
|
-
alias: "\u662F\u5426\u53EF\u7F16\u8F91",
|
|
62
|
-
html_type: "SWITCH",
|
|
63
|
-
elem_width: 12,
|
|
64
|
-
open: { describe: "\u53EF\u7F16\u8F91", value: "1" },
|
|
65
|
-
close: { describe: "\u4E0D\u53EF\u7F16\u8F91", value: "0" }
|
|
66
|
-
}
|
|
67
|
-
],
|
|
68
|
-
[
|
|
69
|
-
EditAbleField.IS_NULL,
|
|
70
|
-
{
|
|
71
|
-
val_key: "is_null",
|
|
72
|
-
alias: "\u662F\u5426\u5FC5\u586B",
|
|
73
|
-
html_type: "SWITCH",
|
|
74
|
-
elem_width: 12,
|
|
75
|
-
open: { describe: "\u5FC5\u586B", value: "0" },
|
|
76
|
-
close: { describe: "\u4E0D\u5FC5\u586B", value: "1" }
|
|
77
|
-
}
|
|
78
|
-
]
|
|
20
|
+
[EditAbleField.FOLD, { alias: "\u662F\u5426\u53EF\u6298\u53E0", html_type: "SWITCH", elem_width: 12, ...isNotFoldOptionConfig() }],
|
|
21
|
+
[EditAbleField.EDITABLE, { alias: "\u662F\u5426\u53EF\u7F16\u8F91", html_type: "SWITCH", elem_width: 12, ...isEditOptionConfig() }],
|
|
22
|
+
[EditAbleField.REQUIRED, { alias: "\u662F\u5426\u5FC5\u586B", html_type: "SWITCH", elem_width: 12, ...isNullOptionConfig() }]
|
|
79
23
|
]);
|
|
80
24
|
function generateFieldListByKeys(keyList) {
|
|
81
|
-
return keyList.map((key) =>
|
|
25
|
+
return keyList.map((key) => {
|
|
26
|
+
return { ...fieldMap.get(key), val_key: key };
|
|
27
|
+
});
|
|
82
28
|
}
|
|
83
29
|
function generateFieldListByFieldItem(fieldItem) {
|
|
84
30
|
const htmlMap = new Map([
|
|
85
|
-
[
|
|
86
|
-
|
|
31
|
+
[
|
|
32
|
+
"LINE_BAR",
|
|
33
|
+
[EditAbleField.NAME, EditAbleField.LAYOUT_WIDTH_ENUM, EditAbleField.DEFAULT_EXPAND, EditAbleField.FOLD]
|
|
34
|
+
],
|
|
35
|
+
...["NEWLINE", "COMPLEX", "COMBINATION"].map((key) => [key, [EditAbleField.NAME, EditAbleField.LAYOUT_WIDTH_ENUM]])
|
|
87
36
|
]);
|
|
88
37
|
const defaultItems = [
|
|
89
|
-
EditAbleField.
|
|
90
|
-
EditAbleField.
|
|
91
|
-
EditAbleField.
|
|
92
|
-
EditAbleField.
|
|
93
|
-
EditAbleField.
|
|
94
|
-
EditAbleField.
|
|
95
|
-
EditAbleField.
|
|
38
|
+
EditAbleField.NAME,
|
|
39
|
+
EditAbleField.DEFAULT_VALUE,
|
|
40
|
+
EditAbleField.LAYOUT_WIDTH_ENUM,
|
|
41
|
+
EditAbleField.DESC,
|
|
42
|
+
EditAbleField.NOTES,
|
|
43
|
+
EditAbleField.EDITABLE,
|
|
44
|
+
EditAbleField.REQUIRED
|
|
96
45
|
];
|
|
97
|
-
const keys = htmlMap.get(fieldItem.
|
|
46
|
+
const keys = htmlMap.get(fieldItem.type) || defaultItems;
|
|
98
47
|
return generateFieldListByKeys(keys);
|
|
99
48
|
}
|
|
100
49
|
return { generateFieldListByKeys, generateFieldListByFieldItem };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FormConfigTextFormatter } from '../types';
|
|
1
|
+
import { FormConfigItem, FormConfigTextFormatter } from '../types';
|
|
3
2
|
export declare function usePresetRenderer(textFormatter: FormConfigTextFormatter): {
|
|
4
|
-
getRenderer: (fieldItem:
|
|
3
|
+
getRenderer: (fieldItem: FormConfigItem) => import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | import("vue").FunctionalComponent<{}, {}>;
|
|
5
4
|
};
|
|
@@ -2,7 +2,8 @@ import { defineComponent, computed, createVNode, mergeProps, inject } from 'vue'
|
|
|
2
2
|
import { isString, isArray, isFunction } from 'lodash-es';
|
|
3
3
|
import Draggable from 'vuedraggable';
|
|
4
4
|
import { InjectionActiveFieldItem, WidgetTextMap } from '../../../../packages/form-config/src/constants';
|
|
5
|
-
import { useSortable } from '../../../../packages/form-config/src/hooks';
|
|
5
|
+
import { useSortable } from '../../../../packages/form-config/src/hooks/useSortable';
|
|
6
|
+
import { layoutWidthEnum2Column } from '../../../../packages/form-config/src/utils';
|
|
6
7
|
import { NEllipsis } from 'naive-ui';
|
|
7
8
|
|
|
8
9
|
function usePresetRenderer(textFormatter) {
|
|
@@ -19,14 +20,15 @@ function usePresetRenderer(textFormatter) {
|
|
|
19
20
|
}
|
|
20
21
|
}, [createVNode(NEllipsis, {
|
|
21
22
|
"class": ["form-config__renderer--default", {
|
|
22
|
-
"is-required": fieldItem.
|
|
23
|
-
"is-disabled": fieldItem.
|
|
23
|
+
"is-required": fieldItem.required,
|
|
24
|
+
"is-disabled": fieldItem.editable === false
|
|
24
25
|
}]
|
|
25
26
|
}, {
|
|
26
27
|
default: () => getDisplayText()
|
|
27
28
|
})]);
|
|
28
29
|
function getDisplayText() {
|
|
29
|
-
|
|
30
|
+
const type = WidgetTextMap.get(fieldItem.type);
|
|
31
|
+
return textFormatter(fieldItem, `${fieldItem.name}${type ? `(${type})` : ""}`);
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
};
|
|
@@ -44,12 +46,11 @@ function usePresetRenderer(textFormatter) {
|
|
|
44
46
|
return props.fieldItem[key];
|
|
45
47
|
}
|
|
46
48
|
const classList = computed(() => {
|
|
47
|
-
return
|
|
49
|
+
return "form-config__renderer--complex form-config__renderer--complex--grid";
|
|
48
50
|
});
|
|
49
51
|
const style = computed(() => {
|
|
50
52
|
return {
|
|
51
|
-
"--item-column": fieldFor("
|
|
52
|
-
...fieldFor("wrapperStyle")
|
|
53
|
+
"--item-column": layoutWidthEnum2Column(fieldFor("layoutWidthEnum"))
|
|
53
54
|
};
|
|
54
55
|
});
|
|
55
56
|
function renderField(fieldItem) {
|
|
@@ -57,7 +58,7 @@ function usePresetRenderer(textFormatter) {
|
|
|
57
58
|
return createVNode("div", {
|
|
58
59
|
"class": "form-config__displayContentItem",
|
|
59
60
|
"style": {
|
|
60
|
-
"--item-column": fieldItem.
|
|
61
|
+
"--item-column": layoutWidthEnum2Column(fieldItem.layoutWidthEnum)
|
|
61
62
|
}
|
|
62
63
|
}, [createVNode(Renderer, {
|
|
63
64
|
"fieldItem": fieldItem
|
|
@@ -65,14 +66,10 @@ function usePresetRenderer(textFormatter) {
|
|
|
65
66
|
}
|
|
66
67
|
const childrenList = computed({
|
|
67
68
|
get() {
|
|
68
|
-
return fieldFor("
|
|
69
|
+
return fieldFor("children");
|
|
69
70
|
},
|
|
70
71
|
set(v) {
|
|
71
|
-
|
|
72
|
-
props.fieldItem.children = v;
|
|
73
|
-
} else {
|
|
74
|
-
props.fieldItem.properties = v;
|
|
75
|
-
}
|
|
72
|
+
props.fieldItem.children = v;
|
|
76
73
|
}
|
|
77
74
|
});
|
|
78
75
|
const {
|
|
@@ -82,7 +79,7 @@ function usePresetRenderer(textFormatter) {
|
|
|
82
79
|
return () => createVNode(DraggableComponent, mergeProps(commonConfig, {
|
|
83
80
|
"class": classList.value,
|
|
84
81
|
"style": style.value,
|
|
85
|
-
"group": fieldFor("
|
|
82
|
+
"group": fieldFor("key"),
|
|
86
83
|
"modelValue": childrenList.value,
|
|
87
84
|
"onUpdate:modelValue": ($event) => childrenList.value = $event
|
|
88
85
|
}), {
|
|
@@ -101,12 +98,12 @@ function usePresetRenderer(textFormatter) {
|
|
|
101
98
|
matcher
|
|
102
99
|
}) => {
|
|
103
100
|
if (isString(matcher))
|
|
104
|
-
return matcher === fieldItem.
|
|
101
|
+
return matcher === fieldItem.type;
|
|
105
102
|
if (isArray(matcher))
|
|
106
|
-
return matcher.includes(fieldItem.
|
|
103
|
+
return matcher.includes(fieldItem.type);
|
|
107
104
|
if (isFunction(matcher))
|
|
108
|
-
return matcher(fieldItem.
|
|
109
|
-
return matcher.test(fieldItem.
|
|
105
|
+
return matcher(fieldItem.type);
|
|
106
|
+
return matcher.test(fieldItem.type);
|
|
110
107
|
}).renderer;
|
|
111
108
|
}
|
|
112
109
|
return {
|
|
@@ -24,7 +24,7 @@ function useSortable() {
|
|
|
24
24
|
}
|
|
25
25
|
to.classList.add("is-choosing-area");
|
|
26
26
|
}
|
|
27
|
-
const commonConfig = { onMove, onChoose, onUnchoose, tag: "section", animation: "150", "item-key": "
|
|
27
|
+
const commonConfig = { onMove, onChoose, onUnchoose, tag: "section", animation: "150", "item-key": "key" };
|
|
28
28
|
return { commonConfig };
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Component, FunctionalComponent } from 'vue';
|
|
2
2
|
import { ArrayAble } from '../../../../../es/src/types';
|
|
3
|
-
import { FieldItem } from '../../../../../es/packages/form-render';
|
|
4
3
|
interface Matcher {
|
|
5
4
|
(type: string): boolean;
|
|
6
5
|
}
|
|
@@ -8,11 +7,30 @@ export declare type FormConfigRenderer = {
|
|
|
8
7
|
matcher: ArrayAble<string> | RegExp | Matcher;
|
|
9
8
|
renderer: Component | FunctionalComponent;
|
|
10
9
|
};
|
|
10
|
+
export declare type FormConfigType = 'NEWLINE' | 'LINE_BAR' | 'OTHER' | string;
|
|
11
|
+
export declare type FormConfigWidth = 'ALL_LINE' | 'HALF_LINE' | 'FIVE_SIX' | 'TWO_THREE' | 'ONE_THREE' | 'THREE_FOUR' | 'ONE_FOUR' | 'ONE_SIX';
|
|
12
|
+
export declare type FormConfigItem = {
|
|
13
|
+
key: string;
|
|
14
|
+
layoutWidthEnum: FormConfigWidth;
|
|
15
|
+
type: FormConfigType;
|
|
16
|
+
name: string;
|
|
17
|
+
} & Partial<{
|
|
18
|
+
show: boolean;
|
|
19
|
+
defaultValue: any;
|
|
20
|
+
defaultExpand: boolean;
|
|
21
|
+
fold: boolean;
|
|
22
|
+
required: boolean;
|
|
23
|
+
editable: boolean;
|
|
24
|
+
notes: string;
|
|
25
|
+
desc: string;
|
|
26
|
+
children: FormConfigItem[];
|
|
27
|
+
}>;
|
|
11
28
|
export interface FormConfigTextFormatter {
|
|
12
|
-
(fieldItem:
|
|
29
|
+
(fieldItem: FormConfigItem, parsedText: string): string;
|
|
13
30
|
}
|
|
14
31
|
export interface FormConfigExpose {
|
|
15
|
-
loadData(payload: Record<'fieldList'
|
|
16
|
-
|
|
32
|
+
loadData(payload: Record<'fieldList', FormConfigItem[]>): void;
|
|
33
|
+
validate(): Promise<unknown>;
|
|
34
|
+
getData(): Record<'fieldList' | 'materialList', FormConfigItem[]>;
|
|
17
35
|
}
|
|
18
36
|
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
function layoutWidthEnum2Column(layoutWidthEnum) {
|
|
2
|
+
const transferMap = {
|
|
3
|
+
ALL_LINE: 12,
|
|
4
|
+
HALF_LINE: 6,
|
|
5
|
+
FIVE_SIX: 10,
|
|
6
|
+
TWO_THREE: 8,
|
|
7
|
+
ONE_THREE: 4,
|
|
8
|
+
THREE_FOUR: 9,
|
|
9
|
+
ONE_FOUR: 3,
|
|
10
|
+
ONE_SIX: 2
|
|
11
|
+
};
|
|
12
|
+
return transferMap[layoutWidthEnum] || 12;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { layoutWidthEnum2Column };
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
.form-config__material {
|
|
6
6
|
padding: 16px;
|
|
7
7
|
box-sizing: border-box;
|
|
8
|
+
flex-shrink: 0;
|
|
8
9
|
width: 200px;
|
|
9
10
|
background: white;
|
|
10
11
|
}
|
|
@@ -15,8 +16,12 @@
|
|
|
15
16
|
height: 40px;
|
|
16
17
|
}
|
|
17
18
|
.form-config__materialContent {
|
|
18
|
-
padding:
|
|
19
|
-
|
|
19
|
+
padding: 16px;
|
|
20
|
+
box-sizing: border-box;
|
|
21
|
+
flex-shrink: 0;
|
|
22
|
+
overflow-y: auto;
|
|
23
|
+
max-height: var(--max-height);
|
|
24
|
+
min-height: 200px;
|
|
20
25
|
display: flex;
|
|
21
26
|
flex-direction: column;
|
|
22
27
|
gap: 8px;
|
|
@@ -33,6 +38,8 @@
|
|
|
33
38
|
.form-config__displayWrapper {
|
|
34
39
|
padding: 16px;
|
|
35
40
|
box-sizing: border-box;
|
|
41
|
+
flex-shrink: 0;
|
|
42
|
+
min-width: 400px;
|
|
36
43
|
flex: 1;
|
|
37
44
|
padding: 16px 0;
|
|
38
45
|
}
|
|
@@ -45,6 +52,9 @@
|
|
|
45
52
|
.form-config__displayContent {
|
|
46
53
|
padding: 16px;
|
|
47
54
|
box-sizing: border-box;
|
|
55
|
+
flex-shrink: 0;
|
|
56
|
+
overflow-y: auto;
|
|
57
|
+
max-height: var(--max-height);
|
|
48
58
|
height: fit-content;
|
|
49
59
|
background: #eeeeee;
|
|
50
60
|
display: grid !important;
|
|
@@ -58,9 +68,23 @@
|
|
|
58
68
|
.form-config__config {
|
|
59
69
|
padding: 16px;
|
|
60
70
|
box-sizing: border-box;
|
|
61
|
-
|
|
71
|
+
flex-shrink: 0;
|
|
72
|
+
width: 240px;
|
|
62
73
|
background: white;
|
|
63
74
|
}
|
|
75
|
+
.form-config__configHeader {
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
justify-content: space-between;
|
|
79
|
+
height: 40px;
|
|
80
|
+
}
|
|
81
|
+
.form-config__configContent {
|
|
82
|
+
padding: 16px;
|
|
83
|
+
box-sizing: border-box;
|
|
84
|
+
flex-shrink: 0;
|
|
85
|
+
overflow-y: auto;
|
|
86
|
+
max-height: var(--max-height);
|
|
87
|
+
}
|
|
64
88
|
.form-config__renderer--default {
|
|
65
89
|
display: flex;
|
|
66
90
|
align-items: center;
|
|
@@ -29,6 +29,9 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
29
29
|
type: NumberConstructor;
|
|
30
30
|
default: number;
|
|
31
31
|
};
|
|
32
|
+
businessFormatter: {
|
|
33
|
+
type: import("vue").PropType<import("./src/types").FormBusinessFormatter>;
|
|
34
|
+
};
|
|
32
35
|
schema: {
|
|
33
36
|
type: import("vue").PropType<import("@formily/json-schema").Stringify<{
|
|
34
37
|
[key: symbol]: any;
|
|
@@ -92,9 +95,6 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
92
95
|
type: import("vue").PropType<Record<string, import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | import("vue").FunctionalComponent<{}, {}>>>;
|
|
93
96
|
default: () => {};
|
|
94
97
|
};
|
|
95
|
-
businessFilter: {
|
|
96
|
-
type: import("vue").PropType<import("./src/types").FormBusinessFilter>;
|
|
97
|
-
};
|
|
98
98
|
scope: {
|
|
99
99
|
type: import("vue").PropType<import("../../../es/src/types").AnyObject>;
|
|
100
100
|
default: () => {};
|
|
@@ -144,6 +144,9 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
144
144
|
type: NumberConstructor;
|
|
145
145
|
default: number;
|
|
146
146
|
};
|
|
147
|
+
businessFormatter: {
|
|
148
|
+
type: import("vue").PropType<import("./src/types").FormBusinessFormatter>;
|
|
149
|
+
};
|
|
147
150
|
schema: {
|
|
148
151
|
type: import("vue").PropType<import("@formily/json-schema").Stringify<{
|
|
149
152
|
[key: symbol]: any;
|
|
@@ -207,9 +210,6 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
207
210
|
type: import("vue").PropType<Record<string, import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | import("vue").FunctionalComponent<{}, {}>>>;
|
|
208
211
|
default: () => {};
|
|
209
212
|
};
|
|
210
|
-
businessFilter: {
|
|
211
|
-
type: import("vue").PropType<import("./src/types").FormBusinessFilter>;
|
|
212
|
-
};
|
|
213
213
|
scope: {
|
|
214
214
|
type: import("vue").PropType<import("../../../es/src/types").AnyObject>;
|
|
215
215
|
default: () => {};
|
|
@@ -236,14 +236,12 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
236
236
|
}>>;
|
|
237
237
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
238
238
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
239
|
+
formModel: import("@formily/core").Form<any>;
|
|
239
240
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
240
241
|
businessCollector: import("./src/hooks").BusinessCollector;
|
|
241
242
|
formItemDepsCollector: import("./src/hooks").FormItemDepsCollector;
|
|
242
243
|
changeContextCollector: import("./src/hooks").ContextCollector;
|
|
243
244
|
formUUID: string;
|
|
244
|
-
formModel: import("@formily/core").Form<{
|
|
245
|
-
[x: string]: any;
|
|
246
|
-
}>;
|
|
247
245
|
scrollbarRef: import("vue").Ref<HTMLElement | undefined>;
|
|
248
246
|
schemaAdaptor: (fieldList: import("./src/types").FieldItem[]) => Record<string, import("@formily/json-schema").Stringify<{
|
|
249
247
|
[key: symbol]: any;
|
|
@@ -759,7 +757,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
759
757
|
readonly default: "bar";
|
|
760
758
|
};
|
|
761
759
|
readonly closable: BooleanConstructor;
|
|
762
|
-
readonly justifyContent: import("vue").PropType<"
|
|
760
|
+
readonly justifyContent: import("vue").PropType<"start" | "end" | "space-around" | "space-between" | "space-evenly" | "center">;
|
|
763
761
|
readonly size: {
|
|
764
762
|
readonly type: import("vue").PropType<"small" | "medium" | "large">;
|
|
765
763
|
readonly default: "medium";
|
|
@@ -1035,7 +1033,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1035
1033
|
addTabFixed: import("vue").Ref<boolean>;
|
|
1036
1034
|
tabWrapperStyle: import("vue").ComputedRef<{
|
|
1037
1035
|
display: string;
|
|
1038
|
-
justifyContent: "
|
|
1036
|
+
justifyContent: "start" | "end" | "space-around" | "space-between" | "space-evenly" | "center";
|
|
1039
1037
|
} | undefined>;
|
|
1040
1038
|
handleNavResize: import("lodash").DebouncedFunc<(entry: ResizeObserverEntry) => void>;
|
|
1041
1039
|
mergedSize: import("vue").ComputedRef<"small" | "medium" | "large">;
|
|
@@ -1091,7 +1089,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1091
1089
|
readonly default: "bar";
|
|
1092
1090
|
};
|
|
1093
1091
|
readonly closable: BooleanConstructor;
|
|
1094
|
-
readonly justifyContent: import("vue").PropType<"
|
|
1092
|
+
readonly justifyContent: import("vue").PropType<"start" | "end" | "space-around" | "space-between" | "space-evenly" | "center">;
|
|
1095
1093
|
readonly size: {
|
|
1096
1094
|
readonly type: import("vue").PropType<"small" | "medium" | "large">;
|
|
1097
1095
|
readonly default: "medium";
|
|
@@ -1646,6 +1644,9 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1646
1644
|
type: NumberConstructor;
|
|
1647
1645
|
default: number;
|
|
1648
1646
|
};
|
|
1647
|
+
businessFormatter: {
|
|
1648
|
+
type: import("vue").PropType<import("./src/types").FormBusinessFormatter>;
|
|
1649
|
+
};
|
|
1649
1650
|
schema: {
|
|
1650
1651
|
type: import("vue").PropType<import("@formily/json-schema").Stringify<{
|
|
1651
1652
|
[key: symbol]: any;
|
|
@@ -1709,9 +1710,6 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1709
1710
|
type: import("vue").PropType<Record<string, import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | import("vue").FunctionalComponent<{}, {}>>>;
|
|
1710
1711
|
default: () => {};
|
|
1711
1712
|
};
|
|
1712
|
-
businessFilter: {
|
|
1713
|
-
type: import("vue").PropType<import("./src/types").FormBusinessFilter>;
|
|
1714
|
-
};
|
|
1715
1713
|
scope: {
|
|
1716
1714
|
type: import("vue").PropType<import("../../../es/src/types").AnyObject>;
|
|
1717
1715
|
default: () => {};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, watch, openBlock, createBlock, unref, withCtx, createElementBlock, createVNode, isRef, Fragment, renderList, createCommentVNode, createElementVNode, normalizeStyle, renderSlot, toDisplayString, nextTick } from 'vue';
|
|
2
2
|
import { createForm, onFieldValueChange, isField } from '@formily/core';
|
|
3
3
|
import { FormProvider, FormConsumer } from '@formily/vue';
|
|
4
|
-
import {
|
|
4
|
+
import { isObject } from '@vue/shared';
|
|
5
|
+
import { cloneDeep, isArray } from 'lodash-es';
|
|
5
6
|
import { NForm, NTabs, NTabPane, NConfigProvider } from 'naive-ui';
|
|
6
7
|
import { FormItemLineBarDepKeyPrepend } from '../../../packages/form-render/src/constants';
|
|
7
8
|
import { useFormRenderLifeCycle } from '../../../packages/form-render/src/hooks/useFormRenderLifeCycle';
|
|
8
9
|
import { arrayed, queryDecorator, queryInput, getParentLinebar } from '../../../packages/form-render/src/utils';
|
|
9
10
|
import { useNuiThemeOverrides } from '../../../packages/form-table/src/hooks/useNuiThemeOverrides';
|
|
10
11
|
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
|
|
11
|
-
import { useFormContext } from './hooks/useFormContext.js';
|
|
12
12
|
import { useInitialData } from './hooks/useInitialData.js';
|
|
13
|
+
import { useFormContext } from './hooks/useFormContext.js';
|
|
13
14
|
import { useFieldListAdaptor } from './hooks/useFieldListAdaptor.js';
|
|
14
15
|
import { useFieldVisitor } from './hooks/useFieldVisitor.js';
|
|
15
16
|
import { useAnchor } from './hooks/useAnchor.js';
|
|
@@ -29,12 +30,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
29
30
|
maxHeight: { type: [Number, String], default: "" },
|
|
30
31
|
anchor: { type: Boolean, default: false },
|
|
31
32
|
parallelism: { type: Number, default: 3 },
|
|
33
|
+
businessFormatter: { type: Function },
|
|
32
34
|
schema: { type: Object },
|
|
33
35
|
components: {
|
|
34
36
|
type: Object,
|
|
35
37
|
default: () => ({})
|
|
36
38
|
},
|
|
37
|
-
businessFilter: { type: Function },
|
|
38
39
|
scope: { type: Object, default: () => ({}) },
|
|
39
40
|
annotation: { type: Object },
|
|
40
41
|
consumer: { type: Boolean, default: false },
|
|
@@ -48,24 +49,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
48
49
|
const props = __props;
|
|
49
50
|
const { nuiThemeOverrides } = useNuiThemeOverrides();
|
|
50
51
|
useFormRenderLifeCycle(props).callLifeCycle("onSetup");
|
|
51
|
-
const { SchemaField, businessCollector, formItemDepsCollector, changeContextCollector, formUUID } = useFormContext(props);
|
|
52
52
|
const formModel = createForm({
|
|
53
53
|
initialValues: useInitialData().assignInitialData(props.initialData, props.fieldList),
|
|
54
54
|
effects() {
|
|
55
|
-
onFieldValueChange("*", (field) => {
|
|
55
|
+
onFieldValueChange("*", async (field) => {
|
|
56
56
|
const fieldKey = field.props.name.toString();
|
|
57
|
+
businessCollector.trigger(fieldKey);
|
|
58
|
+
formItemDepsCollector.trigger(fieldKey);
|
|
57
59
|
emit("formChange", {
|
|
58
60
|
fieldInstance: field,
|
|
59
61
|
fieldKey,
|
|
60
62
|
fieldName: field.title,
|
|
61
63
|
value: field.value,
|
|
62
|
-
context: changeContextCollector.getContext(fieldKey)
|
|
64
|
+
context: await changeContextCollector.getContext(fieldKey)
|
|
63
65
|
});
|
|
64
|
-
businessCollector.trigger(formModel, fieldKey, field.value);
|
|
65
|
-
formItemDepsCollector.trigger(fieldKey);
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
|
+
const { SchemaField, businessCollector, formItemDepsCollector, changeContextCollector, formUUID } = useFormContext(props, formModel);
|
|
69
70
|
const scrollbarRef = ref();
|
|
70
71
|
const { schemaAdaptor } = useFieldListAdaptor(businessCollector, formUUID);
|
|
71
72
|
const parsedSchema = computed(() => {
|
|
@@ -102,6 +103,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
102
103
|
return Promise.reject(Array.isArray(err) ? err.reduce(errInfoNormalize, []) : err);
|
|
103
104
|
});
|
|
104
105
|
function errInfoNormalize(result, error) {
|
|
106
|
+
if (!isObject(error))
|
|
107
|
+
return result;
|
|
105
108
|
let hasChildMessage = false;
|
|
106
109
|
if (isArray(error.messages)) {
|
|
107
110
|
error.messages.forEach((message) => {
|