cnhis-design-vue 3.1.14-beta.12 → 3.1.14-beta.15

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 (176) hide show
  1. package/es/_virtual/plugin-vue_export-helper.js +9 -0
  2. package/es/node_modules/@formily/path/esm/contexts.js +22 -0
  3. package/es/node_modules/@formily/path/esm/destructor.js +124 -0
  4. package/es/node_modules/@formily/path/esm/index.js +579 -0
  5. package/es/node_modules/@formily/path/esm/matcher.js +199 -0
  6. package/es/node_modules/@formily/path/esm/parser.js +402 -0
  7. package/es/node_modules/@formily/path/esm/shared.js +73 -0
  8. package/es/node_modules/@formily/path/esm/tokenizer.js +287 -0
  9. package/es/node_modules/@formily/path/esm/tokens.js +240 -0
  10. package/es/node_modules/@formily/path/esm/types.js +17 -0
  11. package/es/packages/big-table/index.js +1 -2
  12. package/es/packages/big-table/src/BigTable.js +5 -3
  13. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +8 -11
  14. package/es/packages/big-table/src/components/NoData.js +73 -3
  15. package/es/packages/big-table/src/components/edit-form/edit-separate.js +89 -3
  16. package/es/packages/big-table/src/components/input-button.js +34 -3
  17. package/es/packages/big-table/src/components/separate.js +29 -3
  18. package/es/packages/big-table/src/hooks/useEdit.js +2 -3
  19. package/es/packages/big-table/style/index.css +133 -0
  20. package/es/packages/bpmn-workflow/index.js +1 -2
  21. package/es/packages/bpmn-workflow/src/BpmnWorkflow.js +253 -3
  22. package/es/packages/button-print/index.js +1 -2
  23. package/es/packages/button-print/src/ButtonPrint.js +5 -3
  24. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +4 -5
  25. package/es/packages/button-print/src/components/IdentityVerification.js +129 -3
  26. package/es/packages/chunk-upload/index.js +1 -1
  27. package/es/packages/chunk-upload/src/chunk-upload-new.js +474 -3
  28. package/es/packages/chunk-upload/src/vod-chunk-upload/index.js +2 -3
  29. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.js +328 -3
  30. package/es/packages/chunk-upload/src/vod-upload-modal.js +3 -4
  31. package/es/packages/drag-layout/index.js +1 -2
  32. package/es/packages/drag-layout/src/DragFormLeftItem.js +123 -3
  33. package/es/packages/drag-layout/src/DragFormRightItem.js +268 -3
  34. package/es/packages/drag-layout/src/DragLayout.js +658 -3
  35. package/es/packages/fabric-chart/index.js +1 -2
  36. package/es/packages/fabric-chart/src/FabricChart.js +315 -3
  37. package/es/packages/fabric-chart/src/components/PopupTip.js +33 -3
  38. package/es/packages/fabric-chart/src/hooks/useLeft.js +15 -4
  39. package/es/packages/field-set/index.d.ts +2509 -5166
  40. package/es/packages/field-set/index.js +1 -2
  41. package/es/packages/field-set/src/FieldSet.js +346 -3
  42. package/es/packages/field-set/src/FieldSet.vue.d.ts +2492 -5169
  43. package/es/packages/form-render/index.js +2 -3
  44. package/es/packages/form-render/src/FormRender.js +188 -3
  45. package/es/packages/form-render/src/components/renderer/combination.d.ts +6 -0
  46. package/es/packages/form-render/src/components/renderer/combination.js +55 -19
  47. package/es/packages/form-render/src/components/renderer/select.js +1 -2
  48. package/es/packages/form-render/src/components/renderer/simpleComponent.d.ts +1 -0
  49. package/es/packages/form-render/src/components/renderer/simpleComponent.js +4 -3
  50. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +1 -0
  51. package/es/packages/form-render/src/types/fieldItem.d.ts +1 -0
  52. package/es/packages/form-table/index.js +1 -2
  53. package/es/packages/form-table/src/FormTable.js +475 -3
  54. package/es/packages/form-table/src/components/index.js +28 -42
  55. package/es/packages/form-table/src/components/table-age.js +232 -3
  56. package/es/packages/form-table/src/components/table-date-picker.js +176 -3
  57. package/es/packages/form-table/src/components/table-digital.js +138 -3
  58. package/es/packages/form-table/src/components/table-input-password.js +138 -3
  59. package/es/packages/form-table/src/components/table-input.js +124 -3
  60. package/es/packages/form-table/src/components/table-month-picker.js +100 -3
  61. package/es/packages/form-table/src/components/table-search-more.js +5 -3
  62. package/es/packages/form-table/src/components/table-search-more.vue_vue_type_script_setup_true_lang.js +2 -2
  63. package/es/packages/form-table/src/components/table-search.js +5 -3
  64. package/es/packages/form-table/src/components/table-search.vue_vue_type_script_setup_true_lang.js +2 -2
  65. package/es/packages/form-table/src/components/table-select-multiple.js +161 -3
  66. package/es/packages/form-table/src/components/table-select.js +156 -3
  67. package/es/packages/form-table/src/components/table-textarea.js +154 -3
  68. package/es/packages/form-table/src/components/table-time-picker.js +146 -3
  69. package/es/packages/form-table/src/components/table-tree-select.js +282 -3
  70. package/es/packages/form-table/src/components/text-over-tooltip.js +63 -3
  71. package/es/packages/index.css +133 -0
  72. package/es/packages/info-header/index.js +1 -2
  73. package/es/packages/info-header/src/HiddenContent.js +65 -3
  74. package/es/packages/info-header/src/InfoEllipsis.js +42 -3
  75. package/es/packages/info-header/src/InfoHeader.js +229 -3
  76. package/es/packages/map/index.js +1 -2
  77. package/es/packages/map/src/Map.js +337 -3
  78. package/es/packages/scale-view/index.js +1 -2
  79. package/es/packages/scale-view/src/ScaleView.js +418 -3
  80. package/es/packages/scale-view/src/components/AnswerParse.js +79 -3
  81. package/es/packages/scale-view/src/components/EvaluateCountdown.js +108 -3
  82. package/es/packages/scale-view/src/components/EvaluatePage.js +140 -3
  83. package/es/packages/scale-view/src/components/LoadingCom.js +17 -5
  84. package/es/packages/scale-view/src/components/NoData.js +73 -3
  85. package/es/packages/scale-view/src/components/formitem/r-cascader.js +3 -3
  86. package/es/packages/scale-view/src/components/formitem/r-select.js +3 -3
  87. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.js +78 -3
  88. package/es/packages/select-label/index.js +3 -5
  89. package/es/packages/select-label/src/LabelFormContent.js +441 -3
  90. package/es/packages/select-label/src/SelectLabel.js +5 -3
  91. package/es/packages/select-label/src/SelectLabel.vue_vue_type_script_setup_true_lang.js +5 -21
  92. package/es/packages/select-label/src/components/label-classify.js +128 -3
  93. package/es/packages/select-person/index.js +1 -2
  94. package/es/packages/select-person/src/SearchTree.js +5 -3
  95. package/es/packages/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.js +2 -2
  96. package/es/packages/select-person/src/SelectPerson.js +5 -3
  97. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.js +4 -5
  98. package/es/packages/shortcut-provider/index.js +1 -2
  99. package/es/packages/shortcut-provider/src/ShortcutProvider.js +33 -3
  100. package/es/packages/shortcut-provider/src/types/index.d.ts +11 -9
  101. package/es/packages/shortcut-provider/src/utils/index.js +5 -5
  102. package/es/packages/shortcut-setter/index.d.ts +3248 -1486
  103. package/es/packages/shortcut-setter/index.js +1 -2
  104. package/es/packages/shortcut-setter/src/ShortcutSetter.js +42 -3
  105. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +3248 -1486
  106. package/es/packages/shortcut-setter/src/ShortcutSetterItem.js +139 -3
  107. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue.d.ts +1700 -1661
  108. package/es/packages/steps-wheel/index.js +1 -2
  109. package/es/packages/steps-wheel/src/StepsWheel.js +264 -3
  110. package/es/packages/time-line/index.js +1 -2
  111. package/es/packages/time-line/src/TimeLine.js +69 -3
  112. package/es/src/components/SelectPage/SelectPage.js +62 -3
  113. package/es/src/components/SelectPage/index.js +2 -3
  114. package/es/src/components/SvgIcon/SvgIcon.js +35 -3
  115. package/es/src/components/SvgIcon/index.js +2 -3
  116. package/es/src/components/TextOverTooltip/TextOverTooltip.js +75 -3
  117. package/es/src/components/TextOverTooltip/index.js +2 -3
  118. package/es/src/components/player-vod/index.js +13 -3
  119. package/global.d.ts +8 -8
  120. package/package.json +1 -1
  121. package/es/packages/big-table/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  122. package/es/packages/big-table/src/components/edit-form/edit-separate.vue_vue_type_script_setup_true_lang.js +0 -89
  123. package/es/packages/big-table/src/components/input-button.vue_vue_type_script_setup_true_lang.js +0 -33
  124. package/es/packages/big-table/src/components/separate.vue_vue_type_script_setup_true_lang.js +0 -28
  125. package/es/packages/bpmn-workflow/src/BpmnWorkflow.vue_vue_type_script_setup_true_lang.js +0 -252
  126. package/es/packages/button-print/src/components/IdentityVerification.vue_vue_type_script_setup_true_lang.js +0 -128
  127. package/es/packages/chunk-upload/src/chunk-upload-new.vue_vue_type_script_setup_true_lang.js +0 -473
  128. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue_vue_type_script_setup_true_lang.js +0 -327
  129. package/es/packages/drag-layout/src/DragFormLeftItem.vue_vue_type_script_setup_true_lang.js +0 -122
  130. package/es/packages/drag-layout/src/DragFormRightItem.vue_vue_type_script_setup_true_lang.js +0 -267
  131. package/es/packages/drag-layout/src/DragLayout.vue_vue_type_script_setup_true_lang.js +0 -659
  132. package/es/packages/fabric-chart/src/FabricChart.vue_vue_type_script_setup_true_lang.js +0 -316
  133. package/es/packages/fabric-chart/src/components/PopupTip.vue_vue_type_script_setup_true_lang.js +0 -32
  134. package/es/packages/field-set/src/FieldSet.vue_vue_type_script_setup_true_lang.js +0 -22
  135. package/es/packages/field-set/src/NewFieldSet.js +0 -4
  136. package/es/packages/field-set/src/NewFieldSet.vue.d.ts +0 -2607
  137. package/es/packages/field-set/src/NewFieldSet.vue_vue_type_script_setup_true_lang.js +0 -299
  138. package/es/packages/field-set/src/OldFieldSet.js +0 -4
  139. package/es/packages/field-set/src/OldFieldSet.vue.d.ts +0 -2610
  140. package/es/packages/field-set/src/OldFieldSet.vue_vue_type_script_setup_true_lang.js +0 -330
  141. package/es/packages/form-render/src/FormRender.vue_vue_type_script_setup_true_lang.js +0 -187
  142. package/es/packages/form-table/src/FormTable.vue_vue_type_script_setup_true_lang.js +0 -474
  143. package/es/packages/form-table/src/components/table-age.vue_vue_type_script_setup_true_lang.js +0 -232
  144. package/es/packages/form-table/src/components/table-date-picker.vue_vue_type_script_setup_true_lang.js +0 -175
  145. package/es/packages/form-table/src/components/table-digital.vue_vue_type_script_setup_true_lang.js +0 -138
  146. package/es/packages/form-table/src/components/table-input-password.vue_vue_type_script_setup_true_lang.js +0 -138
  147. package/es/packages/form-table/src/components/table-input.vue_vue_type_script_setup_true_lang.js +0 -124
  148. package/es/packages/form-table/src/components/table-month-picker.vue_vue_type_script_setup_true_lang.js +0 -99
  149. package/es/packages/form-table/src/components/table-select-multiple.vue_vue_type_script_setup_true_lang.js +0 -160
  150. package/es/packages/form-table/src/components/table-select.vue_vue_type_script_setup_true_lang.js +0 -155
  151. package/es/packages/form-table/src/components/table-textarea.vue_vue_type_script_setup_true_lang.js +0 -153
  152. package/es/packages/form-table/src/components/table-time-picker.vue_vue_type_script_setup_true_lang.js +0 -145
  153. package/es/packages/form-table/src/components/table-tree-select.vue_vue_type_script_setup_true_lang.js +0 -281
  154. package/es/packages/form-table/src/components/text-over-tooltip.vue_vue_type_script_setup_true_lang.js +0 -62
  155. package/es/packages/info-header/src/HiddenContent.vue_vue_type_script_setup_true_lang.js +0 -64
  156. package/es/packages/info-header/src/InfoEllipsis.vue_vue_type_script_setup_true_lang.js +0 -41
  157. package/es/packages/info-header/src/InfoHeader.vue_vue_type_script_setup_true_lang.js +0 -230
  158. package/es/packages/map/src/Map.vue_vue_type_script_setup_true_lang.js +0 -336
  159. package/es/packages/scale-view/src/ScaleView.vue_vue_type_script_setup_true_lang.js +0 -422
  160. package/es/packages/scale-view/src/components/AnswerParse.vue_vue_type_script_setup_true_lang.js +0 -78
  161. package/es/packages/scale-view/src/components/EvaluateCountdown.vue_vue_type_script_setup_true_lang.js +0 -107
  162. package/es/packages/scale-view/src/components/EvaluatePage.vue_vue_type_script_setup_true_lang.js +0 -139
  163. package/es/packages/scale-view/src/components/LoadingCom.vue_vue_type_template_id_413329b0_lang.js +0 -16
  164. package/es/packages/scale-view/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  165. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -77
  166. package/es/packages/select-label/src/LabelFormContent.vue_vue_type_script_setup_true_lang.js +0 -441
  167. package/es/packages/select-label/src/components/label-classify.vue_vue_type_script_setup_true_lang.js +0 -127
  168. package/es/packages/shortcut-provider/src/ShortcutProvider.vue_vue_type_script_setup_true_lang.js +0 -32
  169. package/es/packages/shortcut-setter/src/ShortcutSetter.vue_vue_type_script_setup_true_lang.js +0 -38
  170. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue_vue_type_script_setup_true_lang.js +0 -125
  171. package/es/packages/steps-wheel/src/StepsWheel.vue_vue_type_script_setup_true_lang.js +0 -263
  172. package/es/packages/time-line/src/TimeLine.vue_vue_type_script_setup_true_lang.js +0 -68
  173. package/es/src/components/SelectPage/SelectPage.vue_vue_type_script_setup_true_lang.js +0 -61
  174. package/es/src/components/SvgIcon/SvgIcon.vue_vue_type_script_setup_true_lang.js +0 -34
  175. package/es/src/components/TextOverTooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -74
  176. package/es/src/components/player-vod/index.vue_vue_type_script_setup_true_lang.js +0 -12
