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

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 (214) 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-date.js +11 -3
  20. package/es/packages/big-table/src/components/edit-form/edit-input.js +15 -4
  21. package/es/packages/big-table/src/components/edit-form/edit-separate.js +91 -3
  22. package/es/packages/big-table/src/components/edit-form/edit-separate.vue.d.ts +1 -0
  23. package/es/packages/big-table/src/components/edit-form/edit-time.d.ts +43 -0
  24. package/es/packages/big-table/src/components/edit-form/edit-time.js +52 -0
  25. package/es/packages/big-table/src/components/input-button.js +34 -3
  26. package/es/packages/big-table/src/components/separate.js +29 -3
  27. package/es/packages/big-table/src/hooks/useColumnConfigAdaptor.js +51 -12
  28. package/es/packages/big-table/src/hooks/useEdit.d.ts +43 -0
  29. package/es/packages/big-table/src/hooks/useEdit.js +4 -3
  30. package/es/packages/big-table/src/hooks/useFormat.js +8 -1
  31. package/es/packages/big-table/src/utils.js +1 -0
  32. package/es/packages/big-table/style/index.css +144 -0
  33. package/es/packages/bpmn-workflow/index.js +1 -2
  34. package/es/packages/bpmn-workflow/src/BpmnWorkflow.js +253 -3
  35. package/es/packages/button-print/index.js +1 -2
  36. package/es/packages/button-print/src/ButtonPrint.js +5 -3
  37. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +6 -7
  38. package/es/packages/button-print/src/components/IdentityVerification.js +129 -3
  39. package/es/packages/button-print/src/utils/print.d.ts +1 -1
  40. package/es/packages/button-print/src/utils/print.js +4 -4
  41. package/es/packages/chunk-upload/index.js +1 -1
  42. package/es/packages/chunk-upload/src/chunk-upload-new.js +474 -3
  43. package/es/packages/chunk-upload/src/vod-chunk-upload/index.js +2 -3
  44. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.js +328 -3
  45. package/es/packages/chunk-upload/src/vod-upload-modal.js +3 -4
  46. package/es/packages/drag-layout/index.js +1 -2
  47. package/es/packages/drag-layout/src/DragFormLeftItem.js +123 -3
  48. package/es/packages/drag-layout/src/DragFormRightItem.js +268 -3
  49. package/es/packages/drag-layout/src/DragLayout.js +658 -3
  50. package/es/packages/fabric-chart/index.js +1 -2
  51. package/es/packages/fabric-chart/src/FabricChart.js +315 -3
  52. package/es/packages/fabric-chart/src/components/PopupTip.js +33 -3
  53. package/es/packages/fabric-chart/src/hooks/useCenter.js +65 -89
  54. package/es/packages/fabric-chart/src/hooks/useEvent.js +9 -7
  55. package/es/packages/fabric-chart/src/hooks/useLeft.js +15 -4
  56. package/es/packages/field-set/index.d.ts +2509 -5166
  57. package/es/packages/field-set/index.js +1 -2
  58. package/es/packages/field-set/src/FieldSet.js +346 -3
  59. package/es/packages/field-set/src/FieldSet.vue.d.ts +2492 -5169
  60. package/es/packages/form-render/index.d.ts +0 -2
  61. package/es/packages/form-render/index.js +2 -3
  62. package/es/packages/form-render/src/FormRender.js +203 -3
  63. package/es/packages/form-render/src/FormRender.vue.d.ts +0 -2
  64. package/es/packages/form-render/src/components/renderer/cascader.d.ts +6 -6
  65. package/es/packages/form-render/src/components/renderer/cascader.js +72 -80
  66. package/es/packages/form-render/src/components/renderer/combination.d.ts +6 -0
  67. package/es/packages/form-render/src/components/renderer/combination.js +76 -20
  68. package/es/packages/form-render/src/components/renderer/formItem.js +1 -1
  69. package/es/packages/form-render/src/components/renderer/radio.d.ts +12 -4
  70. package/es/packages/form-render/src/components/renderer/radio.js +23 -5
  71. package/es/packages/form-render/src/components/renderer/select.js +51 -58
  72. package/es/packages/form-render/src/components/renderer/simpleComponent.d.ts +17 -2
  73. package/es/packages/form-render/src/components/renderer/simpleComponent.js +16 -14
  74. package/es/packages/form-render/src/hooks/useAsyncQueue.d.ts +1 -1
  75. package/es/packages/form-render/src/hooks/useAsyncQueue.js +1 -1
  76. package/es/packages/form-render/src/hooks/useChangeContext.d.ts +1 -1
  77. package/es/packages/form-render/src/hooks/useChangeContext.js +1 -1
  78. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +13 -9
  79. package/es/packages/form-render/src/hooks/useFormItemDeps.d.ts +3 -2
  80. package/es/packages/form-render/src/hooks/useFormItemDeps.js +5 -6
  81. package/es/packages/form-render/src/hooks/useFormRequest.d.ts +2 -2
  82. package/es/packages/form-render/src/types/fieldItem.d.ts +136 -35
  83. package/es/packages/form-render/src/types/index.d.ts +4 -2
  84. package/es/packages/form-render/src/utils/index.d.ts +4 -6
  85. package/es/packages/form-render/src/utils/index.js +6 -3
  86. package/es/packages/form-table/index.js +1 -2
  87. package/es/packages/form-table/src/FormTable.js +475 -3
  88. package/es/packages/form-table/src/components/index.js +28 -42
  89. package/es/packages/form-table/src/components/table-age.js +232 -3
  90. package/es/packages/form-table/src/components/table-date-picker.js +176 -3
  91. package/es/packages/form-table/src/components/table-digital.js +138 -3
  92. package/es/packages/form-table/src/components/table-input-password.js +138 -3
  93. package/es/packages/form-table/src/components/table-input.js +124 -3
  94. package/es/packages/form-table/src/components/table-month-picker.js +100 -3
  95. package/es/packages/form-table/src/components/table-search-more.js +5 -3
  96. package/es/packages/form-table/src/components/table-search-more.vue_vue_type_script_setup_true_lang.js +2 -2
  97. package/es/packages/form-table/src/components/table-search.js +5 -3
  98. package/es/packages/form-table/src/components/table-search.vue_vue_type_script_setup_true_lang.js +2 -2
  99. package/es/packages/form-table/src/components/table-select-multiple.js +161 -3
  100. package/es/packages/form-table/src/components/table-select.js +156 -3
  101. package/es/packages/form-table/src/components/table-textarea.js +154 -3
  102. package/es/packages/form-table/src/components/table-time-picker.js +146 -3
  103. package/es/packages/form-table/src/components/table-tree-select.js +282 -3
  104. package/es/packages/form-table/src/components/text-over-tooltip.js +63 -3
  105. package/es/packages/index.css +147 -0
  106. package/es/packages/info-header/index.d.ts +1373 -354
  107. package/es/packages/info-header/index.js +1 -2
  108. package/es/packages/info-header/src/HiddenContent.js +65 -3
  109. package/es/packages/info-header/src/HiddenContent.vue.d.ts +689 -178
  110. package/es/packages/info-header/src/InfoEllipsis.js +43 -0
  111. package/es/packages/info-header/src/InfoEllipsis.vue.d.ts +833 -0
  112. package/es/packages/info-header/src/InfoHeader.js +229 -3
  113. package/es/packages/info-header/src/InfoHeader.vue.d.ts +1373 -354
  114. package/es/packages/info-header/style/index.css +3 -0
  115. package/es/packages/map/index.js +1 -2
  116. package/es/packages/map/src/Map.js +337 -3
  117. package/es/packages/scale-view/index.js +1 -2
  118. package/es/packages/scale-view/src/ScaleView.js +418 -3
  119. package/es/packages/scale-view/src/components/AnswerParse.js +79 -3
  120. package/es/packages/scale-view/src/components/EvaluateCountdown.js +108 -3
  121. package/es/packages/scale-view/src/components/EvaluatePage.js +140 -3
  122. package/es/packages/scale-view/src/components/LoadingCom.js +17 -5
  123. package/es/packages/scale-view/src/components/NoData.js +73 -3
  124. package/es/packages/scale-view/src/components/formitem/r-cascader.js +3 -3
  125. package/es/packages/scale-view/src/components/formitem/r-select.js +3 -3
  126. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.js +78 -3
  127. package/es/packages/select-label/index.js +3 -5
  128. package/es/packages/select-label/src/LabelFormContent.js +441 -3
  129. package/es/packages/select-label/src/SelectLabel.js +5 -3
  130. package/es/packages/select-label/src/SelectLabel.vue_vue_type_script_setup_true_lang.js +5 -21
  131. package/es/packages/select-label/src/components/label-classify.js +128 -3
  132. package/es/packages/select-person/index.js +1 -2
  133. package/es/packages/select-person/src/SearchTree.js +5 -3
  134. package/es/packages/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.js +2 -2
  135. package/es/packages/select-person/src/SelectPerson.js +5 -3
  136. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.js +4 -5
  137. package/es/packages/shortcut-provider/index.js +1 -2
  138. package/es/packages/shortcut-provider/src/ShortcutProvider.js +33 -3
  139. package/es/packages/shortcut-provider/src/types/index.d.ts +11 -9
  140. package/es/packages/shortcut-provider/src/utils/index.js +5 -5
  141. package/es/packages/shortcut-setter/index.d.ts +3247 -1486
  142. package/es/packages/shortcut-setter/index.js +1 -2
  143. package/es/packages/shortcut-setter/src/ShortcutSetter.js +42 -3
  144. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +3247 -1486
  145. package/es/packages/shortcut-setter/src/ShortcutSetterItem.js +139 -3
  146. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue.d.ts +1700 -1661
  147. package/es/packages/steps-wheel/index.js +1 -2
  148. package/es/packages/steps-wheel/src/StepsWheel.js +264 -3
  149. package/es/packages/time-line/index.js +1 -2
  150. package/es/packages/time-line/src/TimeLine.js +69 -3
  151. package/es/src/components/SelectPage/SelectPage.js +62 -3
  152. package/es/src/components/SelectPage/index.js +2 -3
  153. package/es/src/components/SvgIcon/SvgIcon.js +35 -3
  154. package/es/src/components/SvgIcon/index.js +2 -3
  155. package/es/src/components/TextOverTooltip/TextOverTooltip.js +75 -3
  156. package/es/src/components/TextOverTooltip/index.js +2 -3
  157. package/es/src/components/player-vod/index.js +13 -3
  158. package/es/src/utils/anime.d.ts +1 -1
  159. package/package.json +1 -1
  160. package/es/packages/big-table/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  161. package/es/packages/big-table/src/components/edit-form/edit-separate.vue_vue_type_script_setup_true_lang.js +0 -89
  162. package/es/packages/big-table/src/components/input-button.vue_vue_type_script_setup_true_lang.js +0 -33
  163. package/es/packages/big-table/src/components/separate.vue_vue_type_script_setup_true_lang.js +0 -28
  164. package/es/packages/bpmn-workflow/src/BpmnWorkflow.vue_vue_type_script_setup_true_lang.js +0 -252
  165. package/es/packages/button-print/src/components/IdentityVerification.vue_vue_type_script_setup_true_lang.js +0 -128
  166. package/es/packages/chunk-upload/src/chunk-upload-new.vue_vue_type_script_setup_true_lang.js +0 -473
  167. package/es/packages/chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue_vue_type_script_setup_true_lang.js +0 -327
  168. package/es/packages/drag-layout/src/DragFormLeftItem.vue_vue_type_script_setup_true_lang.js +0 -122
  169. package/es/packages/drag-layout/src/DragFormRightItem.vue_vue_type_script_setup_true_lang.js +0 -267
  170. package/es/packages/drag-layout/src/DragLayout.vue_vue_type_script_setup_true_lang.js +0 -659
  171. package/es/packages/fabric-chart/src/FabricChart.vue_vue_type_script_setup_true_lang.js +0 -315
  172. package/es/packages/fabric-chart/src/components/PopupTip.vue_vue_type_script_setup_true_lang.js +0 -32
  173. package/es/packages/field-set/src/FieldSet.vue_vue_type_script_setup_true_lang.js +0 -22
  174. package/es/packages/field-set/src/NewFieldSet.js +0 -4
  175. package/es/packages/field-set/src/NewFieldSet.vue.d.ts +0 -2607
  176. package/es/packages/field-set/src/NewFieldSet.vue_vue_type_script_setup_true_lang.js +0 -299
  177. package/es/packages/field-set/src/OldFieldSet.js +0 -4
  178. package/es/packages/field-set/src/OldFieldSet.vue.d.ts +0 -2610
  179. package/es/packages/field-set/src/OldFieldSet.vue_vue_type_script_setup_true_lang.js +0 -330
  180. package/es/packages/form-render/src/FormRender.vue_vue_type_script_setup_true_lang.js +0 -187
  181. package/es/packages/form-table/src/FormTable.vue_vue_type_script_setup_true_lang.js +0 -474
  182. package/es/packages/form-table/src/components/table-age.vue_vue_type_script_setup_true_lang.js +0 -232
  183. package/es/packages/form-table/src/components/table-date-picker.vue_vue_type_script_setup_true_lang.js +0 -175
  184. package/es/packages/form-table/src/components/table-digital.vue_vue_type_script_setup_true_lang.js +0 -138
  185. package/es/packages/form-table/src/components/table-input-password.vue_vue_type_script_setup_true_lang.js +0 -138
  186. package/es/packages/form-table/src/components/table-input.vue_vue_type_script_setup_true_lang.js +0 -124
  187. package/es/packages/form-table/src/components/table-month-picker.vue_vue_type_script_setup_true_lang.js +0 -99
  188. package/es/packages/form-table/src/components/table-select-multiple.vue_vue_type_script_setup_true_lang.js +0 -160
  189. package/es/packages/form-table/src/components/table-select.vue_vue_type_script_setup_true_lang.js +0 -155
  190. package/es/packages/form-table/src/components/table-textarea.vue_vue_type_script_setup_true_lang.js +0 -153
  191. package/es/packages/form-table/src/components/table-time-picker.vue_vue_type_script_setup_true_lang.js +0 -145
  192. package/es/packages/form-table/src/components/table-tree-select.vue_vue_type_script_setup_true_lang.js +0 -281
  193. package/es/packages/form-table/src/components/text-over-tooltip.vue_vue_type_script_setup_true_lang.js +0 -62
  194. package/es/packages/info-header/src/HiddenContent.vue_vue_type_script_setup_true_lang.js +0 -66
  195. package/es/packages/info-header/src/InfoHeader.vue_vue_type_script_setup_true_lang.js +0 -233
  196. package/es/packages/map/src/Map.vue_vue_type_script_setup_true_lang.js +0 -336
  197. package/es/packages/scale-view/src/ScaleView.vue_vue_type_script_setup_true_lang.js +0 -422
  198. package/es/packages/scale-view/src/components/AnswerParse.vue_vue_type_script_setup_true_lang.js +0 -78
  199. package/es/packages/scale-view/src/components/EvaluateCountdown.vue_vue_type_script_setup_true_lang.js +0 -107
  200. package/es/packages/scale-view/src/components/EvaluatePage.vue_vue_type_script_setup_true_lang.js +0 -139
  201. package/es/packages/scale-view/src/components/LoadingCom.vue_vue_type_template_id_413329b0_lang.js +0 -16
  202. package/es/packages/scale-view/src/components/NoData.vue_vue_type_script_setup_true_lang.js +0 -72
  203. package/es/packages/scale-view/src/components/formitem/text-over-tooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -77
  204. package/es/packages/select-label/src/LabelFormContent.vue_vue_type_script_setup_true_lang.js +0 -441
  205. package/es/packages/select-label/src/components/label-classify.vue_vue_type_script_setup_true_lang.js +0 -127
  206. package/es/packages/shortcut-provider/src/ShortcutProvider.vue_vue_type_script_setup_true_lang.js +0 -32
  207. package/es/packages/shortcut-setter/src/ShortcutSetter.vue_vue_type_script_setup_true_lang.js +0 -38
  208. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue_vue_type_script_setup_true_lang.js +0 -125
  209. package/es/packages/steps-wheel/src/StepsWheel.vue_vue_type_script_setup_true_lang.js +0 -263
  210. package/es/packages/time-line/src/TimeLine.vue_vue_type_script_setup_true_lang.js +0 -68
  211. package/es/src/components/SelectPage/SelectPage.vue_vue_type_script_setup_true_lang.js +0 -61
  212. package/es/src/components/SvgIcon/SvgIcon.vue_vue_type_script_setup_true_lang.js +0 -34
  213. package/es/src/components/TextOverTooltip/TextOverTooltip.vue_vue_type_script_setup_true_lang.js +0 -74
  214. package/es/src/components/player-vod/index.vue_vue_type_script_setup_true_lang.js +0 -12
