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.
Files changed (107) hide show
  1. package/es/packages/big-table/index.d.ts +652 -430
  2. package/es/packages/big-table/src/BigTable.vue.d.ts +655 -457
  3. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +106 -112
  4. package/es/packages/big-table/src/bigTableProps.d.ts +4 -0
  5. package/es/packages/big-table/src/bigTableProps.js +2 -1
  6. package/es/packages/big-table/src/bigTableState.d.ts +2 -0
  7. package/es/packages/big-table/src/bigTableState.js +3 -1
  8. package/es/packages/big-table/src/components/edit-form/edit-time.js +1 -1
  9. package/es/packages/big-table/src/hooks/index.d.ts +9 -0
  10. package/es/packages/big-table/src/hooks/index.js +9 -0
  11. package/es/packages/big-table/src/hooks/useAnchor.d.ts +7 -0
  12. package/es/packages/big-table/src/hooks/useAnchor.js +49 -0
  13. package/es/packages/big-table/src/hooks/useColumnConfigAdaptor.js +24 -8
  14. package/es/packages/big-table/src/hooks/useEdit.js +1 -1
  15. package/es/packages/big-table/src/hooks/useEvent.d.ts +1 -1
  16. package/es/packages/big-table/src/hooks/useEvent.js +3 -2
  17. package/es/packages/big-table/style/index.css +1 -2
  18. package/es/packages/button-print/index.d.ts +7 -4
  19. package/es/packages/button-print/src/ButtonPrint.vue.d.ts +7 -4
  20. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +5 -16
  21. package/es/packages/button-print/src/components/IdentityVerification.js +5 -7
  22. package/es/packages/button-print/src/components/IdentityVerification.vue.d.ts +6 -3
  23. package/es/packages/drag-layout/index.d.ts +2 -2
  24. package/es/packages/drag-layout/src/DragLayout.vue.d.ts +2 -2
  25. package/es/packages/fabric-chart/src/FabricChart.js +3 -2
  26. package/es/packages/fabric-chart/src/hooks/constant.js +5 -5
  27. package/es/packages/fabric-chart/src/hooks/useCenter.js +20 -23
  28. package/es/packages/fabric-chart/src/hooks/useDraw.js +11 -4
  29. package/es/packages/fabric-chart/src/hooks/useEvent.js +11 -3
  30. package/es/packages/fabric-chart/src/hooks/useLeft.js +8 -4
  31. package/es/packages/fabric-chart/src/hooks/useOther.js +63 -13
  32. package/es/packages/fabric-chart/src/hooks/useTop.js +5 -8
  33. package/es/packages/field-set/index.d.ts +1 -1
  34. package/es/packages/field-set/src/FieldSet.vue.d.ts +1 -1
  35. package/es/packages/form-config/index.d.ts +110 -3367
  36. package/es/packages/form-config/src/FormConfig.js +42 -34
  37. package/es/packages/form-config/src/FormConfig.vue.d.ts +147 -3404
  38. package/es/packages/form-config/src/components/FormConfigCreator.js +13 -11
  39. package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +23 -22
  40. package/es/packages/form-config/src/components/FormConfigEdit.js +2 -2
  41. package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +75 -49
  42. package/es/packages/form-config/src/constants/index.d.ts +58 -24
  43. package/es/packages/form-config/src/constants/index.js +52 -23
  44. package/es/packages/form-config/src/hooks/index.d.ts +1 -0
  45. package/es/packages/form-config/src/hooks/index.js +1 -0
  46. package/es/packages/form-config/src/hooks/useConfigurationField.d.ts +2 -1
  47. package/es/packages/form-config/src/hooks/useConfigurationField.js +29 -80
  48. package/es/packages/form-config/src/hooks/usePresetRenderer.d.ts +2 -3
  49. package/es/packages/form-config/src/hooks/usePresetRenderer.js +16 -19
  50. package/es/packages/form-config/src/hooks/useSortable.js +1 -1
  51. package/es/packages/form-config/src/types/index.d.ts +22 -4
  52. package/es/packages/form-config/src/utils/index.d.ts +2 -0
  53. package/es/packages/form-config/src/utils/index.js +15 -0
  54. package/es/packages/form-config/style/index.css +27 -3
  55. package/es/packages/form-render/index.d.ts +13 -15
  56. package/es/packages/form-render/src/FormRender.js +11 -8
  57. package/es/packages/form-render/src/FormRender.vue.d.ts +14 -16
  58. package/es/packages/form-render/src/components/renderer/cascader.d.ts +2 -14
  59. package/es/packages/form-render/src/components/renderer/cascader.js +3 -3
  60. package/es/packages/form-render/src/components/renderer/checkbox.js +1 -1
  61. package/es/packages/form-render/src/components/renderer/combination/index.js +2 -1
  62. package/es/packages/form-render/src/components/renderer/complex.js +1 -1
  63. package/es/packages/form-render/src/components/renderer/date.d.ts +20 -4
  64. package/es/packages/form-render/src/components/renderer/date.js +36 -20
  65. package/es/packages/form-render/src/components/renderer/input.js +2 -1
  66. package/es/packages/form-render/src/components/renderer/inputNumber.js +2 -1
  67. package/es/packages/form-render/src/components/renderer/linebar.js +1 -4
  68. package/es/packages/form-render/src/components/renderer/radio.js +1 -1
  69. package/es/packages/form-render/src/components/renderer/select.d.ts +1 -10
  70. package/es/packages/form-render/src/components/renderer/select.js +26 -17
  71. package/es/packages/form-render/src/components/renderer/slider.d.ts +8 -344
  72. package/es/packages/form-render/src/components/renderer/slider.js +24 -2
  73. package/es/packages/form-render/src/components/renderer/switch.js +1 -1
  74. package/es/packages/form-render/src/components/renderer/textarea.js +1 -1
  75. package/es/packages/form-render/src/hooks/useAnchor.js +7 -4
  76. package/es/packages/form-render/src/hooks/useBusinessBinding.d.ts +15 -9
  77. package/es/packages/form-render/src/hooks/useBusinessBinding.js +62 -58
  78. package/es/packages/form-render/src/hooks/useChangeContext.d.ts +4 -2
  79. package/es/packages/form-render/src/hooks/useChangeContext.js +4 -7
  80. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +17 -7
  81. package/es/packages/form-render/src/hooks/useFormContext.d.ts +2 -1
  82. package/es/packages/form-render/src/hooks/useFormContext.js +2 -2
  83. package/es/packages/form-render/src/hooks/useFormValidator.js +13 -3
  84. package/es/packages/form-render/src/hooks/useInitialData.d.ts +1 -1
  85. package/es/packages/form-render/src/hooks/useInitialData.js +9 -4
  86. package/es/packages/form-render/src/hooks/useTypeNormalize.js +3 -2
  87. package/es/packages/form-render/src/types/fieldItem.d.ts +11 -12
  88. package/es/packages/form-render/src/types/index.d.ts +7 -8
  89. package/es/packages/form-render/src/utils/business.d.ts +12 -0
  90. package/es/packages/form-render/src/utils/business.js +78 -0
  91. package/es/packages/form-render/src/utils/dom.d.ts +6 -0
  92. package/es/packages/form-render/src/utils/dom.js +14 -0
  93. package/es/packages/form-render/src/utils/index.d.ts +6 -26
  94. package/es/packages/form-render/src/utils/index.js +9 -138
  95. package/es/packages/form-render/src/utils/schema.d.ts +16 -0
  96. package/es/packages/form-render/src/utils/schema.js +94 -0
  97. package/es/packages/index.css +28 -5
  98. package/es/packages/scale-view/src/hooks/use-component.d.ts +7 -7
  99. package/es/packages/select-label/index.d.ts +10 -10
  100. package/es/packages/select-label/src/LabelFormContent.vue.d.ts +3 -3
  101. package/es/packages/select-label/src/SelectLabel.vue.d.ts +7 -7
  102. package/es/packages/shortcut-setter/index.d.ts +18 -20
  103. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +18 -20
  104. package/es/packages/time-line/index.d.ts +2 -2
  105. package/es/packages/time-line/src/TimeLine.vue.d.ts +2 -2
  106. package/global.d.ts +8 -8
  107. package/package.json +1 -1
