cnhis-design-vue 3.1.16-beta.8 → 3.1.17-beta.0

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 (81) hide show
  1. package/es/packages/big-table/index.d.ts +1 -1
  2. package/es/packages/big-table/src/BigTable.vue.d.ts +3 -19
  3. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +6 -4
  4. package/es/packages/big-table/src/components/edit-form/edit-date.js +13 -3
  5. package/es/packages/big-table/src/components/edit-form/edit-time.js +1 -0
  6. package/es/packages/big-table/src/hooks/useAnchor.d.ts +1 -1
  7. package/es/packages/big-table/src/hooks/useAnchor.js +20 -12
  8. package/es/packages/big-table/src/hooks/useSeparateRow.js +5 -2
  9. package/es/packages/button-print/index.d.ts +4 -1
  10. package/es/packages/button-print/src/ButtonPrint.vue.d.ts +4 -1
  11. package/es/packages/button-print/src/components/IdentityVerification.js +5 -7
  12. package/es/packages/button-print/src/components/IdentityVerification.vue.d.ts +4 -1
  13. package/es/packages/fabric-chart/src/FabricChart.js +1 -1
  14. package/es/packages/fabric-chart/src/components/PopupTip.js +2 -2
  15. package/es/packages/fabric-chart/src/hooks/constant.js +1 -1
  16. package/es/packages/fabric-chart/src/hooks/useCenter.js +11 -2
  17. package/es/packages/fabric-chart/src/hooks/useOther.js +63 -13
  18. package/es/packages/form-config/index.d.ts +90 -3338
  19. package/es/packages/form-config/src/FormConfig.js +42 -34
  20. package/es/packages/form-config/src/FormConfig.vue.d.ts +134 -3382
  21. package/es/packages/form-config/src/components/FormConfigCreator.js +13 -11
  22. package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +16 -11
  23. package/es/packages/form-config/src/components/FormConfigEdit.js +1 -1
  24. package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +60 -29
  25. package/es/packages/form-config/src/constants/index.d.ts +21 -21
  26. package/es/packages/form-config/src/constants/index.js +27 -36
  27. package/es/packages/form-config/src/hooks/useConfigurationField.d.ts +2 -1
  28. package/es/packages/form-config/src/hooks/useConfigurationField.js +28 -42
  29. package/es/packages/form-config/src/hooks/usePresetRenderer.d.ts +2 -3
  30. package/es/packages/form-config/src/hooks/usePresetRenderer.js +16 -19
  31. package/es/packages/form-config/src/hooks/useSortable.js +1 -1
  32. package/es/packages/form-config/src/types/index.d.ts +22 -4
  33. package/es/packages/form-config/src/utils/index.d.ts +2 -0
  34. package/es/packages/form-config/src/utils/index.js +15 -0
  35. package/es/packages/form-config/style/index.css +27 -3
  36. package/es/packages/form-render/index.d.ts +6 -4
  37. package/es/packages/form-render/index.js +0 -1
  38. package/es/packages/form-render/src/FormRender.js +8 -9
  39. package/es/packages/form-render/src/FormRender.vue.d.ts +6 -4
  40. package/es/packages/form-render/src/components/renderer/{combination/index.d.ts → combination.d.ts} +3 -3
  41. package/es/packages/form-render/src/components/renderer/combination.js +92 -0
  42. package/es/packages/form-render/src/components/renderer/date.js +12 -4
  43. package/es/packages/form-render/src/components/renderer/formItem.js +12 -5
  44. package/es/packages/form-render/src/components/renderer/index.d.ts +1 -0
  45. package/es/packages/form-render/src/components/renderer/index.js +2 -1
  46. package/es/packages/form-render/src/components/renderer/inputGroup.js +1 -1
  47. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.d.ts +0 -0
  48. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.js +0 -0
  49. package/es/packages/form-render/src/components/renderer/jsonCombination/index.d.ts +44 -0
  50. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/index.js +29 -14
  51. package/es/packages/form-render/src/components/renderer/select.js +11 -8
  52. package/es/packages/form-render/src/constants/index.d.ts +2 -2
  53. package/es/packages/form-render/src/hooks/index.d.ts +0 -1
  54. package/es/packages/form-render/src/hooks/index.js +0 -1
  55. package/es/packages/form-render/src/hooks/useAnchor.d.ts +3 -3
  56. package/es/packages/form-render/src/hooks/useAsyncQueue.d.ts +2 -2
  57. package/es/packages/form-render/src/hooks/useFieldListAdaptor.d.ts +1 -1
  58. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +12 -5
  59. package/es/packages/form-render/src/hooks/useFieldVisitor.js +6 -5
  60. package/es/packages/form-render/src/hooks/useFormRenderLifeCycle.d.ts +4 -4
  61. package/es/packages/form-render/src/hooks/useFormRequest.d.ts +2 -2
  62. package/es/packages/form-render/src/hooks/useTypeNormalize.js +2 -1
  63. package/es/packages/form-render/src/types/fieldItem.d.ts +4 -0
  64. package/es/packages/form-render/src/types/index.d.ts +4 -4
  65. package/es/packages/form-render/src/utils/dom.d.ts +2 -2
  66. package/es/packages/form-render/src/utils/index.js +3 -2
  67. package/es/packages/form-render/src/utils/schema.d.ts +62 -2
  68. package/es/packages/form-render/src/utils/schema.js +5 -2
  69. package/es/packages/form-render/style/index.css +11 -8
  70. package/es/packages/index.css +38 -11
  71. package/es/packages/index.js +0 -1
  72. package/es/packages/shortcut-provider/src/hooks/useShortcuts.js +1 -0
  73. package/es/packages/shortcut-setter/index.d.ts +7 -4
  74. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +7 -4
  75. package/es/src/types/index.d.ts +2 -2
  76. package/es/src/utils/index.d.ts +1 -0
  77. package/es/src/utils/index.js +11 -1
  78. package/global.d.ts +8 -8
  79. package/package.json +4 -4
  80. package/es/packages/form-render/src/hooks/useInitialData.d.ts +0 -5
  81. package/es/packages/form-render/src/hooks/useInitialData.js +0 -16