@@ -1,7 +1,6 @@
1
1
  import { COMPONENT_NAMESPACE } from '../../src/global/variable';
2
2
  import { safeComponentRegister } from '../../src/utils';
3
- import './src/FormRender.js';
4
- import script from './src/FormRender.vue_vue_type_script_setup_true_lang.js';
3
+ import FormRender$1 from './src/FormRender.js';
5
4
  export { useFieldListAdaptor } from './src/hooks/useFieldListAdaptor.js';
6
5
  export { useFormRequest } from './src/hooks/useFormRequest.js';
7
6
  export { useCommonLog } from './src/hooks/useCommonLog.js';
@@ -17,7 +16,7 @@ export { useInitialData } from './src/hooks/useInitialData.js';
17
16
  export { useAnchor } from './src/hooks/useAnchor.js';
18
17
  export { useFormContext } from './src/hooks/useFormContext.js';
19
18
 
20
- const FormRender = script;
19
+ const FormRender = FormRender$1;
21
20
  FormRender.install = function(app) {
22
21
  safeComponentRegister(app, FormRender, COMPONENT_NAMESPACE + "FormRender");
23
22
  };
@@ -1,4 +1,189 @@
1
- import script from './FormRender.vue_vue_type_script_setup_true_lang.js';
2
- export { default } from './FormRender.vue_vue_type_script_setup_true_lang.js';
1
+ import { defineComponent, computed, watch, openBlock, createBlock, unref, withCtx, createElementBlock, createVNode, isRef, Fragment, renderList, createCommentVNode, createElementVNode, normalizeStyle, renderSlot, toDisplayString, nextTick } from 'vue';
2
+ import { createForm, onFieldValueChange, isField } from '@formily/core';
3
+ import { FormProvider, FormConsumer } from '@formily/vue';
4
+ import { cloneDeep } from 'lodash-es';
5
+ import { NForm, NTabs, NTabPane, NConfigProvider } from 'naive-ui';
6
+ import { FormItemLineBarDepKeyPrepend } from '../../../packages/form-render/src/constants';
7
+ import { queryDecorator, queryInput, getParentLinebar } from '../../../packages/form-render/src/utils';
8
+ import { useNuiThemeOverrides } from '../../../packages/form-table/src/hooks/useNuiThemeOverrides';
9
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
10
+ import { useFormContext } from './hooks/useFormContext.js';
11
+ import { useInitialData } from './hooks/useInitialData.js';
12
+ import { useFieldListAdaptor } from './hooks/useFieldListAdaptor.js';
13
+ import { useFieldVisitor } from './hooks/useFieldVisitor.js';
14
+ import { useAnchor } from './hooks/useAnchor.js';
3
15
 