@@ -1,28 +1,57 @@
1
- const WidgetTextMap = {
2
- INPUT: "\u8F93\u5165\u6846",
3
- SELECT: "\u4E0B\u62C9\u6846",
4
- TEXTAREA: "\u6587\u672C\u57DF",
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["ALIAS"] = "alias";
16
- EditAbleField2["TIP"] = "tip";
17
- EditAbleField2["DEFAULT_VAL"] = "default_val";
18
- EditAbleField2["ELEM_WIDTH"] = "elem_width";
19
- EditAbleField2["PLACEHOLDER"] = "placeholder";
20
- EditAbleField2["IS_SHOW"] = "is_show";
21
- EditAbleField2["IS_NOT_FOLD"] = "is_not_fold";
22
- EditAbleField2["IS_NULL"] = "is_null";
23
- EditAbleField2["IS_EDIT"] = "is_edit";
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,2 +1,3 @@
1
1
  export * from './usePresetRenderer';
2
2
  export * from './useSortable';
3
+ export * from './useConfigurationField';
@@ -1,2 +1,3 @@
1
1
  export { usePresetRenderer } from './usePresetRenderer.js';
2
2
  export { useSortable } from './useSortable.js';
3
+ export { useConfigurationField } from './useConfigurationField.js';
@@ -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: FieldItem) => 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.ALIAS, { alias: "\u540D\u79F0", elem_width: 12, is_null: "0", val_key: "alias", html_type: "INPUT" }],
6
- [EditAbleField.TIP, { alias: "\u95EE\u53F7\u63D0\u793A", elem_width: 12, val_key: "tip", html_type: "INPUT" }],
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.DEFAULT_VAL,
9
- { alias: "\u9ED8\u8BA4\u503C", val_key: "default_val", elem_width: 12, html_type: "INPUT", validate: { max_length: 20 } }
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.ELEM_WIDTH,
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.PLACEHOLDER,
33
- { alias: "\u8BF4\u660E\u6587\u672C", elem_width: 12, val_key: "placeholder", html_type: "INPUT", validate: { max_length: 30 } }
17
+ EditAbleField.DEFAULT_EXPAND,
18
+ { alias: "\u662F\u5426\u9ED8\u8BA4\u5C55\u5F00", html_type: "SWITCH", elem_width: 12, ...isShowOptionConfig() }
34
19
  ],