@@ -2,62 +2,48 @@ import { EditAbleField, widgetWidthOptionConfig, isShowOptionConfig, isNotFoldOp
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
- ...widgetWidthOptionConfig()
20
- }
12
+ EditAbleField.LAYOUT_WIDTH_ENUM,
13
+ { alias: "\u5BBD\u5EA6", fieldType: "number", html_type: "SELECT", elem_width: 12, ...widgetWidthOptionConfig() }
21
14
  ],
15
+ [EditAbleField.DESC, { alias: "\u8BF4\u660E\u6587\u672C", elem_width: 12, html_type: "INPUT", validate: { max_length: 30 } }],
22
16
  [
23
- EditAbleField.PLACEHOLDER,
24
- { 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() }
25
19
  ],
26
- [
27
- EditAbleField.IS_SHOW,
28
- { val_key: "is_show", alias: "\u662F\u5426\u9ED8\u8BA4\u5C55\u5F00", html_type: "SWITCH", elem_width: 12, ...isShowOptionConfig() }
29
- ],
30
- [
31
- EditAbleField.IS_NOT_FOLD,
32
- { val_key: "is_not_fold", alias: "\u662F\u5426\u53EF\u6298\u53E0", html_type: "SWITCH", elem_width: 12, ...isNotFoldOptionConfig() }
33
- ],
34
- [
35
- EditAbleField.IS_EDIT,
36
- { val_key: "is_edit", alias: "\u662F\u5426\u53EF\u7F16\u8F91", html_type: "SWITCH", elem_width: 12, ...isEditOptionConfig() }
37
- ],
38
- [
39
- EditAbleField.IS_NULL,
40
- { val_key: "is_null", alias: "\u662F\u5426\u5FC5\u586B", html_type: "SWITCH", elem_width: 12, ...isNullOptionConfig() }
41
- ]
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() }]
42
23
  ]);