4
- script.__file = "packages/form-render/src/FormRender.vue";
16
+ const _hoisted_1 = {
17
+ key: 0,
18
+ style: { "height": "50px" }
19
+ };
20
+ const _hoisted_2 = { style: { "white-space": "pre" } };
21
+ const _sfc_main = /* @__PURE__ */ defineComponent({
22
+ __name: "FormRender",
23
+ props: {
24
+ fieldList: { type: Array },
25
+ initialData: { type: Object, default: () => ({}) },
26
+ fieldVisitor: { type: Object },
27
+ column: { type: Number, default: 12 },
28
+ maxHeight: { type: [Number, String], default: "" },
29
+ anchor: { type: Boolean, default: false },
30
+ parallelism: { type: Number, default: 3 },
31
+ schema: { type: Object },
32
+ components: {
33
+ type: Object,
34
+ default: () => ({})
35
+ },
36
+ businessFilter: { type: Function },
37
+ scope: { type: Object, default: () => ({}) },
38
+ annotation: { type: Object },
39
+ consumer: { type: Boolean, default: false },
40
+ uuid: { type: String }
41
+ },
42
+ emits: [
43
+ "formChange"
44
+ ],
45
+ setup(__props, { expose, emit }) {
46
+ const props = __props;
47
+ const { nuiThemeOverrides } = useNuiThemeOverrides();
48
+ const { SchemaField, businessCollector, formItemDepsCollector, changeContextCollector, formUUID } = useFormContext(props);
49
+ const formModel = createForm({
50
+ initialValues: useInitialData().assignInitialData(props.initialData, props.fieldList),
51
+ effects() {
52
+ onFieldValueChange("*", (field) => {
53
+ const fieldKey = field.props.name.toString();
54
+ emit("formChange", {
55
+ fieldInstance: field,
56
+ fieldKey,
57
+ fieldName: field.title,
58
+ value: field.value,
59
+ context: changeContextCollector.getContext(fieldKey)
60
+ });
61
+ businessCollector.trigger(formModel, fieldKey, field.value);
62
+ formItemDepsCollector.trigger(fieldKey);
63
+ });
64
+ }
65
+ });
66
+ const { schemaAdaptor } = useFieldListAdaptor(businessCollector, formUUID);
67
+ const parsedSchema = computed(() => {
68
+ if (props.schema) {
69
+ return props.schema;
70
+ }
71
+ if (props.fieldList) {
72
+ const _fieldList = useFieldVisitor().traverse(cloneDeep(props.fieldList), props.fieldVisitor);
73
+ return { type: "object", properties: schemaAdaptor(_fieldList) };
74
+ }
75
+ return { type: "object", properties: {} };
76
+ });
77
+ const { currentAnchor, scrollbarRef, generateAnchorList, anchorIdList, formHeight, scrollTo, onScroll } = useAnchor(props, formItemDepsCollector);
78
+ watch(parsedSchema, generateAnchorList, { immediate: true });
79
+ async function queryWidget(key, wrapperElement, fieldList) {
80
+ if (!scrollbarRef.value)
81
+ return createResult();
82
+ const decoratorElement = queryDecorator(key, wrapperElement, formUUID);
83
+ if (decoratorElement)
84
+ return createResult(decoratorElement);
85
+ const parentLinebarKey = getParentLinebar(key, fieldList);
86
+ if (!parentLinebarKey)
87
+ return createResult();
88
+ formItemDepsCollector.trigger(FormItemLineBarDepKeyPrepend + parentLinebarKey, true);
89
+ await nextTick();
90
+ return createResult(queryDecorator(key, wrapperElement, formUUID));
91
+ function createResult(decoratorElement2) {
92
+ return { decoratorElement: decoratorElement2, ...queryInput(decoratorElement2) };
93
+ }
94
+ }
95
+ expose({
96
+ validate(path = "*") {
97
+ return formModel.validate(path).catch((err) => {
98
+ return Promise.reject(Array.isArray(err) ? err.map(bindInfo) : err);
99
+ });
100
+ function bindInfo(info) {
101
+ info.title = formModel.query(info.path).get("title");
102
+ info.decoratorElement = queryDecorator(info.path, scrollbarRef.value, formUUID);
103
+ Object.assign(info, queryInput(info.decoratorElement));
104
+ return info;
105
+ }
106
+ },
107
+ getFormValues() {
108
+ return formModel.getFormState().values;
109
+ },
110
+ setFieldState(path, handler) {
111
+ formModel.setFieldState(path, handler);
112
+ },
113
+ resetFields(path = "*") {
114
+ formModel.setFieldState(path, async (field) => {
115
+ var _a;
116
+ if (isField(field)) {
117
+ field.modified = false;
118
+ field.visited = false;
119
+ field.feedbacks = [];
120
+ field.selfModified = false;
121
+ field.caches = {};
122
+ field.value = (_a = field.initialValue) != null ? _a : null;
123
+ }
124
+ });
125
+ },
126
+ async queryWidget(key) {
127
+ return scrollbarRef.value ? await queryWidget(key, scrollbarRef.value, props.fieldList || []) : null;
128
+ }
129
+ });
130
+ return (_ctx, _cache) => {
131
+ return openBlock(), createBlock(unref(NForm), {
132
+ class: "form-render",
133
+ "require-mark-placement": "left"
134
+ }, {
135
+ default: withCtx(() => [
136
+ __props.anchor ? (openBlock(), createElementBlock("section", _hoisted_1, [
137
+ createVNode(unref(NTabs), {
138
+ value: unref(currentAnchor),
139
+ "onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(currentAnchor) ? currentAnchor.value = $event : null),
140
+ type: "line"
141
+ }, {
142
+ default: withCtx(() => [
143
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(anchorIdList), (anchor) => {
144
+ return openBlock(), createBlock(unref(NTabPane), {
145
+ name: anchor.name,
146
+ tab: anchor.title,
147
+ key: anchor.name
148
+ }, null, 8, ["name", "tab"]);
149
+ }), 128))
150
+ ]),
151
+ _: 1
152
+ }, 8, ["value"])
153
+ ])) : createCommentVNode("v-if", true),
154
+ createVNode(unref(NConfigProvider), { "theme-overrides": unref(nuiThemeOverrides) }, {
155
+ default: withCtx(() => [
156
+ createElementVNode("section", {
157
+ class: "form-render__wrapper",
158
+ style: normalizeStyle({ "--column": __props.column, "--form-height": unref(formHeight) }),
159
+ ref_key: "scrollbarRef",
160
+ ref: scrollbarRef,
161
+ onScroll: _cache[1] || (_cache[1] = (...args) => unref(onScroll) && unref(onScroll)(...args))
162
+ }, [
163
+ createVNode(unref(FormProvider), { form: unref(formModel) }, {
164
+ default: withCtx(() => [
165
+ renderSlot(_ctx.$slots, "default", { schemaFiled: unref(SchemaField) }, () => [
166
+ createVNode(unref(SchemaField), { schema: unref(parsedSchema) }, null, 8, ["schema"])
167
+ ]),
168
+ __props.consumer ? (openBlock(), createBlock(unref(FormConsumer), { key: 0 }, {
169
+ default: withCtx(({ form }) => [
170
+ createElementVNode("div", _hoisted_2, toDisplayString(JSON.stringify(form.values, null, 2)), 1)
171
+ ]),
172
+ _: 1
173
+ })) : createCommentVNode("v-if", true)
174
+ ]),
175
+ _: 3
176
+ }, 8, ["form"])
177
+ ], 36)
178
+ ]),
179
+ _: 3
180
+ }, 8, ["theme-overrides"])
181
+ ]),
182
+ _: 3
183
+ });
184
+ };
185
+ }
186
+ });
187
+ var FormRender = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "FormRender.vue"]]);
188
+
189
+ export { FormRender as default };
@@ -8,6 +8,9 @@ export declare const COMBINATION: import("vue").DefineComponent<{
8
8
  value: {
9
9
  type: StringConstructor;
10
10
  };
11
+ maxGroupNum: {
12
+ type: NumberConstructor;
13
+ };
11
14
  getProperties: {
12
15
  type: PropType<() => FieldItem[]>;
13
16
  default: () => never[];
@@ -20,6 +23,9 @@ export declare const COMBINATION: import("vue").DefineComponent<{
20
23
  value: {
21
24
  type: StringConstructor;
22
25
  };
26
+ maxGroupNum: {
27
+ type: NumberConstructor;
28
+ };
23
29
  getProperties: {
24
30
  type: PropType<() => FieldItem[]>;
25
31
  default: () => never[];
@@ -1,10 +1,12 @@
1
- import { defineComponent, ref, createVNode, createTextVNode, toRaw } from 'vue';
1
+ import { defineComponent, ref, computed, watch, onMounted, createVNode, createTextVNode } from 'vue';
2
+ import { isField } from '@formily/core';
3
+ import { Path } from '../../../../../node_modules/@formily/path/esm/index.js';
4
+ import { isNumber } from 'lodash-es';
2
5
  import { assignUpdateValue, formRenderLog } from '../../utils/index.js';
3
6
  import { connect, mapProps } from '@formily/vue';
4
7
  import { useDebounceFn, isObject } from '@vueuse/core';
5
8
  import { NButton } from 'naive-ui';
6
- import '../../FormRender.js';
7
- import script$1 from '../../FormRender.vue_vue_type_script_setup_true_lang.js';
9
+ import FormRender from '../../FormRender.js';
8
10
 
9
11
  const script = defineComponent({
10
12
  name: "FormCombination",
@@ -16,6 +18,9 @@ const script = defineComponent({
16
18
  value: {
17
19
  type: String
18
20
  },
21
+ maxGroupNum: {
22
+ type: Number
23
+ },
19
24
  getProperties: {
20
25
  type: Function,
21
26
  default: () => []
@@ -28,14 +33,31 @@ const script = defineComponent({
28
33
  const emitChange = useDebounceFn(function emitChange2() {
29
34
  emit("update:value", JSON.stringify(_values.value));
30
35
  }, 300);
31
- const combinationRepeat = ref(1);
36
+ const formRenderRefs = ref([]);
37
+ const groupNum = ref(1);
38
+ const maxGroupNum = computed(() => {
39
+ if (!isNumber(props.maxGroupNum))
40
+ return Infinity;
41
+ if (props.maxGroupNum < 1)
42
+ return 0;
43
+ return ~~props.maxGroupNum;
44
+ });
45
+ watch(maxGroupNum, (value) => {
46
+ if (groupNum.value <= value)
47
+ return;
48
+ groupNum.value = value;
49
+ _values.value.splice(groupNum.value);
50
+ emitChange();
51
+ }, {
52
+ immediate: true
53
+ });
32
54
  function add() {
33
- combinationRepeat.value++;
55
+ groupNum.value++;
34
56
  _values.value.push({});
35
57
  emitChange();
36
58
  }
37
59
  function remove(idx) {
38
- combinationRepeat.value--;
60
+ groupNum.value--;
39
61
  _values.value.splice(idx, 1);
40
62
  emitChange();
41
63
  }
@@ -48,19 +70,32 @@ const script = defineComponent({
48
70
  if (!Array.isArray(parsed))
49
71
  throw new Error();
50
72
  parsed.forEach((v, idx) => {
51
- if (isObject(v)) {
52
- _values.value[idx] = v;
53
- } else {
54
- _values.value[idx] = {};
55
- formRenderLog(`invalid Object value ${v} in COMBINATION => ${props.title}[${idx}]`, "warn");
56
- }
73
+ if (idx > maxGroupNum.value - 1)
74
+ return;
75
+ if (isObject(v))
76
+ return _values.value[idx] = v;
77
+ _values.value[idx] = {};
78
+ formRenderLog(`invalid Object value ${v} in COMBINATION => ${props.title}[${idx}]`, "warn");
57
79
  });
58
- combinationRepeat.value = _values.value.length;
80
+ groupNum.value = Math.min(_values.value.length, maxGroupNum.value);
59
81
  } catch (e) {
60
82
  formRenderLog(`invalid JSON value ${data} in COMBINATION => ${props.title}`, "warn");
83
+ } finally {
84
+ setFormValueByInitValue();
85
+ }
86
+ function setFormValueByInitValue() {
87
+ _values.value.forEach((item, idx) => {
88
+ var _a;
89
+ (_a = formRenderRefs.value[idx]) == null ? void 0 : _a.setFieldState("*", (state) => {
90
+ if (!isField(state))
91
+ return;
92
+ state.value = Path.getIn(item, state.path);
93
+ });
94
+ });
61
95
  }
62
96
  }
63
- initValues(props.value);
97
+ watch(() => props.value, (value) => initValues(value));
98
+ onMounted(() => initValues(props.value));
64
99
  function stop(event) {
65
100
  event.stopPropagation();
66
101
  }
@@ -69,10 +104,10 @@ const script = defineComponent({
69
104
  value
70
105
  }) {
71
106
  !_values.value[idx] && (_values.value[idx] = {});
72
- _values.value[idx][fieldKey] = value;
107
+ Path.setIn(_values.value[idx], fieldKey, value);
73
108
  emitChange();
74
109
  }
75
- const FormRenderComponent = script$1;
110
+ const FormRenderComponent = FormRender;
76
111
  return () => {
77
112
  return createVNode("section", {
78
113
  "class": "form-render__combination"
@@ -83,16 +118,17 @@ const script = defineComponent({
83
118
  }, [props.title]), createVNode(NButton, {
84
119
  "onClick": add,
85
120
  "type": "info",
86
- "text": true
121
+ "text": true,
122
+ "disabled": groupNum.value >= maxGroupNum.value
87
123
  }, {
88
124
  default: () => [createTextVNode("\u65B0\u589E")]
89
125
  })]), Array.from({
90
- length: combinationRepeat.value
126
+ length: groupNum.value
91
127
  }).map((_, idx) => {
92
128
  return createVNode("section", {
93
129
  "class": "form-render__combinationContent"
94
130
  }, [createVNode(FormRenderComponent, {
95
- "initialData": toRaw(_values.value[idx]) || {},
131
+ "ref": (_ref) => formRenderRefs.value[idx] = _ref,
96
132
  "fieldList": props.getProperties(),
97
133
  "onUpdateValue": () => false,
98
134
  "onInput": stop,
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, watch, inject, computed, nextTick, createVNode } from 'vue';
1
+ import { defineComponent, ref, inject, computed, watch, nextTick, createVNode } from 'vue';
2
2
  import { isField } from '@formily/core';
3
3
  import { isEqual, cloneDeep } from 'lodash-es';
4
4
  import { InjectAsyncQueue, InjectionFormItemDepsCollector, InjectionChangeContextCollector } from '../../constants/index.js';
@@ -31,7 +31,6 @@ const script = defineComponent({
31
31
  emit
32
32
  }) {
33
33
  const remoteOptions = ref(null);
34
- watch(remoteOptions, (o) => console.log("remoteOption", o));
35
34
  const lastSearch = ref("");
36
35
  const asyncQueue = inject(InjectAsyncQueue);
37
36
  const {
@@ -3,6 +3,7 @@ export declare const TEXT: {
3
3
  props: {
4
4
  content: {};
5
5
  fieldItem: {};
6
+ value: {};
6
7
  };
7
8
  };
8
9
  export declare const BUTTON: {
@@ -11,12 +11,13 @@ function createPropFor(props) {
11
11
  };
12
12
  }
13
13
  const textScript = (props) => {
14
- var _a, _b;
15
- return createVNode("div", null, [(_b = (_a = createSlot(props.content, props)).default) == null ? void 0 : _b.call(_a)]);
14
+ var _a, _b, _c;
15
+ return createVNode("div", null, [(_c = (_b = createSlot((_a = props.content) != null ? _a : props.value, props)).default) == null ? void 0 : _c.call(_b)]);
16
16
  };
17
17
  textScript.props = {
18
18
  content: {},
19
- fieldItem: {}
19
+ fieldItem: {},
20
+ value: {}
20
21
  };
21
22
  const TEXT = connect(textScript, mapProps((props) => {
22
23
  var _a;
@@ -98,6 +98,7 @@ function useFieldListAdaptor(collector, uuid) {
98
98
  schema["x-decorator-props"].showLabel = false;
99
99
  Object.assign(schema["x-component-props"], {
100
100
  title: item.alias || item.name,
101
+ maxGroupNum: item.maxGroupNum,
101
102
  getProperties: () => item.children || []
102
103
  });
103
104
  return schema;
@@ -72,6 +72,7 @@ export declare type FieldItem = {
72
72
  suffixConfig: FieldItem[] | FieldItem;
73
73
  fieldType: 'string' | 'object' | 'array' | 'number' | 'void' | 'boolean' | 'datetime';
74
74
  content: string | FormRenderer | Record<string, FormRenderer>;
75
+ maxGroupNum: number;
75
76
  properties: FieldItem[];
76
77
  children: FieldItem[];
77
78
  componentProps: AnyObject;
@@ -1,7 +1,6 @@
1
1
  import { COMPONENT_NAMESPACE } from '../../src/global/variable';
2
2
  import { safeComponentRegister } from '../../src/utils';
3
- import './src/FormTable.js';
4
- import script from './src/FormTable.vue_vue_type_script_setup_true_lang.js';
3
+ import script from './src/FormTable.js';
5
4
 
6
5
  const FormTable = script;
7
6
  FormTable.install = function(app) {