35
- [
36
- EditAbleField.IS_SHOW,
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) => fieldMap.get(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
- ["LINEBAR", [EditAbleField.ALIAS, EditAbleField.ELEM_WIDTH, EditAbleField.IS_SHOW, EditAbleField.IS_NOT_FOLD]],
86
- ...["LINE_BREAKS", "COMPLEX", "COMBINATION"].map((key) => [key, [EditAbleField.ALIAS, EditAbleField.ELEM_WIDTH]])
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.ALIAS,
90
- EditAbleField.DEFAULT_VAL,
91
- EditAbleField.ELEM_WIDTH,
92
- EditAbleField.PLACEHOLDER,
93
- EditAbleField.TIP,
94
- EditAbleField.IS_EDIT,
95
- EditAbleField.IS_NULL
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.html_type) || defaultItems;
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 { FieldItem } from '../../../../../es/packages/form-render';
2
- import { FormConfigTextFormatter } from '../types';
1
+ import { FormConfigItem, FormConfigTextFormatter } from '../types';
3
2
  export declare function usePresetRenderer(textFormatter: FormConfigTextFormatter): {
4
- getRenderer: (fieldItem: FieldItem) => import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | import("vue").FunctionalComponent<{}, {}>;
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.is_null === "0",
23
- "is-disabled": fieldItem.is_edit === "0"
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
- return textFormatter(fieldItem, `${fieldItem.alias}(${WidgetTextMap[fieldItem.html_type] || "\u63A7\u4EF6"})`);
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 `form-config__renderer--complex form-config__renderer--complex--${fieldFor("display") || "grid"}`;
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("elem_width"),
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.elem_width
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("html_type") === "COMBINATION" ? fieldFor("children") : fieldFor("properties");
69
+ return fieldFor("children");
69
70
  },
70
71
  set(v) {
71
- if (fieldFor("html_type") === "COMBINATION") {
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("val_key"),
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.html_type;
101
+ return matcher === fieldItem.type;
105
102
  if (isArray(matcher))
106
- return matcher.includes(fieldItem.html_type);
103
+ return matcher.includes(fieldItem.type);
107
104
  if (isFunction(matcher))
108
- return matcher(fieldItem.html_type);
109
- return matcher.test(fieldItem.html_type);
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": "val_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: FieldItem, parsedText: string): string;
29
+ (fieldItem: FormConfigItem, parsedText: string): string;
13
30
  }
14
31
  export interface FormConfigExpose {
15
- loadData(payload: Record<'fieldList' | 'materialList', FieldItem[]>): void;
16
- getData(): Record<'fieldList' | 'materialList', FieldItem[]>;
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,2 @@
1
+ import { FormConfigWidth } from '../../../../../es/packages/form-config';
2
+ export declare function layoutWidthEnum2Column(layoutWidthEnum: FormConfigWidth): number;
@@ -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: 8px;
19
- min-height: 400px;
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
- width: 220px;
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<"center" | "start" | "end" | "space-around" | "space-between" | "space-evenly">;
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: "center" | "start" | "end" | "space-around" | "space-between" | "space-evenly";
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<"center" | "start" | "end" | "space-around" | "space-between" | "space-evenly">;
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 { cloneDeep, isArray, isObject } from 'lodash-es';
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) => {