cnhis-design-vue 3.1.14-beta.9 → 3.1.14

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 (210) 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.d.ts +13 -0
  12. package/es/packages/big-table/index.js +1 -2
  13. package/es/packages/big-table/src/BigTable.js +5 -3
  14. package/es/packages/big-table/src/BigTable.vue.d.ts +18 -12
  15. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +15 -15
  16. package/es/packages/big-table/src/bigTableProps.d.ts +4 -0
  17. package/es/packages/big-table/src/bigTableProps.js +1 -0
  18. package/es/packages/big-table/src/components/NoData.js +73 -3
  19. package/es/packages/big-table/src/components/edit-form/edit-input.js +15 -4
  20. package/es/packages/big-table/src/components/edit-form/edit-separate.js +89 -3
  21. package/es/packages/big-table/src/components/edit-form/edit-time.d.ts +43 -0
  22. package/es/packages/big-table/src/components/edit-form/edit-time.js +52 -0
  23. package/es/packages/big-table/src/components/input-button.js +34 -3
  24. package/es/packages/big-table/src/components/separate.js +29 -3
  25. package/es/packages/big-table/src/hooks/useColumnConfigAdaptor.js +34 -5
  26. package/es/packages/big-table/src/hooks/useEdit.d.ts +42 -0
  27. package/es/packages/big-table/src/hooks/useEdit.js +4 -3
  28. package/es/packages/big-table/src/utils.js +1 -0
  29. package/es/packages/big-table/style/index.css +133 -0
  30. package/es/packages/bpmn-workflow/index.js +1 -2
  31. package/es/packages/bpmn-workflow/src/BpmnWorkflow.js +253 -3
  32. package/es/packages/button-print/index.js +1 -2
  33. package/es/packages/button-print/src/ButtonPrint.js +5 -3
  34. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +6 -7
  35. package/es/packages/button-print/src/components/IdentityVerification.js +129 -3
  36. package/es/packages/button-print/src/utils/print.d.ts +1 -1
  37. package/es/packages/button-print/src/utils/print.js +4 -4
  38. package/es/packages/chunk-upload/index.js +1 -1
  39. package/es/packages/chunk-upload/src/chunk-upload-new.js +474 -3
  40. package/es/packages/chunk-upload/src/vod-chunk-upload/index.js +2 -3
  41. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.js +328 -3
  42. package/es/packages/chunk-upload/src/vod-upload-modal.js +3 -4
  43. package/es/packages/drag-layout/index.js +1 -2
  44. package/es/packages/drag-layout/src/DragFormLeftItem.js +123 -3
  45. package/es/packages/drag-layout/src/DragFormRightItem.js +268 -3
  46. package/es/packages/drag-layout/src/DragLayout.js +658 -3
  47. package/es/packages/fabric-chart/index.js +1 -2
  48. package/es/packages/fabric-chart/src/FabricChart.js +315 -3
  49. package/es/packages/fabric-chart/src/components/PopupTip.js +33 -3
  50. package/es/packages/fabric-chart/src/hooks/useCenter.js +41 -25
  51. package/es/packages/fabric-chart/src/hooks/useEvent.js +9 -7
  52. package/es/packages/fabric-chart/src/hooks/useLeft.js +15 -4
  53. package/es/packages/field-set/index.d.ts +2509 -5166
  54. package/es/packages/field-set/index.js +1 -2
  55. package/es/packages/field-set/src/FieldSet.js +346 -3
  56. package/es/packages/field-set/src/FieldSet.vue.d.ts +2492 -5169
  57. package/es/packages/form-render/index.d.ts +0 -2
  58. package/es/packages/form-render/index.js +2 -3
  59. package/es/packages/form-render/src/FormRender.js +188 -3
  60. package/es/packages/form-render/src/FormRender.vue.d.ts +0 -2
  61. package/es/packages/form-render/src/components/renderer/cascader.d.ts +6 -6
  62. package/es/packages/form-render/src/components/renderer/cascader.js +72 -80
  63. package/es/packages/form-render/src/components/renderer/combination.d.ts +6 -0
  64. package/es/packages/form-render/src/components/renderer/combination.js +55 -19
  65. package/es/packages/form-render/src/components/renderer/formItem.js +1 -1
  66. package/es/packages/form-render/src/components/renderer/radio.d.ts +12 -4
  67. package/es/packages/form-render/src/components/renderer/radio.js +23 -5
  68. package/es/packages/form-render/src/components/renderer/select.js +51 -58
  69. package/es/packages/form-render/src/components/renderer/simpleComponent.d.ts +17 -2
  70. package/es/packages/form-render/src/components/renderer/simpleComponent.js +16 -14
  71. package/es/packages/form-render/src/hooks/useAsyncQueue.d.ts +1 -1
  72. package/es/packages/form-render/src/hooks/useAsyncQueue.js +1 -1
  73. package/es/packages/form-render/src/hooks/useChangeContext.d.ts +1 -1
  74. package/es/packages/form-render/src/hooks/useChangeContext.js +1 -1
  75. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +8 -7
  76. package/es/packages/form-render/src/hooks/useFormItemDeps.d.ts +3 -2
  77. package/es/packages/form-render/src/hooks/useFormItemDeps.js +5 -6
  78. package/es/packages/form-render/src/hooks/useFormRequest.d.ts +2 -2
  79. package/es/packages/form-render/src/types/fieldItem.d.ts +123 -35
  80. package/es/packages/form-render/src/types/index.d.ts +4 -2
  81. package/es/packages/form-render/src/utils/index.d.ts +3 -6
  82. package/es/packages/form-table/index.js +1 -2
  83. package/es/packages/form-table/src/FormTable.js +475 -3
  84. package/es/packages/form-table/src/components/index.js +28 -42
  85. package/es/packages/form-table/src/components/table-age.js +232 -3
  86. package/es/packages/form-table/src/components/table-date-picker.js +176 -3
  87. package/es/packages/form-table/src/components/table-digital.js +138 -3
  88. package/es/packages/form-table/src/components/table-input-password.js +138 -3
  89. package/es/packages/form-table/src/components/table-input.js +124 -3
  90. package/es/packages/form-table/src/components/table-month-picker.js +100 -3
  91. package/es/packages/form-table/src/components/table-search-more.js +5 -3
  92. package/es/packages/form-table/src/components/table-search-more.vue_vue_type_script_setup_true_lang.js +2 -2
  93. package/es/packages/form-table/src/components/table-search.js +5 -3
  94. package/es/packages/form-table/src/components/table-search.vue_vue_type_script_setup_true_lang.js +2 -2
  95. package/es/packages/form-table/src/components/table-select-multiple.js +161 -3
  96. package/es/packages/form-table/src/components/table-select.js +156 -3
  97. package/es/packages/form-table/src/components/table-textarea.js +154 -3
  98. package/es/packages/form-table/src/components/table-time-picker.js +146 -3
  99. package/es/packages/form-table/src/components/table-tree-select.js +282 -3
  100. package/es/packages/form-table/src/components/text-over-tooltip.js +63 -3
  101. package/es/packages/index.css +136 -0
  102. package/es/packages/info-header/index.d.ts +1373 -354
  103. package/es/packages/info-header/index.js +1 -2
  104. package/es/packages/info-header/src/HiddenContent.js +65 -3
  105. package/es/packages/info-header/src/HiddenContent.vue.d.ts +689 -178
  106. package/es/packages/info-header/src/InfoEllipsis.js +43 -0
  107. package/es/packages/info-header/src/InfoEllipsis.vue.d.ts +833 -0
  108. package/es/packages/info-header/src/InfoHeader.js +229 -3
  109. package/es/packages/info-header/src/InfoHeader.vue.d.ts +1373 -354
  110. package/es/packages/info-header/style/index.css +3 -0
  111. package/es/packages/map/index.js +1 -2
  112. package/es/packages/map/src/Map.js +337 -3
  113. package/es/packages/scale-view/index.js +1 -2
  114. package/es/packages/scale-view/src/ScaleView.js +418 -3
  115. package/es/packages/scale-view/src/components/AnswerParse.js +79 -3
  116. package/es/packages/scale-view/src/components/EvaluateCountdown.js +108 -3
  117. package/es/packages/scale-view/src/components/EvaluatePage.js +140 -3
  118. package/es/packages/scale-view/src/components/LoadingCom.js +17 -5
  119. package/es/packages/scale-view/src/components/NoData.js +73 -3
  120. package/es/packages/scale-view/src/components/formitem/r-cascader.js +3 -3
  121. package/es/packages/scale-view/src/components/formitem/r-select.js +3 -3
  122. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.js +78 -3
  123. package/es/packages/select-label/index.js +3 -5
  124. package/es/packages/select-label/src/LabelFormContent.js +441 -3
  125. package/es/packages/select-label/src/SelectLabel.js +5 -3
  126. package/es/packages/select-label/src/SelectLabel.vue_vue_type_script_setup_true_lang.js +5 -21
  127. package/es/packages/select-label/src/components/label-classify.js +128 -3
  128. package/es/packages/select-person/index.js +1 -2
  129. package/es/packages/select-person/src/SearchTree.js +5 -3
  130. package/es/packages/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.js +2 -2
  131. package/es/packages/select-person/src/SelectPerson.js +5 -3
  132. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.js +4 -5
  133. package/es/packages/shortcut-provider/index.js +1 -2
  134. package/es/packages/shortcut-provider/src/ShortcutProvider.js +33 -3
  135. package/es/packages/shortcut-provider/src/types/index.d.ts +11 -9
  136. package/es/packages/shortcut-provider/src/utils/index.js +5 -5
  137. package/es/packages/shortcut-setter/index.d.ts +3247 -1486
  138. package/es/packages/shortcut-setter/index.js +1 -2
  139. package/es/packages/shortcut-setter/src/ShortcutSetter.js +42 -3
  140. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +3247 -1486
  141. package/es/packages/shortcut-setter/src/ShortcutSetterItem.js +139 -3
  142. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue.d.ts +1700 -1661
  143. package/es/packages/steps-wheel/index.js +1 -2
  144. package/es/packages/steps-wheel/src/StepsWheel.js +264 -3
  145. package/es/packages/time-line/index.js +1 -2
  146. package/es/packages/time-line/src/TimeLine.js +69 -3
  147. package/es/src/components/SelectPage/SelectPage.js +62 -3
  148. package/es/src/components/SelectPage/index.js +2 -3
  149. package/es/src/components/SvgIcon/SvgIcon.js +35 -3
  150. package/es/src/components/SvgIcon/index.js +2 -3
  151. package/es/src/components/TextOverTooltip/TextOverTooltip.js +75 -3
  152. package/es/src/components/TextOverTooltip/index.js +2 -3
  153. package/es/src/components/player-vod/index.js +13 -3
  154. package/es/src/utils/anime.d.ts +1 -1
  155. package/package.json +1 -1
  156. package/es/packages/big-table/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  157. package/es/packages/big-table/src/components/edit-form/edit-separate.vue_vue_type_script_setup_true_lang.js +0 -89
  158. package/es/packages/big-table/src/components/input-button.vue_vue_type_script_setup_true_lang.js +0 -33
  159. package/es/packages/big-table/src/components/separate.vue_vue_type_script_setup_true_lang.js +0 -28
  160. package/es/packages/bpmn-workflow/src/BpmnWorkflow.vue_vue_type_script_setup_true_lang.js +0 -252
  161. package/es/packages/button-print/src/components/IdentityVerification.vue_vue_type_script_setup_true_lang.js +0 -128
  162. package/es/packages/chunk-upload/src/chunk-upload-new.vue_vue_type_script_setup_true_lang.js +0 -473
  163. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue_vue_type_script_setup_true_lang.js +0 -327
  164. package/es/packages/drag-layout/src/DragFormLeftItem.vue_vue_type_script_setup_true_lang.js +0 -122
  165. package/es/packages/drag-layout/src/DragFormRightItem.vue_vue_type_script_setup_true_lang.js +0 -267
  166. package/es/packages/drag-layout/src/DragLayout.vue_vue_type_script_setup_true_lang.js +0 -659
  167. package/es/packages/fabric-chart/src/FabricChart.vue_vue_type_script_setup_true_lang.js +0 -315
  168. package/es/packages/fabric-chart/src/components/PopupTip.vue_vue_type_script_setup_true_lang.js +0 -32
  169. package/es/packages/field-set/src/FieldSet.vue_vue_type_script_setup_true_lang.js +0 -22
  170. package/es/packages/field-set/src/NewFieldSet.js +0 -4
  171. package/es/packages/field-set/src/NewFieldSet.vue.d.ts +0 -2607
  172. package/es/packages/field-set/src/NewFieldSet.vue_vue_type_script_setup_true_lang.js +0 -299
  173. package/es/packages/field-set/src/OldFieldSet.js +0 -4
  174. package/es/packages/field-set/src/OldFieldSet.vue.d.ts +0 -2610
  175. package/es/packages/field-set/src/OldFieldSet.vue_vue_type_script_setup_true_lang.js +0 -330
  176. package/es/packages/form-render/src/FormRender.vue_vue_type_script_setup_true_lang.js +0 -187
  177. package/es/packages/form-table/src/FormTable.vue_vue_type_script_setup_true_lang.js +0 -474
  178. package/es/packages/form-table/src/components/table-age.vue_vue_type_script_setup_true_lang.js +0 -232
  179. package/es/packages/form-table/src/components/table-date-picker.vue_vue_type_script_setup_true_lang.js +0 -175
  180. package/es/packages/form-table/src/components/table-digital.vue_vue_type_script_setup_true_lang.js +0 -138
  181. package/es/packages/form-table/src/components/table-input-password.vue_vue_type_script_setup_true_lang.js +0 -138
  182. package/es/packages/form-table/src/components/table-input.vue_vue_type_script_setup_true_lang.js +0 -124
  183. package/es/packages/form-table/src/components/table-month-picker.vue_vue_type_script_setup_true_lang.js +0 -99
  184. package/es/packages/form-table/src/components/table-select-multiple.vue_vue_type_script_setup_true_lang.js +0 -160
  185. package/es/packages/form-table/src/components/table-select.vue_vue_type_script_setup_true_lang.js +0 -155
  186. package/es/packages/form-table/src/components/table-textarea.vue_vue_type_script_setup_true_lang.js +0 -153
  187. package/es/packages/form-table/src/components/table-time-picker.vue_vue_type_script_setup_true_lang.js +0 -145
  188. package/es/packages/form-table/src/components/table-tree-select.vue_vue_type_script_setup_true_lang.js +0 -281
  189. package/es/packages/form-table/src/components/text-over-tooltip.vue_vue_type_script_setup_true_lang.js +0 -62
  190. package/es/packages/info-header/src/HiddenContent.vue_vue_type_script_setup_true_lang.js +0 -66
  191. package/es/packages/info-header/src/InfoHeader.vue_vue_type_script_setup_true_lang.js +0 -233
  192. package/es/packages/map/src/Map.vue_vue_type_script_setup_true_lang.js +0 -336
  193. package/es/packages/scale-view/src/ScaleView.vue_vue_type_script_setup_true_lang.js +0 -422
  194. package/es/packages/scale-view/src/components/AnswerParse.vue_vue_type_script_setup_true_lang.js +0 -78
  195. package/es/packages/scale-view/src/components/EvaluateCountdown.vue_vue_type_script_setup_true_lang.js +0 -107
  196. package/es/packages/scale-view/src/components/EvaluatePage.vue_vue_type_script_setup_true_lang.js +0 -139
  197. package/es/packages/scale-view/src/components/LoadingCom.vue_vue_type_template_id_413329b0_lang.js +0 -16
  198. package/es/packages/scale-view/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  199. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -77
  200. package/es/packages/select-label/src/LabelFormContent.vue_vue_type_script_setup_true_lang.js +0 -441
  201. package/es/packages/select-label/src/components/label-classify.vue_vue_type_script_setup_true_lang.js +0 -127
  202. package/es/packages/shortcut-provider/src/ShortcutProvider.vue_vue_type_script_setup_true_lang.js +0 -32
  203. package/es/packages/shortcut-setter/src/ShortcutSetter.vue_vue_type_script_setup_true_lang.js +0 -38
  204. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue_vue_type_script_setup_true_lang.js +0 -125
  205. package/es/packages/steps-wheel/src/StepsWheel.vue_vue_type_script_setup_true_lang.js +0 -263
  206. package/es/packages/time-line/src/TimeLine.vue_vue_type_script_setup_true_lang.js +0 -68
  207. package/es/src/components/SelectPage/SelectPage.vue_vue_type_script_setup_true_lang.js +0 -61
  208. package/es/src/components/SvgIcon/SvgIcon.vue_vue_type_script_setup_true_lang.js +0 -34
  209. package/es/src/components/TextOverTooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -74
  210. package/es/src/components/player-vod/index.vue_vue_type_script_setup_true_lang.js +0 -12