@@ -1,10 +1,13 @@
1
- import { defineComponent, ref, createVNode, createTextVNode, toRaw } from 'vue';
2
- import { assignUpdateValue, formRenderLog } from '../../utils/index.js';
1
+ import { defineComponent, onMounted, ref, computed, watch, createVNode, createTextVNode } from 'vue';
2
+ import { isField } from '@formily/core';
3
+ import { Path } from '../../../../../node_modules/@formily/path/esm/index.js';
4
+ import { flatten, isNumber } from 'lodash-es';
5
+ import { useFormField } from '../../../../../packages/form-render';
6
+ import { arrayed, assignUpdateValue, formRenderLog } from '../../utils/index.js';
3
7
  import { connect, mapProps } from '@formily/vue';
4
8
  import { useDebounceFn, isObject } from '@vueuse/core';
5
9
  import { NButton } from 'naive-ui';
6
- import '../../FormRender.js';
7
- import script$1 from '../../FormRender.vue_vue_type_script_setup_true_lang.js';
10
+ import FormRender from '../../FormRender.js';
8
11
 
9
12
  const script = defineComponent({
10
13
  name: "FormCombination",
@@ -16,6 +19,9 @@ const script = defineComponent({
16
19
  value: {
17
20
  type: String
18
21
  },
22
+ maxGroupNum: {
23
+ type: Number
24
+ },
19
25
  getProperties: {
20
26
  type: Function,
21
27
  default: () => []
@@ -27,18 +33,54 @@ const script = defineComponent({
27
33
  }) {
28
34
  const emitChange = useDebounceFn(function emitChange2() {
29
35
  emit("update:value", JSON.stringify(_values.value));
36
+ formRenderRefs.value.splice(groupNum.value);
30
37
  }, 300);
31
- const combinationRepeat = ref(1);
38
+ const {
39
+ field
40
+ } = useFormField();
41
+ onMounted(() => {
42
+ if (!isField(field.value))
43
+ return;
44
+ const tempValidator = field.value.validator;
45
+ field.value.validator = [{
46
+ async validator() {
47
+ return Promise.allSettled(formRenderRefs.value.map((formRenderRef) => formRenderRef.validate())).then((resultList) => {
48
+ const rejected = resultList.filter((res) => res.status === "rejected");
49
+ if (!rejected.length)
50
+ return "";
51
+ return flatten(rejected.map((res) => res.reason));
52
+ });
53
+ }
54
+ }, ...tempValidator ? arrayed(tempValidator) : []];
55
+ });
56
+ const formRenderRefs = ref([]);
57
+ const groupNum = ref(1);
58
+ const maxGroupNum = computed(() => {
59
+ if (!isNumber(props.maxGroupNum))
60
+ return Infinity;
61
+ if (props.maxGroupNum < 1)
62
+ return 0;
63
+ return ~~props.maxGroupNum;
64
+ });
32
65
  function add() {
33
- combinationRepeat.value++;
66
+ groupNum.value++;
34
67
  _values.value.push({});
35
68
  emitChange();
36
69
  }
37
70
  function remove(idx) {
38
- combinationRepeat.value--;
71
+ groupNum.value--;
39
72
  _values.value.splice(idx, 1);
40
73
  emitChange();
41
74
  }
75
+ watch(maxGroupNum, (value) => {
76
+ if (groupNum.value <= value)
77
+ return;
78
+ groupNum.value = value;
79
+ _values.value.splice(value);
80
+ emitChange();
81
+ }, {
82
+ immediate: true
83
+ });
42
84
  const _values = ref([{}]);
43
85
  function initValues(data) {
44
86
  if (!data)
@@ -48,19 +90,32 @@ const script = defineComponent({
48
90
  if (!Array.isArray(parsed))
49
91
  throw new Error();
50
92
  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
- }
93
+ if (idx > maxGroupNum.value - 1)
94
+ return;
95
+ if (isObject(v))
96
+ return _values.value[idx] = v;
97
+ _values.value[idx] = {};
98
+ formRenderLog(`invalid Object value ${v} in COMBINATION => ${props.title}[${idx}]`, "warn");
57
99
  });
58
- combinationRepeat.value = _values.value.length;
100
+ groupNum.value = Math.min(_values.value.length, maxGroupNum.value);
59
101
  } catch (e) {
60
102
  formRenderLog(`invalid JSON value ${data} in COMBINATION => ${props.title}`, "warn");
103
+ } finally {
104
+ setFormValueByInitValue();
105
+ }
106
+ function setFormValueByInitValue() {
107
+ _values.value.forEach((item, idx) => {
108
+ var _a;
109
+ (_a = formRenderRefs.value[idx]) == null ? void 0 : _a.setFieldState("*", (state) => {
110
+ if (!isField(state))
111
+ return;
112
+ state.value = Path.getIn(item, state.path);
113
+ });
114
+ });
61
115
  }
62
116
  }
63
- initValues(props.value);
117
+ watch(() => props.value, (value) => initValues(value));
118
+ onMounted(() => initValues(props.value));
64
119
  function stop(event) {
65
120
  event.stopPropagation();
66
121
  }
@@ -69,10 +124,10 @@ const script = defineComponent({
69
124
  value
70
125
  }) {
71
126
  !_values.value[idx] && (_values.value[idx] = {});
72
- _values.value[idx][fieldKey] = value;
127
+ Path.setIn(_values.value[idx], fieldKey, value);
73
128
  emitChange();
74
129
  }
75
- const FormRenderComponent = script$1;
130
+ const FormRenderComponent = FormRender;
76
131
  return () => {
77
132
  return createVNode("section", {
78
133
  "class": "form-render__combination"
@@ -83,16 +138,17 @@ const script = defineComponent({
83
138
  }, [props.title]), createVNode(NButton, {
84
139
  "onClick": add,
85
140
  "type": "info",
86
- "text": true
141
+ "text": true,
142
+ "disabled": groupNum.value >= maxGroupNum.value
87
143
  }, {
88
144
  default: () => [createTextVNode("\u65B0\u589E")]
89
145
  })]), Array.from({
90
- length: combinationRepeat.value
146
+ length: groupNum.value
91
147
  }).map((_, idx) => {
92
148
  return createVNode("section", {
93
149
  "class": "form-render__combinationContent"
94
150
  }, [createVNode(FormRenderComponent, {
95
- "initialData": toRaw(_values.value[idx]) || {},
151
+ "ref": (_ref) => formRenderRefs.value[idx] = _ref,
96
152
  "fieldList": props.getProperties(),
97
153
  "onUpdateValue": () => false,
98
154
  "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
@@ -1,7 +1,9 @@
1
1
  import { AnyObject } from '../../../../../../es/src/types';
2
2
  import { PropType } from 'vue';
3
3
  export declare const RADIO: import("vue").DefineComponent<{
4
- value: {};
4
+ value: {
5
+ type: (NumberConstructor | StringConstructor)[];
6
+ };
5
7
  options: {
6
8
  type: PropType<AnyObject[]>;
7
9
  default: () => never[];
@@ -10,8 +12,11 @@ export declare const RADIO: import("vue").DefineComponent<{
10
12
  type: BooleanConstructor;
11
13
  default: boolean;
12
14
  };
13
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
14
- value: {};
15
+ onChange: {};
16
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
17
+ value: {
18
+ type: (NumberConstructor | StringConstructor)[];
19
+ };
15
20
  options: {
16
21
  type: PropType<AnyObject[]>;
17
22
  default: () => never[];
@@ -20,7 +25,10 @@ export declare const RADIO: import("vue").DefineComponent<{
20
25
  type: BooleanConstructor;
21
26
  default: boolean;
22
27
  };
23
- }>>, {
28
+ onChange: {};
29
+ }>> & {
30
+ "onUpdate:value"?: ((...args: any[]) => any) | undefined;
31
+ }, {
24
32
  options: AnyObject[];
25
33
  vertical: boolean;
26
34
  }>;
@@ -1,11 +1,13 @@
1
- import { defineComponent, createVNode } from 'vue';
1
+ import { defineComponent, computed, createVNode } from 'vue';
2
2
  import { connect, mapProps } from '@formily/vue';
3
3
  import { NRadioGroup, NSpace, NRadio } from 'naive-ui';
4
4
  import { assignUpdateValue } from '../../utils/index.js';
5
5
 
6
6
  const script = defineComponent({
7
7
  props: {
8
- value: {},
8
+ value: {
9
+ type: [String, Number]
10
+ },
9
11
  options: {
10
12
  type: Array,
11
13
  default: () => []
@@ -13,12 +15,28 @@ const script = defineComponent({
13
15
  vertical: {
14
16
  type: Boolean,
15
17
  default: false
16
- }
18
+ },
19
+ onChange: {}
17
20
  },
18
- setup(props) {
21
+ emits: ["update:value"],
22
+ setup(props, {
23
+ emit
24
+ }) {
25
+ function dangerousTypeTransform(value) {
26
+ return value + "";
27
+ }
28
+ const valueRef = computed({
29
+ get() {
30
+ return dangerousTypeTransform(props.value);
31
+ },
32
+ set(v) {
33
+ emit("update:value", v);
34
+ }
35
+ });
19
36
  return () => {
20
37
  return createVNode(NRadioGroup, {
21
- "value": props.value
38
+ "value": valueRef.value,
39
+ "onUpdate:value": ($event) => valueRef.value = $event
22
40
  }, {
23
41
  default: () => [createVNode(NSpace, {
24
42
  "vertical": props.vertical
@@ -1,9 +1,8 @@
1
- import { defineComponent, ref, inject, computed, watch, nextTick, createVNode } from 'vue';
1
+ import { defineComponent, ref, computed, inject, watch, createVNode } from 'vue';
2
2
  import { isField } from '@formily/core';
3
- import { cloneDeep } from 'lodash-es';
4
- import { InjectAsyncQueue, InjectionFormItemDepsCollector, InjectionChangeContextCollector } from '../../constants/index.js';
5
- import { assignUpdateValue, formRenderLog, traverseDependKey } from '../../utils/index.js';
6
- import { isObject } from '@vueuse/core';
3
+ import { isEqual, cloneDeep } from 'lodash-es';
4
+ import { InjectionChangeContextCollector, InjectAsyncQueue, InjectionFormItemDepsCollector } from '../../constants/index.js';
5
+ import { assignUpdateValue, traverseDependKey } from '../../utils/index.js';
7
6
  import { connect, mapProps } from '@formily/vue';
8
7
  import { NSelect } from 'naive-ui';
9
8
  import { useFormField } from '../../hooks/useFormField.js';
@@ -33,50 +32,52 @@ const script = defineComponent({
33
32
  }) {
34
33
  const remoteOptions = ref(null);
35
34
  const lastSearch = ref("");
36
- const asyncQueue = inject(InjectAsyncQueue);
35
+ const labelKey = computed(() => {
36
+ var _a, _b;
37
+ return (_b = (_a = props.urlConfig) == null ? void 0 : _a.nameKey) != null ? _b : "text";
38
+ });
39
+ const valueKey = computed(() => {
40
+ var _a, _b;
41
+ return (_b = (_a = props.urlConfig) == null ? void 0 : _a.valueKey) != null ? _b : "value";
42
+ });
43
+ const changeContextCollector = inject(InjectionChangeContextCollector);
44
+ function update(v, option) {
45
+ changeContextCollector == null ? void 0 : changeContextCollector.setContext(fieldKey.value, "currentOption", cloneDeep(option));
46
+ emit("update:value", v);
47
+ }
37
48
  const {
38
49
  title,
39
50
  field,
40
51
  fieldKey
41
52
  } = useFormField();
42
- function filterOption(options, searchContent) {
43
- return options.filter((option) => {
44
- return !searchContent || String(option[labelKey.value]).includes(searchContent);
45
- });
46
- }
53
+ const asyncQueue = inject(InjectAsyncQueue);
47
54
  async function fetchData(content) {
48
55
  lastSearch.value = content || "";
49
- if (remoteOptions.value)
50
- return;
51
- const config = props.urlConfig;
52
- if (!config) {
56
+ if (!configFor(props)) {
53
57
  return remoteOptions.value = null;
54
58
  }
55
- if (!isObject(config)) {
56
- formRenderLog(`invalid urlConfig (${config}) in SELECT => ${title.value}`, "warn");
57
- return remoteOptions.value = null;
58
- }
59
- try {
60
- remoteOptions.value = await asyncQueue.addAsync({
61
- ...createParams(config, field.value),
62
- key: title.value
63
- });
64
- } catch (e) {
65
- remoteOptions.value = null;
66
- }
67
- function createParams(config2, field2) {
59
+ if (remoteOptions.value)
60
+ return;
61
+ remoteOptions.value = await asyncQueue.addAsync({
62
+ ...createParams(configFor(props), field.value, title.value)
63
+ });
64
+ function createParams(config, field2, key) {
68
65
  const _params = {};
69
- traverseDependKey(config2.dependKey, (dependKey, valueKey2) => {
66
+ traverseDependKey(config.dependKey, (dependKey, valueKey2) => {
70
67
  const _field = field2.query(dependKey).take();
71
68
  if (isField(_field)) {
72
69
  _params[valueKey2] = _field.value;
73
70
  }
74
71
  });
75
72
  return {
76
- ...config2,
77
- params: Object.assign({}, config2.params, _params)
73
+ ...config,
74
+ params: Object.assign({}, config.params, _params),
75
+ key
78
76
  };
79
77
  }
78
+ function configFor(target) {
79
+ return target.urlConfig;
80
+ }
80
81
  }
81
82
  const parsedOptions = computed(() => {
82
83
  if (remoteOptions.value)
@@ -84,42 +85,34 @@ const script = defineComponent({
84
85
  if (!Array.isArray(props.options))
85
86
  return [];
86
87
  return filterOption(props.options, lastSearch.value);
88
+ function filterOption(options, searchContent) {
89
+ return options.filter((option) => {
90
+ return !searchContent || String(option[labelKey.value]).includes(searchContent);
91
+ });
92
+ }
87
93
  });
88
94
  const formItemDepsCollector = inject(InjectionFormItemDepsCollector);
89
- watch(() => props.urlConfig, (config) => {
95
+ watch(() => props.urlConfig, (config, oldConfig) => {
96
+ if (isEqual(config, oldConfig))
97
+ return;
90
98
  remoteOptions.value = null;
91
- config && formItemDepsCollector.setDeps(fieldKey.value, config.dependKey || [], async () => {
99
+ if (!config)
100
+ return;
101
+ formItemDepsCollector.setDeps(fieldKey.value, config.dependKey || [], async () => {
92
102
  remoteOptions.value = null;
93
- await nextTick();
94
- props.value != null && await fetchData();
103
+ emit("update:value", null);
95
104
  });
105
+ props.value && fetchData();
96
106
  }, {
97
107
  immediate: true
98
108
  });
99
109
  watch(() => props.value, (n, o) => {
100
110
  var _a, _b;
101
- if (o == null && n != null) {
102
- fetchData();
103
- }
104
- if (isField(field.value) && field.value.visited) {
105
- (_b = (_a = field.value).validate) == null ? void 0 : _b.call(_a);
106
- }
111
+ o == null && n != null && fetchData();
112
+ isField(field.value) && field.value.visited && ((_b = (_a = field.value).validate) == null ? void 0 : _b.call(_a));
107
113
  }, {
108
114
  immediate: true
109
115
  });
110
- const changeContextCollector = inject(InjectionChangeContextCollector);
111
- function update(v, option) {
112
- changeContextCollector == null ? void 0 : changeContextCollector.setContext(fieldKey.value, "currentOption", cloneDeep(option));
113
- emit("update:value", v);
114
- }
115
- const labelKey = computed(() => {
116
- var _a, _b;
117
- return (_b = (_a = props.urlConfig) == null ? void 0 : _a.nameKey) != null ? _b : "text";
118
- });
119
- const valueKey = computed(() => {
120
- var _a, _b;
121
- return (_b = (_a = props.urlConfig) == null ? void 0 : _a.valueKey) != null ? _b : "value";
122
- });
123
116
  function focusDecorator(onFocus) {
124
117
  return (...args) => {
125
118
  if (isField(field.value)) {
@@ -129,16 +122,16 @@ const script = defineComponent({
129
122
  };
130
123
  }
131
124
  return () => createVNode(NSelect, {
132
- "value": props.value,
133
- "onUpdate:value": update,
134
125
  "remote": true,
135
126
  "filterable": true,
127
+ "value": props.value,
128
+ "onUpdate:value": update,
136
129
  "labelField": labelKey.value,
137
130
  "valueField": valueKey.value,
131
+ "options": parsedOptions.value,
138
132
  "onSearch": fetchData,
139
133
  "onUpdate:show": (show) => show && fetchData(),
140
- "onFocus": focusDecorator(props.onFocus),
141
- "options": parsedOptions.value
134
+ "onFocus": focusDecorator(props.onFocus)
142
135
  }, slots);
143
136
  }
144
137
  });
@@ -1,2 +1,17 @@
1
- export declare const TEXT: (props: any) => JSX.Element;
2
- export declare const BUTTON: (props: any) => JSX.Element;
1
+ import { AnyObject } from '../../../../../../es/src/types';
2
+ export declare const TEXT: {
3
+ (props: AnyObject): JSX.Element;
4
+ props: {
5
+ content: {};
6
+ fieldItem: {};
7
+ value: {};
8
+ };
9
+ };
10
+ export declare const BUTTON: {
11
+ (props: AnyObject): JSX.Element;
12
+ props: {
13
+ onClick: {};
14
+ fieldItem: {};
15
+ content: {};
16
+ };
17
+ };
@@ -1,12 +1,9 @@
1
- import { createVNode, mergeProps, isVNode } from 'vue';
1
+ import { createVNode } from 'vue';
2
2
  import { connect, mapProps } from '@formily/vue';
3
3
  import { isFunction } from 'lodash-es';
4
4
  import { NButton } from 'naive-ui';
5
5
  import { createSlot } from '../../../../../packages/form-render/src/utils';
6
6
 
7
- function _isSlot(s) {
8
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
- }
10
7
  function createPropFor(props) {
11
8
  return (property) => {
12
9
  var _a;
@@ -15,8 +12,12 @@ function createPropFor(props) {
15
12
  }
16
13
  const textScript = (props) => {
17
14
  var _a, _b, _c;
18
- const propFor = createPropFor(props);
19
- return createVNode("div", (_a = propFor("componentProps")) != null ? _a : {}, [(_c = (_b = createSlot(props.content, props)).default) == null ? void 0 : _c.call(_b)]);
15
+ return createVNode("div", null, [(_c = (_b = createSlot((_a = props.content) != null ? _a : props.value, props)).default) == null ? void 0 : _c.call(_b)]);
16
+ };
17
+ textScript.props = {
18
+ content: {},
19
+ fieldItem: {},
20
+ value: {}
20
21
  };
21
22
  const TEXT = connect(textScript, mapProps((props) => {
22
23
  var _a;
@@ -26,19 +27,20 @@ const TEXT = connect(textScript, mapProps((props) => {
26
27
  };
27
28
  }));
28
29
  const buttonScript = (props) => {
29
- var _a;
30
- let _slot;
31
30
  const propFor = createPropFor(props);
32
31
  function onClick() {
33
- var _a2;
34
- const cb = propFor("onClick") || ((_a2 = propFor("componentProps")) == null ? void 0 : _a2.onClick);
32
+ var _a;
33
+ const cb = propFor("onClick") || ((_a = propFor("componentProps")) == null ? void 0 : _a.onClick);
35
34
  return () => isFunction(cb) && cb(props.fieldItem);
36
35
  }
37
- return createVNode(NButton, mergeProps((_a = propFor("componentProps")) != null ? _a : {}, {
36
+ return createVNode(NButton, {
38
37
  "onClick": onClick()
39
- }), _isSlot(_slot = createSlot(props.content, props)) ? _slot : {
40
- default: () => [_slot]
41
- });
38
+ }, createSlot(props.content, props));
39
+ };
40
+ buttonScript.props = {
41
+ onClick: {},
42
+ fieldItem: {},
43
+ content: {}
42
44
  };
43
45
  const BUTTON = connect(buttonScript, mapProps((props) => {
44
46
  var _a;
@@ -34,7 +34,7 @@ export declare class AsyncQueue<T = any, K = any, R = any> {
34
34
  export declare function useAsyncQueue(): {
35
35
  create: (parallelism?: number) => AsyncQueue<FormAsyncQueueItem, any, {
36
36
  label: string;
37
- value: any;
37
+ value: unknown;
38
38
  }[]>;
39
39
  };
40
40
  export {};
@@ -120,7 +120,7 @@ function useAsyncQueue() {
120
120
  const { data, success } = res;
121
121
  if (!success)
122
122
  throw res;
123
- cb(void 0, data);
123
+ cb(void 0, Array.isArray(data) ? data : []);
124
124
  } catch (e) {
125
125
  cb(new Error(`Request error => ${e}`));
126
126
  removeCache();
@@ -1,7 +1,7 @@
1
1
  import { FormChangeContext } from '../types';
2
2
  export declare class ContextCollector {
3
3
  private readonly contextMap;
4
- setContext(key: string, prop: keyof FormChangeContext, value: any): void;
4
+ setContext<T extends keyof FormChangeContext>(key: string, prop: T, value: FormChangeContext[T]): void;
5
5
  getContext(key: string): Partial<{
6
6
  currentOption: import("../../../../src/types").AnyObject;
7
7
  }>;
@@ -4,7 +4,7 @@ class ContextCollector {
4
4
  }
5
5
  setContext(key, prop, value) {
6
6
  const context = this.contextMap.get(key) || {};
7
- Reflect.set(context, prop, value);
7
+ context[prop] = value;
8
8
  this.contextMap.set(key, context);
9
9
  }
10
10
  getContext(key) {
@@ -1,14 +1,15 @@
1
1
  import { isObject } from '@vueuse/core';
2
- import { isArray, pick } from 'lodash-es';
2
+ import { pick } from 'lodash-es';
3
3
  import { useFormValidator, useTypeNormalize } from '../../../../packages/form-render';
4
- import { fieldKeyEscape, createLinebarId, arrayed, transformDateFormat } from '../utils/index.js';
4
+ import { fieldKeyEscape, arrayed, createLinebarId, elementIdEscape, transformDateFormat } from '../utils/index.js';
5
5
 
6
6
  function useFieldListAdaptor(collector, uuid) {
7
7
  const { createValidatorSchema } = useFormValidator();
8
8
  const createStandardSchema = (item) => {
9
+ var _a;
9
10
  const result = {
10
11
  name: item.val_key,
11
- type: "string",
12
+ type: (_a = item.fieldType) != null ? _a : "string",
12
13
  title: item.alias || item.name,
13
14
  "x-component": item.html_type,
14
15
  "x-component-props": {
@@ -30,7 +31,7 @@ function useFieldListAdaptor(collector, uuid) {
30
31
  showLabel: item.hide_title !== "1",
31
32
  propertyKey: item.val_key,
32
33
  annotation: item.annotation,
33
- id: `${uuid}-${item.val_key}`,
34
+ id: elementIdEscape(`${uuid}-${item.val_key}`),
34
35
  ...item.decoratorProps || {}
35
36
  }
36
37
  });
@@ -80,7 +81,7 @@ function useFieldListAdaptor(collector, uuid) {
80
81
  const schema = createStandardSchema(item);
81
82
  Object.assign(schema["x-component-props"], {
82
83
  urlConfig: item.urlConfig,
83
- deep: (_a = item.wordbook) == null ? void 0 : _a.level_num,
84
+ depth: (_a = item.wordbook) == null ? void 0 : _a.level_num,
84
85
  options: item.option
85
86
  });
86
87
  return schema;
@@ -95,9 +96,13 @@ function useFieldListAdaptor(collector, uuid) {
95
96
  };
96
97
  const createCombinationSchema = (item) => {
97
98
  const schema = createStandardSchema(item);
98
- schema["x-decorator-props"].showLabel = false;
99
+ Object.assign(schema["x-decorator-props"], {
100
+ showLabel: false,
101
+ showFeedback: false
102
+ });
99
103
  Object.assign(schema["x-component-props"], {
100
104
  title: item.alias || item.name,
105
+ maxGroupNum: item.maxGroupNum,
101
106
  getProperties: () => item.children || []
102
107
  });
103
108
  return schema;
@@ -126,7 +131,6 @@ function useFieldListAdaptor(collector, uuid) {
126
131
  };
127
132
  const createCustomSchema = (item) => {
128
133
  const schema = createStandardSchema(item);
129
- item.fieldType && (schema.type = item.fieldType);
130
134
  Object.assign(schema["x-component-props"], {
131
135
  fieldItem: item
132
136
  });
@@ -215,8 +219,8 @@ function useFieldListAdaptor(collector, uuid) {
215
219
  return schema;
216
220
  }
217
221
  function createFieldName(fieldItem) {
218
- if (isArray(fieldItem.suffixConfig)) {
219
- return fieldKeyEscape([fieldItem, ...fieldItem.suffixConfig]);
222
+ if (fieldItem.suffixConfig) {
223
+ return fieldKeyEscape([fieldItem, ...arrayed(fieldItem.suffixConfig)]);
220
224
  }
221
225
  return fieldItem.val_key;
222
226
  }
@@ -1,8 +1,9 @@
1
1
  import { Func } from '../../../../../es/src/types';
2
+ import { DependKeyType } from '../../../../../es/packages/form-render';
2
3
  export declare class FormItemDepsCollector {
3
4
  private readonly collector;
4
- setDeps(key: string, dependKey: string | string[], callback: Func): void;
5
- trigger(dependKey: string, payload?: any): void;
5
+ setDeps(key: string, dependKeys: DependKeyType, callback: Func): void;
6
+ trigger(dependKey: string, payload?: unknown): void;
6
7
  }
7
8
  export declare function useFormItemDeps(): {
8
9
  create: () => FormItemDepsCollector;
@@ -1,16 +1,15 @@
1
1
  import { isFunction } from 'lodash-es';
2
- import { arrayed } from '../../../../packages/form-render/src/utils';
2
+ import { traverseDependKey } from '../../../../packages/form-render/src/utils';
3
3
 
4
4
  class FormItemDepsCollector {
5
5
  constructor() {
6
6
  this.collector = /* @__PURE__ */ new Map();
7
7
  }
8
- setDeps(key, dependKey, callback) {
9
- dependKey = arrayed(dependKey);
10
- dependKey.forEach((dependKey2) => {
11
- const map = this.collector.get(dependKey2) || /* @__PURE__ */ new Map();
8
+ setDeps(key, dependKeys, callback) {
9
+ traverseDependKey(dependKeys, (dependKey) => {
10
+ const map = this.collector.get(dependKey) || /* @__PURE__ */ new Map();
12
11
  map.set(key, callback);
13
- this.collector.set(dependKey2, map);
12
+ this.collector.set(dependKey, map);
14
13
  });
15
14
  }
16
15
  trigger(dependKey, payload) {
@@ -1,7 +1,7 @@
1
- import { Func } from '../../../../../es/src/types';
1
+ import { Func, WithNull } from '../../../../../es/src/types';
2
2
  declare type RequestInstance = Record<string, Func>;
3
3
  export declare function useFormRequest(): {
4
- getHttpInstance: () => RequestInstance | null;
4
+ getHttpInstance: () => WithNull<RequestInstance>;
5
5
  registGlobHttpInstance: (instance: RequestInstance) => void;
6
6
  };
7
7
  export {};