43
24
  function generateFieldListByKeys(keyList) {
44
- return keyList.map((key) => fieldMap.get(key));
25
+ return keyList.map((key) => {
26
+ return { ...fieldMap.get(key), val_key: key };
27
+ });
45
28
  }
46
29
  function generateFieldListByFieldItem(fieldItem) {
47
30
  const htmlMap = new Map([
48
- ["LINEBAR", [EditAbleField.ALIAS, EditAbleField.ELEM_WIDTH, EditAbleField.IS_SHOW, EditAbleField.IS_NOT_FOLD]],
49
- ...["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]])
50
36
  ]);
51
37
  const defaultItems = [
52
- EditAbleField.ALIAS,
53
- EditAbleField.DEFAULT_VAL,
54
- EditAbleField.ELEM_WIDTH,
55
- EditAbleField.PLACEHOLDER,
56
- EditAbleField.TIP,
57
- EditAbleField.IS_EDIT,
58
- 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
59
45
  ];
60
- const keys = htmlMap.get(fieldItem.html_type) || defaultItems;
46
+ const keys = htmlMap.get(fieldItem.type) || defaultItems;
61
47
  return generateFieldListByKeys(keys);
62
48
  }
63
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.get(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;
@@ -112,7 +112,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
112
112
  lifeCycle: {
113
113
  type: import("vue").PropType<Partial<{
114
114
  onSetup(): void;
115
- beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").WithUndefined<import("../../../es/src/types").AnyObject>;
115
+ beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").UndefinedAble<import("../../../es/src/types").AnyObject>;
116
116
  afterRequest(fieldKey: string, payload?: any): import("../../../es/src/types").AnyObject[];
117
117
  }>>;
118
118
  };
@@ -227,7 +227,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
227
227
  lifeCycle: {
228
228
  type: import("vue").PropType<Partial<{
229
229
  onSetup(): void;
230
- beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").WithUndefined<import("../../../es/src/types").AnyObject>;
230
+ beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").UndefinedAble<import("../../../es/src/types").AnyObject>;
231
231
  afterRequest(fieldKey: string, payload?: any): import("../../../es/src/types").AnyObject[];
232
232
  }>>;
233
233
  };
@@ -236,7 +236,9 @@ 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
+ formModel: import("@formily/core").Form<{
240
+ [x: string]: any;
241
+ }>;
240
242
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
241
243
  businessCollector: import("./src/hooks").BusinessCollector;
242
244
  formItemDepsCollector: import("./src/hooks").FormItemDepsCollector;
@@ -1727,7 +1729,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
1727
1729
  lifeCycle: {
1728
1730
  type: import("vue").PropType<Partial<{
1729
1731
  onSetup(): void;
1730
- beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").WithUndefined<import("../../../es/src/types").AnyObject>;
1732
+ beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").UndefinedAble<import("../../../es/src/types").AnyObject>;
1731
1733
  afterRequest(fieldKey: string, payload?: any): import("../../../es/src/types").AnyObject[];
1732
1734
  }>>;
1733
1735
  };
@@ -12,7 +12,6 @@ export { useFormValidator } from './src/hooks/useFormValidator.js';
12
12
  export { BusinessCollector, useBusinessBinding } from './src/hooks/useBusinessBinding.js';
13
13
  export { ContextCollector, useChangeContext } from './src/hooks/useChangeContext.js';
14
14
  export { FormItemDepsCollector, useFormItemDeps } from './src/hooks/useFormItemDeps.js';
15
- export { useInitialData } from './src/hooks/useInitialData.js';
16
15
  export { useAnchor } from './src/hooks/useAnchor.js';
17
16
  export { useFormContext } from './src/hooks/useFormContext.js';
18
17
 
@@ -6,10 +6,9 @@ import { cloneDeep, isArray } from 'lodash-es';
6
6
  import { NForm, NTabs, NTabPane, NConfigProvider } from 'naive-ui';
7
7
  import { FormItemLineBarDepKeyPrepend } from '../../../packages/form-render/src/constants';
8
8
  import { useFormRenderLifeCycle } from '../../../packages/form-render/src/hooks/useFormRenderLifeCycle';
9
- import { arrayed, queryDecorator, queryInput, getParentLinebar } from '../../../packages/form-render/src/utils';
9
+ import { createObjSchema, arrayed, queryDecorator, queryInput, getParentLinebar } from '../../../packages/form-render/src/utils';
10
10
  import { useNuiThemeOverrides } from '../../../packages/form-table/src/hooks/useNuiThemeOverrides';
11
11
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
12
- import { useInitialData } from './hooks/useInitialData.js';
13
12
  import { useFormContext } from './hooks/useFormContext.js';
14
13
  import { useFieldListAdaptor } from './hooks/useFieldListAdaptor.js';
15
14
  import { useFieldVisitor } from './hooks/useFieldVisitor.js';
@@ -26,7 +25,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26
25
  fieldList: { type: Array },
27
26
  initialData: { type: Object, default: () => ({}) },
28
27
  fieldVisitor: { type: Object },
29
- column: { type: Number, default: 12 },
28
+ column: { type: Number, default: 24 },
30
29
  maxHeight: { type: [Number, String], default: "" },
31
30
  anchor: { type: Boolean, default: false },
32
31
  parallelism: { type: Number, default: 3 },
@@ -50,10 +49,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
50
49
  const { nuiThemeOverrides } = useNuiThemeOverrides();
51
50
  useFormRenderLifeCycle(props).callLifeCycle("onSetup");
52
51
  const formModel = createForm({
53
- initialValues: useInitialData().assignInitialData(props.initialData, props.fieldList),
52
+ initialValues: props.initialData,
54
53
  effects() {
55
54
  onFieldValueChange("*", async (field) => {
56
55
  const fieldKey = field.props.name.toString();
56
+ businessCollector.trigger(fieldKey);
57
+ formItemDepsCollector.trigger(fieldKey);
57
58
  emit("formChange", {
58
59
  fieldInstance: field,
59
60
  fieldKey,
@@ -61,23 +62,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
61
62
  value: field.value,
62
63
  context: await changeContextCollector.getContext(fieldKey)
63
64
  });
64
- businessCollector.trigger(fieldKey);
65
- formItemDepsCollector.trigger(fieldKey);
66
65
  });
67
66
  }
68
67
  });
69
68
  const { SchemaField, businessCollector, formItemDepsCollector, changeContextCollector, formUUID } = useFormContext(props, formModel);
70
69
  const scrollbarRef = ref();
71
- const { schemaAdaptor } = useFieldListAdaptor(businessCollector, formUUID);
70
+ const { schemaAdaptor } = useFieldListAdaptor(businessCollector);
72
71
  const parsedSchema = computed(() => {
73
72
  if (props.schema) {
74
73
  return props.schema;
75
74
  }
76
75
  if (props.fieldList) {
77
76
  const _fieldList = useFieldVisitor().traverse(cloneDeep(props.fieldList), props.fieldVisitor);
78
- return { type: "object", properties: schemaAdaptor(_fieldList) };
77
+ return createObjSchema(schemaAdaptor(_fieldList));
79
78
  }
80
- return { type: "object", properties: {} };
79
+ return createObjSchema({});
81
80
  });
82
81
  const { currentAnchor, generateAnchorList, anchorIdList, formHeight, onScroll } = useAnchor(props, scrollbarRef, formItemDepsCollector);
83
82
  watch(parsedSchema, generateAnchorList, { immediate: true });
@@ -112,7 +112,7 @@ declare const _default: import("vue").DefineComponent<{
112
112
  lifeCycle: {
113
113
  type: PropType<Partial<{
114
114
  onSetup(): void;
115
- beforeRequest(fieldKey: string, params?: AnyObject | undefined): void | import("../../../../es/src/types").WithUndefined<AnyObject>;
115
+ beforeRequest(fieldKey: string, params?: AnyObject | undefined): void | import("../../../../es/src/types").UndefinedAble<AnyObject>;
116
116
  afterRequest(fieldKey: string, payload?: any): AnyObject[];
117
117
  }>>;
118
118
  };
@@ -227,7 +227,7 @@ declare const _default: import("vue").DefineComponent<{
227
227
  lifeCycle: {
228
228
  type: PropType<Partial<{
229
229
  onSetup(): void;
230
- beforeRequest(fieldKey: string, params?: AnyObject | undefined): void | import("../../../../es/src/types").WithUndefined<AnyObject>;
230
+ beforeRequest(fieldKey: string, params?: AnyObject | undefined): void | import("../../../../es/src/types").UndefinedAble<AnyObject>;
231
231
  afterRequest(fieldKey: string, payload?: any): AnyObject[];
232
232
  }>>;
233
233
  };
@@ -236,7 +236,9 @@ declare const _default: 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
+ formModel: import("@formily/core").Form<{
240
+ [x: string]: any;
241
+ }>;
240
242
  SchemaField: Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
241
243
  businessCollector: import("./hooks").BusinessCollector;
242
244
  formItemDepsCollector: import("./hooks").FormItemDepsCollector;
@@ -1727,7 +1729,7 @@ declare const _default: import("vue").DefineComponent<{
1727
1729
  lifeCycle: {
1728
1730
  type: PropType<Partial<{
1729
1731
  onSetup(): void;
1730
- beforeRequest(fieldKey: string, params?: AnyObject | undefined): void | import("../../../../es/src/types").WithUndefined<AnyObject>;
1732
+ beforeRequest(fieldKey: string, params?: AnyObject | undefined): void | import("../../../../es/src/types").UndefinedAble<AnyObject>;
1731
1733
  afterRequest(fieldKey: string, payload?: any): AnyObject[];
1732
1734
  }>>;
1733
1735
  };
@@ -1,4 +1,4 @@
1
- import { FieldItem } from '../../../../../../../es/packages/form-render';
1
+ import { FieldItem } from '../../../../../../es/packages/form-render';
2
2
  import { PropType } from 'vue';
3
3
  export declare const COMBINATION: import("vue").DefineComponent<{
4
4
  title: {
@@ -6,7 +6,7 @@ export declare const COMBINATION: import("vue").DefineComponent<{
6
6
  default: string;
7
7
  };
8
8
  value: {
9
- type: StringConstructor;
9
+ type: ArrayConstructor;
10
10
  };
11
11
  maxGroupNum: {
12
12
  type: NumberConstructor;
@@ -24,7 +24,7 @@ export declare const COMBINATION: import("vue").DefineComponent<{
24
24
  default: string;
25
25
  };
26
26
  value: {
27
- type: StringConstructor;
27
+ type: ArrayConstructor;
28
28
  };
29
29
  maxGroupNum: {
30
30
  type: NumberConstructor;
@@ -0,0 +1,92 @@
1
+ import { defineComponent, ref, computed, inject, createVNode } from 'vue';
2
+ import { isNumber } from 'lodash-es';
3
+ import { useFieldListAdaptor } from '../../../../../packages/form-render';
4
+ import { useField, RecursionField, connect } from '@formily/vue';
5
+ import { NButton, NIcon } from 'naive-ui';
6
+ import { InjectionBusinessCollector } from '../../../../../packages/form-render/src/constants';
7
+ import { createObjSchema } from '../../../../../packages/form-render/src/utils';
8
+ import { AddCircleOutline, RemoveCircle } from '@vicons/ionicons5';
9
+
10
+ const script = defineComponent({
11
+ name: "FormCombination",
12
+ props: {
13
+ title: {
14
+ type: String,
15
+ default: ""
16
+ },
17
+ value: {
18
+ type: Array
19
+ },
20
+ maxGroupNum: {
21
+ type: Number
22
+ },
23
+ getProperties: {
24
+ type: Function,
25
+ default: () => []
26
+ },
27
+ onInput: {},
28
+ onBlur: {},
29
+ onChange: {}
30
+ },
31
+ emits: ["update:value"],
32
+ setup(props) {
33
+ const field = useField();
34
+ const currentGroupNum = ref(1);
35
+ const maxGroupNum = computed(() => {
36
+ if (!isNumber(props.maxGroupNum))
37
+ return Infinity;
38
+ if (props.maxGroupNum < 1)
39
+ return 0;
40
+ return ~~props.maxGroupNum;
41
+ });
42
+ function addGroup() {
43
+ currentGroupNum.value++;
44
+ }
45
+ async function removeGroup(idx) {
46
+ currentGroupNum.value--;
47
+ await field.value.remove(idx);
48
+ }
49
+ const collector = inject(InjectionBusinessCollector);
50
+ const {
51
+ schemaAdaptor
52
+ } = useFieldListAdaptor(collector);
53
+ return () => {
54
+ return createVNode("section", {
55
+ "class": "form-render__combination"
56
+ }, [createVNode("header", {
57
+ "class": "form-render__combinationHeader"
58
+ }, [createVNode("div", {
59
+ "class": "form-render__combinationHeaderText"
60
+ }, [props.title]), createVNode(NButton, {
61
+ "onClick": addGroup,
62
+ "type": "info",
63
+ "text": true,
64
+ "disabled": currentGroupNum.value >= maxGroupNum.value
65
+ }, {
66
+ icon: () => createVNode(NIcon, {
67
+ "component": AddCircleOutline
68
+ }, null),
69
+ default: () => "\u65B0\u589E"
70
+ })]), Array.from({
71
+ length: currentGroupNum.value
72
+ }).map((_, idx) => createVNode("section", {
73
+ "class": "form-render__combinationContent"
74
+ }, [createVNode(RecursionField, {
75
+ "schema": createObjSchema(schemaAdaptor(props.getProperties())),
76
+ "name": idx
77
+ }, null), idx === 0 ? null : createVNode(NButton, {
78
+ "text": true,
79
+ "type": "error",
80
+ "class": "form-render__combinationClose",
81
+ "onClick": () => removeGroup(idx)
82
+ }, {
83
+ icon: () => createVNode(NIcon, {
84
+ "component": RemoveCircle
85
+ }, null)
86
+ })]))]);
87
+ };
88
+ }
89
+ });
90
+ const COMBINATION = connect(script);
91
+
92
+ export { COMBINATION };
@@ -1,4 +1,5 @@
1
1
  import { defineComponent, computed, watch, createVNode, mergeProps } from 'vue';
2
+ import { generateTimeFormat } from '../../../../../src/utils';
2
3
  import { connect, mapProps } from '@formily/vue';
3
4
  import { isObject } from '@vueuse/core';
4
5
  import { format } from 'date-fns';
@@ -66,9 +67,7 @@ const script = defineComponent({
66
67
  }
67
68
  }
68
69
  const validateConfig = computed(() => {
69
- const result = {
70
- valueFormat: props.valueFormat
71
- };
70
+ const result = {};
72
71
  if (isObject(props.validate)) {
73
72
  const {
74
73
  min_date,
@@ -81,6 +80,15 @@ const script = defineComponent({
81
80
  }
82
81
  return result;
83
82
  });
83
+ const formatConfig = computed(() => {
84
+ return {
85
+ valueFormat: props.valueFormat,
86
+ format: props.valueFormat,
87
+ timePickerProps: {
88
+ format: generateTimeFormat(props.valueFormat)
89
+ }
90
+ };
91
+ });
84
92
  function formatDate(value) {
85
93
  if (!value)
86
94
  return value;
@@ -95,7 +103,7 @@ const script = defineComponent({
95
103
  get: () => formatDate(props.value),
96
104
  set: (value) => emit("update:value", value)
97
105
  });
98
- return () => createVNode(NDatePicker, mergeProps(validateConfig.value, {
106
+ return () => createVNode(NDatePicker, mergeProps(validateConfig.value, formatConfig.value, {
99
107
  "formatted-value": valueRef.value,
100
108
  "onUpdate:formatted-value": ($event) => valueRef.value = $event
101
109
  }), null);