@@ -408,9 +408,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
408
408
  title: string;
409
409
  }[]>;
410
410
  formHeight: import("vue").ComputedRef<any>;
411
- scrollTo: (id: string) => Promise<void>;
412
411
  onScroll: () => void;
413
- bindInfo: (info: import("../../../es/src/types").AnyObject) => import("../../../es/src/types").AnyObject;
414
412
  queryWidget: (key: string, wrapperElement: HTMLElement, fieldList: import("./src/types").FieldItem[]) => Promise<{
415
413
  widgetElement: HTMLInputElement | null | undefined;
416
414
  widgetElementList: HTMLInputElement[];
@@ -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, 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, (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 };
@@ -408,9 +408,7 @@ declare const _default: import("vue").DefineComponent<{
408
408
  title: string;
409
409
  }[]>;
410
410
  formHeight: import("vue").ComputedRef<any>;
411
- scrollTo: (id: string) => Promise<void>;
412
411
  onScroll: () => void;
413
- bindInfo: (info: AnyObject) => AnyObject;
414
412
  queryWidget: (key: string, wrapperElement: HTMLElement, fieldList: FieldItem[]) => Promise<{
415
413
  widgetElement: HTMLInputElement | null | undefined;
416
414
  widgetElementList: HTMLInputElement[];
@@ -6,18 +6,18 @@ declare type DependKeyObj = {
6
6
  paramValue: string;
7
7
  };
8
8
  declare type UrlConfig = {
9
- method: FormRequestType;
10
- nameKey: string;
11
- dependKey: ArrayAble<string> | Record<string, string> | ArrayAble<DependKeyObj>;
9
+ method?: FormRequestType;
10
+ nameKey?: string;
11
+ valueKey?: string;
12
+ dependKey?: ArrayAble<string> | Record<string, string> | ArrayAble<DependKeyObj>;
12
13
  url: string;
13
- valueKey: string;
14
14
  };
15
15
  export declare const SEARCH_CASCADE: import("vue").DefineComponent<{
16
16
  options: {
17
17
  type: PropType<AnyObject[]>;
18
18
  default: () => never[];
19
19
  };
20
- deep: {
20
+ depth: {
21
21
  type: (NumberConstructor | StringConstructor)[];
22
22
  required: true;
23
23
  };
@@ -34,7 +34,7 @@ export declare const SEARCH_CASCADE: import("vue").DefineComponent<{
34
34
  type: PropType<AnyObject[]>;
35
35
  default: () => never[];
36
36
  };
37
- deep: {
37
+ depth: {
38
38
  type: (NumberConstructor | StringConstructor)[];
39
39
  required: true;
40
40
  };
@@ -1,8 +1,8 @@
1
- import { defineComponent, ref, inject, computed, watch, createVNode } from 'vue';
1
+ import { defineComponent, ref, computed, inject, watch, createVNode } from 'vue';
2
2
  import { isField } from '@formily/core';
3
- import { isObject } from 'lodash-es';
3
+ import { isEqual } from 'lodash-es';
4
4
  import { InjectAsyncQueue } from '../../constants/index.js';
5
- import { assignUpdateValue, formRenderLog, traverseDependKey } from '../../utils/index.js';
5
+ import { assignUpdateValue, traverseDependKey } from '../../utils/index.js';
6
6
  import { connect, mapProps } from '@formily/vue';
7
7
  import { NCascader } from 'naive-ui';
8
8
  import { useFormField } from '../../hooks/useFormField.js';
@@ -14,7 +14,7 @@ const script = defineComponent({
14
14
  type: Array,
15
15
  default: () => []
16
16
  },
17
- deep: {
17
+ depth: {
18
18
  type: [Number, String],
19
19
  required: true
20
20
  },
@@ -32,55 +32,69 @@ const script = defineComponent({
32
32
  slots,
33
33
  emit
34
34
  }) {
35
- const _options = ref(null);
36
- const asyncQueue = inject(InjectAsyncQueue);
35
+ const remoteOptions = ref();
37
36
  const {
38
37
  field,
39
38
  title
40
39
  } = useFormField();
41
- async function fetchData(option) {
42
- if (!option && _options.value)
43
- return;
44
- const config = props.urlConfig;
45
- if (!config)
46
- return;
47
- if (!isObject(config)) {
48
- formRenderLog(`invalid urlConfig (${config}) in CASCADER => ${title.value}`, "warn");
49
- return;
40
+ const labelKey = computed(() => {
41
+ var _a, _b;
42
+ return (_b = (_a = props.urlConfig) == null ? void 0 : _a.nameKey) != null ? _b : "text";
43
+ });
44
+ const valueKey = computed(() => {
45
+ var _a, _b;
46
+ return (_b = (_a = props.urlConfig) == null ? void 0 : _a.valueKey) != null ? _b : "value";
47
+ });
48
+ const _value = computed(() => {
49
+ try {
50
+ const parsed = Array.isArray(props.value) ? props.value : JSON.parse(props.value || "");
51
+ if (!Array.isArray(parsed) || !parsed.length)
52
+ return null;
53
+ return parsed.map((option) => option[labelKey.value]).join(" / ");
54
+ } catch (e) {
55
+ return null;
50
56
  }
51
- if (deepFor(option) + 1 >= props.deep)
52
- return;
53
- let data = await asyncQueue.addAsync({
54
- ...createRequestParams(deepFor(option), config, option),
55
- key: title.value
56
- });
57
- if (!Array.isArray(data)) {
58
- data = [];
57
+ });
58
+ function updateValue(_, __, options) {
59
+ emit("update:value", options.map(optionSimplify));
60
+ function optionSimplify(option) {
61
+ return {
62
+ ...option,
63
+ label: option[labelKey.value],
64
+ children: void 0,
65
+ parent: void 0
66
+ };
59
67
  }
60
- if (!data.length && isObject(option)) {
68
+ }
69
+ const asyncQueue = inject(InjectAsyncQueue);
70
+ async function fetchData(option) {
71
+ if (notNeedToFetchData(props, option))
72
+ return;
73
+ const data = await asyncQueue.addAsync(createRequestParams(deepFor(option), configFor(props), title.value, option));
74
+ if (!data.length && option) {
61
75
  option.isLeaf = true;
62
76
  updateValue(null, null, getOptionChain(option));
63
77
  show.value = false;
64
78
  return;
65
79
  }
66
80
  const result = data.map((item) => optionNormalize(item, deepFor(option)));
67
- option ? option.children = result : _options.value = result;
68
- function deepFor(option2) {
69
- var _a;
70
- return (_a = option2 == null ? void 0 : option2.depth) != null ? _a : -1;
81
+ option ? option.children = result : remoteOptions.value = result;
82
+ function notNeedToFetchData(props2, option2) {
83
+ return !configFor(props2) || !option2 && remoteOptions.value || deepFor(option2) >= deepFor(props2) - 1;
71
84
  }
72
- function createRequestParams(deep, config2, option2) {
85
+ function createRequestParams(deep, config, key, option2) {
73
86
  const params = {
74
87
  lvlnr: deep + 1 + ""
75
88
  };
76
- if (option2 && config2.dependKey) {
77
- traverseDependKey(config2.dependKey, (dependKey, valueKey2) => {
89
+ if (option2 && config.dependKey) {
90
+ traverseDependKey(config.dependKey, (dependKey, valueKey2) => {
78
91
  params[valueKey2] = option2[dependKey];
79
92
  });
80
93
  }
81
94
  return {
82
95
  params,
83
- ...config2
96
+ ...config,
97
+ key
84
98
  };
85
99
  }
86
100
  function getOptionChain(option2) {
@@ -92,66 +106,44 @@ const script = defineComponent({
92
106
  }
93
107
  return result2;
94
108
  }
95
- function optionNormalize(data2, deep) {
109
+ function optionNormalize(data2, depth) {
96
110
  return {
97
111
  [labelKey.value]: data2[labelKey.value],
98
112
  [valueKey.value]: data2[valueKey.value],
99
- depth: deep + 1,
113
+ depth: depth + 1,
100
114
  parent: option,
101
- isLeaf: deep + 2 >= props.deep
115
+ isLeaf: depth + 2 >= deepFor(props)
102
116
  };
103
117
  }
118
+ function configFor(target) {
119
+ return target.urlConfig;
120
+ }
121
+ function deepFor(target) {
122
+ var _a;
123
+ return (_a = target == null ? void 0 : target.depth) != null ? _a : -1;
124
+ }
104
125
  }
105
- const renderOptions = computed(() => {
106
- return _options.value || props.options || [];
107
- });
108
126
  watch(() => props.value, (n, o) => {
109
127
  var _a, _b;
110
- if (n != null && o == null) {
111
- fetchData();
112
- }
113
- if (isField(field.value) && field.value.visited) {
114
- (_b = (_a = field.value).validate) == null ? void 0 : _b.call(_a);
115
- }
128
+ n != null && o == null && fetchData();
129
+ isField(field.value) && field.value.visited && ((_b = (_a = field.value).validate) == null ? void 0 : _b.call(_a));
116
130
  }, {
117
131
  immediate: true
118
132
  });
119
- const labelKey = computed(() => {
120
- var _a, _b;
121
- return (_b = (_a = props.urlConfig) == null ? void 0 : _a.nameKey) != null ? _b : "text";
122
- });
123
- const valueKey = computed(() => {
124
- var _a, _b;
125
- return (_b = (_a = props.urlConfig) == null ? void 0 : _a.valueKey) != null ? _b : "value";
126
- });
127
- const _value = computed(() => {
128
- try {
129
- const parsed = Array.isArray(props.value) ? props.value : JSON.parse(props.value || "");
130
- if (Array.isArray(parsed)) {
131
- return parsed.map((option) => option[labelKey.value]).join(" / ");
132
- } else {
133
- return [];
134
- }
135
- } catch (e) {
136
- return "";
137
- }
133
+ watch(() => props.urlConfig, async (config, oldConfig) => {
134
+ if (isEqual(config, oldConfig))
135
+ return;
136
+ remoteOptions.value = null;
137
+ await fetchData();
138
138
  });
139
- function updateValue(_, __, options) {
140
- emit("update:value", options.map(optionSimplify));
141
- function optionSimplify(option) {
142
- return {
143
- ...option,
144
- label: option[labelKey.value],
145
- children: void 0,
146
- parent: void 0
147
- };
148
- }
149
- }
150
139
  const show = ref(false);
151
140
  function updateShow(v) {
152
141
  show.value = !!v;
153
142
  v && fetchData();
154
143
  }
144
+ const parsedOptions = computed(() => {
145
+ return remoteOptions.value || props.options || [];
146
+ });
155
147
  function focusDecorator(onFocus) {
156
148
  return (...args) => {
157
149
  if (isField(field.value)) {
@@ -162,17 +154,17 @@ const script = defineComponent({
162
154
  }
163
155
  return () => {
164
156
  return createVNode(NCascader, {
165
- "value": _value.value,
157
+ "remote": true,
158
+ "checkStrategy": "child",
166
159
  "show": !!show.value,
160
+ "onUpdate:show": updateShow,
161
+ "value": _value.value,
167
162
  "onUpdate:value": updateValue,
168
- "remote": true,
169
163
  "labelField": labelKey.value,
170
164
  "valueField": valueKey.value,
171
- "options": renderOptions.value,
172
- "checkStrategy": "child",
165
+ "options": parsedOptions.value,
173
166
  "onLoad": fetchData,
174
- "onFocus": focusDecorator(props.onFocus),
175
- "onUpdate:show": updateShow
167
+ "onFocus": focusDecorator(props.onFocus)
176
168
  }, slots);
177
169
  };
178
170
  }
@@ -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,17 +33,34 @@ 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
+ });
32
45
  function add() {
33
- combinationRepeat.value++;
46
+ groupNum.value++;
34
47
  _values.value.push({});
35
48
  emitChange();
36
49
  }
37
50
  function remove(idx) {
38
- combinationRepeat.value--;
51
+ groupNum.value--;
39
52
  _values.value.splice(idx, 1);
40
53
  emitChange();
41
54
  }
55
+ watch(maxGroupNum, (value) => {
56
+ if (groupNum.value <= value)
57
+ return;
58
+ groupNum.value = value;
59
+ _values.value.splice(groupNum.value);
60
+ emitChange();
61
+ }, {
62
+ immediate: true
63
+ });
42
64
  const _values = ref([{}]);
43
65
  function initValues(data) {
44
66
  if (!data)
@@ -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,
@@ -60,7 +60,7 @@ const FORM_ITEM = connect(script, mapProps({
60
60
  const feedback = !isVoidField(field) ? field.selfErrors.length ? field.selfErrors.join(",") : void 0 : void 0;
61
61
  return {
62
62
  ...props,
63
- required: field.required,
63
+ required: isVoidField(field) ? void 0 : field.required,
64
64
  class: "form-render__formItem",
65
65
  style: {
66
66
  "--form-item-column": (_a = props.span) != null ? _a : 3