cnhis-design-vue 3.1.14 → 3.1.15-beta.10

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 (221) hide show
  1. package/es/packages/annotation-edit/src/AnnotationEdit.js +2 -1
  2. package/es/packages/big-table/index.d.ts +8 -11
  3. package/es/packages/big-table/src/BigTable.vue.d.ts +24 -19
  4. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +17 -11
  5. package/es/packages/big-table/src/bigTableProps.d.ts +4 -3
  6. package/es/packages/big-table/src/bigTableProps.js +1 -1
  7. package/es/packages/big-table/src/components/edit-form/edit-date.js +13 -4
  8. package/es/packages/big-table/src/components/edit-form/edit-select.js +2 -1
  9. package/es/packages/big-table/src/components/edit-form/edit-separate.js +18 -9
  10. package/es/packages/big-table/src/components/edit-form/edit-separate.vue.d.ts +3 -1
  11. package/es/packages/big-table/src/hooks/useAnnotation.d.ts +4 -0
  12. package/es/packages/big-table/src/hooks/useAnnotation.js +21 -0
  13. package/es/packages/big-table/src/hooks/useColumnConfigAdaptor.js +51 -36
  14. package/es/packages/big-table/src/hooks/useEdit.d.ts +3 -1
  15. package/es/packages/big-table/src/hooks/useFormat.js +8 -1
  16. package/es/packages/big-table/style/index.css +38 -1
  17. package/es/packages/bpmn-workflow/src/BpmnWorkflow.js +2 -2
  18. package/es/packages/bpmn-workflow/src/custom/customModeler/customBpmn/BpmnRenderer.js +8 -8
  19. package/es/packages/bpmn-workflow/src/custom/customModeler/customBpmn/CustomContextPadProvider.js +2 -2
  20. package/es/packages/bpmn-workflow/src/custom/customModeler/customBpmn/CustomPalette.js +1 -1
  21. package/es/packages/bpmn-workflow/src/custom/customModeler/customBpmn/CustomRenderer.js +4 -3
  22. package/es/packages/bpmn-workflow/src/custom/customModeler/customBpmn/CustomRules.js +2 -2
  23. package/es/packages/bpmn-workflow/src/custom/customModeler/index.js +1 -1
  24. package/es/packages/bpmn-workflow/src/custom/customOtherModule/CustomPopupMenu.js +2 -2
  25. package/es/packages/bpmn-workflow/src/custom/customOtherModule/zoomScroll.js +3 -3
  26. package/es/packages/button-print/src/utils/print.d.ts +1 -1
  27. package/es/packages/button-print/src/utils/print.js +1 -1
  28. package/es/packages/fabric-chart/index.d.ts +1 -0
  29. package/es/packages/fabric-chart/src/FabricChart.js +17 -17
  30. package/es/packages/fabric-chart/src/FabricChart.vue.d.ts +12 -10
  31. package/es/packages/fabric-chart/src/hooks/useCenter.js +35 -73
  32. package/es/packages/fabric-chart/src/hooks/useCumputedPoint.js +4 -2
  33. package/es/packages/fabric-chart/src/hooks/useDraw.js +1 -0
  34. package/es/packages/fabric-chart/src/hooks/useLeft.js +5 -4
  35. package/es/packages/field-set/index.d.ts +4365 -0
  36. package/es/packages/field-set/src/FieldSet.js +53 -54
  37. package/es/packages/field-set/src/FieldSet.vue.d.ts +4365 -0
  38. package/es/packages/field-set/style/index.css +0 -9
  39. package/es/packages/form-config/index.d.ts +12111 -0
  40. package/es/packages/form-config/index.js +10 -0
  41. package/es/packages/form-config/src/FormConfig.js +113 -0
  42. package/es/packages/form-config/src/FormConfig.vue.d.ts +12113 -0
  43. package/es/packages/form-config/src/components/FormConfigCreator.js +97 -0
  44. package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +5094 -0
  45. package/es/packages/form-config/src/components/FormConfigEdit.js +81 -0
  46. package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +3591 -0
  47. package/es/packages/form-config/src/constants/index.d.ts +28 -0
  48. package/es/packages/form-config/src/constants/index.js +28 -0
  49. package/es/packages/form-config/src/hooks/index.d.ts +2 -0
  50. package/es/packages/form-config/src/hooks/index.js +2 -0
  51. package/es/packages/form-config/src/hooks/useConfigurationField.d.ts +6 -0
  52. package/es/packages/form-config/src/hooks/useConfigurationField.js +103 -0
  53. package/es/packages/form-config/src/hooks/usePresetRenderer.d.ts +5 -0
  54. package/es/packages/form-config/src/hooks/usePresetRenderer.js +117 -0
  55. package/es/packages/form-config/src/hooks/useSortable.d.ts +11 -0
  56. package/es/packages/form-config/src/hooks/useSortable.js +31 -0
  57. package/es/packages/form-config/src/types/index.d.ts +18 -0
  58. package/es/packages/form-config/src/types/index.js +1 -0
  59. package/es/packages/form-config/style/index.css +108 -0
  60. package/es/packages/form-render/index.d.ts +24 -3
  61. package/es/packages/form-render/src/FormRender.js +25 -6
  62. package/es/packages/form-render/src/FormRender.vue.d.ts +24 -3
  63. package/es/packages/form-render/src/components/renderer/cascader.js +7 -7
  64. package/es/packages/form-render/src/components/renderer/combination/hooks/useDeepValidate.d.ts +5 -0
  65. package/es/packages/form-render/src/components/renderer/combination/hooks/useDeepValidate.js +32 -0
  66. package/es/packages/form-render/src/components/renderer/{combination.d.ts → combination/index.d.ts} +7 -1
  67. package/es/packages/form-render/src/components/renderer/combination/index.js +157 -0
  68. package/es/packages/form-render/src/components/renderer/complex.d.ts +2 -0
  69. package/es/packages/form-render/src/components/renderer/complex.js +2 -5
  70. package/es/packages/form-render/src/components/renderer/date.d.ts +29 -0
  71. package/es/packages/form-render/src/components/renderer/date.js +63 -56
  72. package/es/packages/form-render/src/components/renderer/formItem.js +3 -3
  73. package/es/packages/form-render/src/components/renderer/index.js +1 -1
  74. package/es/packages/form-render/src/components/renderer/radio.js +4 -1
  75. package/es/packages/form-render/src/components/renderer/select.d.ts +9 -0
  76. package/es/packages/form-render/src/components/renderer/select.js +28 -17
  77. package/es/packages/form-render/src/constants/index.d.ts +2 -1
  78. package/es/packages/form-render/src/hooks/useAnchor.d.ts +7 -6
  79. package/es/packages/form-render/src/hooks/useAnchor.js +1 -2
  80. package/es/packages/form-render/src/hooks/useAsyncQueue.d.ts +6 -1
  81. package/es/packages/form-render/src/hooks/useAsyncQueue.js +12 -7
  82. package/es/packages/form-render/src/hooks/useCommonInjection.d.ts +6 -0
  83. package/es/packages/form-render/src/hooks/useCommonInjection.js +19 -0
  84. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +9 -7
  85. package/es/packages/form-render/src/hooks/useFormContext.d.ts +3 -3
  86. package/es/packages/form-render/src/hooks/useFormContext.js +21 -3
  87. package/es/packages/form-render/src/hooks/useFormRenderLifeCycle.d.ts +13 -0
  88. package/es/packages/form-render/src/hooks/useFormRenderLifeCycle.js +10 -0
  89. package/es/packages/form-render/src/types/fieldItem.d.ts +33 -4
  90. package/es/packages/form-render/src/types/index.d.ts +30 -2
  91. package/es/packages/form-render/src/utils/index.d.ts +8 -5
  92. package/es/packages/form-render/src/utils/index.js +64 -13
  93. package/es/packages/form-render/style/index.css +11 -10
  94. package/es/packages/form-table/src/hooks/useNuiThemeOverrides.js +1 -1
  95. package/es/packages/index.css +158 -21
  96. package/es/packages/index.d.ts +3 -1
  97. package/es/packages/index.js +4 -1
  98. package/es/packages/info-header/index.d.ts +1 -3
  99. package/es/packages/info-header/src/HiddenContent.js +1 -1
  100. package/es/packages/info-header/src/HiddenContent.vue.d.ts +1 -3
  101. package/es/packages/info-header/src/InfoHeader.vue.d.ts +1 -3
  102. package/es/packages/info-header/style/index.css +1 -1
  103. package/es/packages/shortcut-provider/index.d.ts +2 -11
  104. package/es/packages/shortcut-provider/src/ShortcutProvider.js +1 -5
  105. package/es/packages/shortcut-provider/src/ShortcutProvider.vue.d.ts +2 -11
  106. package/es/packages/shortcut-provider/src/hooks/useShortcuts.d.ts +11 -8
  107. package/es/packages/shortcut-provider/src/hooks/useShortcuts.js +44 -28
  108. package/es/packages/shortcut-provider/src/types/index.d.ts +32 -4
  109. package/es/packages/shortcut-provider/src/utils/index.d.ts +3 -0
  110. package/es/packages/shortcut-provider/src/utils/index.js +15 -5
  111. package/es/packages/shortcut-setter/index.d.ts +32 -9
  112. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +32 -9
  113. package/es/packages/shortcut-setter/src/ShortcutSetterItem.js +8 -6
  114. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue.d.ts +8 -6
  115. package/es/src/utils/state.d.ts +29 -0
  116. package/es/src/utils/state.js +44 -0
  117. package/package.json +10 -1
  118. package/es/_virtual/_commonjsHelpers.js +0 -7
  119. package/es/_virtual/css.escape.js +0 -3
  120. package/es/_virtual/inherits.js +0 -3
  121. package/es/_virtual/inherits_browser.js +0 -3
  122. package/es/node_modules/@formily/path/esm/contexts.js +0 -22
  123. package/es/node_modules/@formily/path/esm/destructor.js +0 -124
  124. package/es/node_modules/@formily/path/esm/index.js +0 -579
  125. package/es/node_modules/@formily/path/esm/matcher.js +0 -199
  126. package/es/node_modules/@formily/path/esm/parser.js +0 -402
  127. package/es/node_modules/@formily/path/esm/shared.js +0 -73
  128. package/es/node_modules/@formily/path/esm/tokenizer.js +0 -287
  129. package/es/node_modules/@formily/path/esm/tokens.js +0 -240
  130. package/es/node_modules/@formily/path/esm/types.js +0 -17
  131. package/es/node_modules/css.escape/css.escape.js +0 -110
  132. package/es/node_modules/date-fns/esm/_lib/defaultOptions/index.js +0 -6
  133. package/es/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js +0 -18
  134. package/es/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js +0 -17
  135. package/es/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js +0 -27
  136. package/es/node_modules/date-fns/esm/_lib/getUTCWeek/index.js +0 -17
  137. package/es/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js +0 -38
  138. package/es/node_modules/date-fns/esm/_lib/requiredArgs/index.js +0 -7
  139. package/es/node_modules/date-fns/esm/_lib/setUTCDay/index.js +0 -27
  140. package/es/node_modules/date-fns/esm/_lib/setUTCISODay/index.js +0 -23
  141. package/es/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js +0 -15
  142. package/es/node_modules/date-fns/esm/_lib/setUTCWeek/index.js +0 -15
  143. package/es/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js +0 -15
  144. package/es/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js +0 -15
  145. package/es/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js +0 -25
  146. package/es/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js +0 -21
  147. package/es/node_modules/date-fns/esm/_lib/toInteger/index.js +0 -15
  148. package/es/node_modules/date-fns/esm/compareAsc/index.js +0 -52
  149. package/es/node_modules/date-fns/esm/constants/index.js +0 -40
  150. package/es/node_modules/date-fns/esm/differenceInCalendarDays/index.js +0 -49
  151. package/es/node_modules/date-fns/esm/differenceInCalendarMonths/index.js +0 -35
  152. package/es/node_modules/date-fns/esm/differenceInCalendarYears/index.js +0 -33
  153. package/es/node_modules/date-fns/esm/differenceInDays/index.js +0 -86
  154. package/es/node_modules/date-fns/esm/differenceInMonths/index.js +0 -59
  155. package/es/node_modules/date-fns/esm/differenceInYears/index.js +0 -43
  156. package/es/node_modules/date-fns/esm/endOfDay/index.js +0 -30
  157. package/es/node_modules/date-fns/esm/endOfMonth/index.js +0 -32
  158. package/es/node_modules/date-fns/esm/isLastDayOfMonth/index.js +0 -30
  159. package/es/node_modules/date-fns/esm/parse/_lib/Parser.js +0 -32
  160. package/es/node_modules/date-fns/esm/parse/_lib/Setter.js +0 -37
  161. package/es/node_modules/date-fns/esm/parse/_lib/constants.js +0 -48
  162. package/es/node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js +0 -55
  163. package/es/node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js +0 -55
  164. package/es/node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js +0 -55
  165. package/es/node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js +0 -52
  166. package/es/node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js +0 -80
  167. package/es/node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js +0 -56
  168. package/es/node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js +0 -53
  169. package/es/node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js +0 -30
  170. package/es/node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js +0 -29
  171. package/es/node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js +0 -48
  172. package/es/node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js +0 -41
  173. package/es/node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js +0 -42
  174. package/es/node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js +0 -50
  175. package/es/node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js +0 -99
  176. package/es/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js +0 -46
  177. package/es/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js +0 -46
  178. package/es/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js +0 -43
  179. package/es/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js +0 -33
  180. package/es/node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js +0 -96
  181. package/es/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js +0 -43
  182. package/es/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js +0 -61
  183. package/es/node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js +0 -41
  184. package/es/node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js +0 -80
  185. package/es/node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js +0 -73
  186. package/es/node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js +0 -41
  187. package/es/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js +0 -96
  188. package/es/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js +0 -80
  189. package/es/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js +0 -73
  190. package/es/node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js +0 -26
  191. package/es/node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js +0 -26
  192. package/es/node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js +0 -66
  193. package/es/node_modules/date-fns/esm/parse/_lib/parsers/index.js +0 -109
  194. package/es/node_modules/date-fns/esm/parse/_lib/utils.js +0 -133
  195. package/es/node_modules/date-fns/esm/startOfDay/index.js +0 -30
  196. package/es/node_modules/date-fns/esm/toDate/index.js +0 -55
  197. package/es/node_modules/diagram-js/lib/command/CommandInterceptor.js +0 -139
  198. package/es/node_modules/diagram-js/lib/draw/BaseRenderer.js +0 -88
  199. package/es/node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js +0 -591
  200. package/es/node_modules/diagram-js/lib/features/rules/RuleProvider.js +0 -88
  201. package/es/node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js +0 -120
  202. package/es/node_modules/diagram-js/lib/navigation/movecanvas/index.js +0 -8
  203. package/es/node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js +0 -227
  204. package/es/node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js +0 -24
  205. package/es/node_modules/diagram-js/lib/util/ClickTrap.js +0 -23
  206. package/es/node_modules/diagram-js/lib/util/Cursor.js +0 -20
  207. package/es/node_modules/diagram-js/lib/util/Event.js +0 -22
  208. package/es/node_modules/diagram-js/lib/util/Math.js +0 -9
  209. package/es/node_modules/diagram-js/lib/util/Mouse.js +0 -30
  210. package/es/node_modules/diagram-js/lib/util/Platform.js +0 -5
  211. package/es/node_modules/diagram-js/lib/util/PositionUtil.js +0 -8
  212. package/es/node_modules/diagram-js/lib/util/RenderUtil.js +0 -25
  213. package/es/node_modules/diagram-js/lib/util/SvgTransformUtil.js +0 -48
  214. package/es/node_modules/ids/dist/index.esm.js +0 -164
  215. package/es/node_modules/inherits/inherits.js +0 -19
  216. package/es/node_modules/inherits/inherits_browser.js +0 -38
  217. package/es/node_modules/inherits-browser/dist/index.es.js +0 -3
  218. package/es/node_modules/min-dash/dist/index.esm.js +0 -169
  219. package/es/node_modules/min-dom/dist/index.esm.js +0 -588
  220. package/es/node_modules/tiny-svg/dist/index.esm.js +0 -525
  221. package/es/packages/form-render/src/components/renderer/combination.js +0 -148
@@ -1,6 +1,7 @@
1
1
  import { defineComponent, ref, computed, inject, watch, createVNode } from 'vue';
2
2
  import { isField } from '@formily/core';
3
3
  import { isEqual, cloneDeep } from 'lodash-es';
4
+ import { useCommonInjection } from '../../../../../packages/form-render/src/hooks/useCommonInjection';
4
5
  import { InjectionChangeContextCollector, InjectAsyncQueue, InjectionFormItemDepsCollector } from '../../constants/index.js';
5
6
  import { assignUpdateValue, traverseDependKey } from '../../utils/index.js';
6
7
  import { connect, mapProps } from '@formily/vue';
@@ -13,6 +14,10 @@ const script = defineComponent({
13
14
  value: {
14
15
  type: String
15
16
  },
17
+ lazyRequest: {
18
+ type: Boolean,
19
+ default: true
20
+ },
16
21
  options: {
17
22
  type: Array,
18
23
  default: () => []
@@ -46,7 +51,6 @@ const script = defineComponent({
46
51
  emit("update:value", v);
47
52
  }
48
53
  const {
49
- title,
50
54
  field,
51
55
  fieldKey
52
56
  } = useFormField();
@@ -59,16 +63,23 @@ const script = defineComponent({
59
63
  if (remoteOptions.value)
60
64
  return;
61
65
  remoteOptions.value = await asyncQueue.addAsync({
62
- ...createParams(configFor(props), field.value, title.value)
66
+ ...await createParams(configFor(props), field.value, fieldKey.value)
63
67
  });
64
- function createParams(config, field2, key) {
68
+ async function createParams(config, field2, key) {
65
69
  const _params = {};
66
- traverseDependKey(config.dependKey, (dependKey, valueKey2) => {
67
- const _field = field2.query(dependKey).take();
68
- if (isField(_field)) {
69
- _params[valueKey2] = _field.value;
70
- }
71
- });
70
+ try {
71
+ traverseDependKey(config.dependKey, (dependKey, valueKey2, required) => {
72
+ const _field = field2.query(dependKey).take();
73
+ if (isField(_field)) {
74
+ if (required && _field.value == null) {
75
+ throw `\u7F3A\u5C11\u5FC5\u987B\u7684\u53C2\u6570=>${dependKey}`;
76
+ }
77
+ _params[valueKey2] = _field.value;
78
+ }
79
+ });
80
+ } catch (e) {
81
+ return Promise.reject(e);
82
+ }
72
83
  return {
73
84
  ...config,
74
85
  params: Object.assign({}, config.params, _params),
@@ -101,18 +112,18 @@ const script = defineComponent({
101
112
  formItemDepsCollector.setDeps(fieldKey.value, config.dependKey || [], async () => {
102
113
  remoteOptions.value = null;
103
114
  emit("update:value", null);
115
+ !props.lazyRequest && await fetchData();
104
116
  });
105
- props.value && fetchData();
106
- }, {
107
- immediate: true
108
- });
109
- watch(() => props.value, (n, o) => {
110
- var _a, _b;
111
- o == null && n != null && fetchData();
112
- isField(field.value) && field.value.visited && ((_b = (_a = field.value).validate) == null ? void 0 : _b.call(_a));
117
+ (props.value || !props.lazyRequest) && fetchData();
113
118
  }, {
114
119
  immediate: true
115
120
  });
121
+ const {
122
+ injectValueValidate,
123
+ injectValueWatchFromEmpty
124
+ } = useCommonInjection();
125
+ injectValueWatchFromEmpty(() => props.value, fetchData);
126
+ injectValueValidate(() => props.value);
116
127
  function focusDecorator(onFocus) {
117
128
  return (...args) => {
118
129
  if (isField(field.value)) {
@@ -1,3 +1,4 @@
1
+ import { WithNull } from '../../../../../es/src/types';
1
2
  import { ContextCollector } from '../../../../../es/packages/form-render/src/hooks/useChangeContext';
2
3
  import { BusinessCollector, FormItemDepsCollector } from '../hooks';
3
4
  import { FormAsyncQueue } from '../types';
@@ -8,7 +9,7 @@ export declare const InjectionBusinessCollector: InjectionKey<BusinessCollector>
8
9
  export declare const InjectionChangeContextCollector: InjectionKey<ContextCollector>;
9
10
  export declare const InjectionFormItemDepsCollector: InjectionKey<FormItemDepsCollector>;
10
11
  export declare const InjectionFormUUID: InjectionKey<string>;
11
- export declare const InjectionAnnotation: InjectionKey<WritableComputedRef<Record<string, string>>>;
12
+ export declare const InjectionAnnotation: InjectionKey<WritableComputedRef<WithNull<Record<string, string>>>>;
12
13
  export declare const FormItemLineBarDepKeyPrepend = "__dep_LINEBAR_";
13
14
  export declare enum FIELD_BUSINESS_TYPE {
14
15
  PASSWORD = "password",
@@ -1,15 +1,16 @@
1
- import { AnyObject } from '../../../../../es/src/types';
1
+ import { WithUndefined } from '../../../../../es/src/types';
2
2
  import { ISchema } from '@formily/json-schema/esm/types';
3
- import { FormItemDepsCollector } from '../../../../../es/packages/form-render';
4
- export declare function useAnchor(props: Readonly<AnyObject>, collector: FormItemDepsCollector): {
3
+ import { Ref } from 'vue';
4
+ import { FormItemDepsCollector, FormRenderProps } from '../../../../../es/packages/form-render';
5
+ export declare function useAnchor(props: Readonly<FormRenderProps>, scrollbarRef: Ref<WithUndefined<HTMLElement>>, collector: FormItemDepsCollector): {
5
6
  currentAnchor: import("vue").WritableComputedRef<string>;
6
7
  onScroll: () => void;
7
- formHeight: import("vue").ComputedRef<any>;
8
- anchorIdList: import("vue").Ref<{
8
+ formHeight: import("vue").ComputedRef<string | undefined>;
9
+ anchorIdList: Ref<{
9
10
  name: string;
10
11
  title: string;
11
12
  }[]>;
12
13
  generateAnchorList: (schema: ISchema) => void;
13
- scrollbarRef: import("vue").Ref<HTMLElement | undefined>;
14
+ scrollbarRef: Ref<WithUndefined<HTMLElement>>;
14
15
  scrollTo: (id: string) => Promise<void>;
15
16
  };
@@ -5,7 +5,7 @@ import { ref, computed, watch, nextTick } from 'vue';
5
5
  import { FormItemLineBarDepKeyPrepend } from '../../../../packages/form-render/src/constants';
6
6
  import { createLinebarId, traverseSchema } from '../../../../packages/form-render/src/utils';
7
7
 
8
- function useAnchor(props, collector) {
8
+ function useAnchor(props, scrollbarRef, collector) {
9
9
  const __currentAnchor = ref("");
10
10
  const formHeight = computed(() => {
11
11
  if (isNumber(props.maxHeight))
@@ -22,7 +22,6 @@ function useAnchor(props, collector) {
22
22
  }
23
23
  });
24
24
  }
25
- const scrollbarRef = ref();
26
25
  let scrollLock = false;
27
26
  async function scrollTo(id) {
28
27
  scrollLock = true;
@@ -1,4 +1,9 @@
1
+ import { AnyObject, WithUndefined } from '../../../../../es/src/types';
1
2
  import { FormAsyncQueueItem } from '../types';
3
+ declare type ProcessorOption = Partial<{
4
+ afterRequest(key: string, payload?: unknown): AnyObject[];
5
+ beforeRequest(key: string, params?: unknown): WithUndefined<AnyObject> | void;
6
+ }>;
2
7
  interface EntryCallback {
3
8
  (err?: any, result?: any): void;
4
9
  }
@@ -32,7 +37,7 @@ export declare class AsyncQueue<T = any, K = any, R = any> {
32
37
  private _handlerResult;
33
38
  }
34
39
  export declare function useAsyncQueue(): {
35
- create: (parallelism?: number) => AsyncQueue<FormAsyncQueueItem, any, {
40
+ create: (parallelism?: number, option?: ProcessorOption) => AsyncQueue<FormAsyncQueueItem, any, {
36
41
  label: string;
37
42
  value: unknown;
38
43
  }[]>;
@@ -1,3 +1,4 @@
1
+ import { isFunction } from 'lodash-es';
1
2
  import { useFormRequest, useCommonLog } from '../../../../packages/form-render';
2
3
 
3
4
  class AsyncQueueEntry {
@@ -103,11 +104,12 @@ class AsyncQueue {
103
104
  }
104
105
  function useAsyncQueue() {
105
106
  const { getHttpInstance } = useFormRequest();
106
- function create(parallelism = 3) {
107
+ function create(parallelism = 3, option) {
107
108
  return new AsyncQueue({
108
109
  name: "FormRenderAsyncQueue",
109
110
  parallelism,
110
- async processor({ method = "post", params, url }, cb, removeCache) {
111
+ async processor({ key, method = "post", params, url }, cb, removeCache) {
112
+ var _a;
111
113
  const http = getHttpInstance();
112
114
  if (!http) {
113
115
  useCommonLog().invalidHttpInstanceLog();
@@ -116,11 +118,14 @@ function useAsyncQueue() {
116
118
  return;
117
119
  }
118
120
  try {
119
- const res = await http[method](url, params);
120
- const { data, success } = res;
121
- if (!success)
122
- throw res;
123
- cb(void 0, Array.isArray(data) ? data : []);
121
+ if (option && isFunction(option.beforeRequest)) {
122
+ params = (_a = option.beforeRequest(key, params)) != null ? _a : {};
123
+ }
124
+ let res = await http[method](url, params);
125
+ if (option && isFunction(option.afterRequest)) {
126
+ res = option.afterRequest(key, res);
127
+ }
128
+ cb(void 0, Array.isArray(res) ? res : []);
124
129
  } catch (e) {
125
130
  cb(new Error(`Request error => ${e}`));
126
131
  removeCache();
@@ -0,0 +1,6 @@
1
+ import { Func } from '../../../../../es/src/types';
2
+ import { WatchSource } from '@vue/runtime-core';
3
+ export declare function useCommonInjection(): {
4
+ injectValueValidate: (traverser: WatchSource) => void;
5
+ injectValueWatchFromEmpty: (traverser: WatchSource, trigger: Func) => void;
6
+ };
@@ -0,0 +1,19 @@
1
+ import { isField } from '@formily/core';
2
+ import { watch } from 'vue';
3
+ import { useFormField } from '../../../../packages/form-render';
4
+
5
+ function useCommonInjection() {
6
+ function injectValueValidate(traverser) {
7
+ const { field } = useFormField();
8
+ watch(traverser, () => {
9
+ var _a, _b;
10
+ return isField(field.value) && field.value.visited && ((_b = (_a = field.value).validate) == null ? void 0 : _b.call(_a));
11
+ });
12
+ }
13
+ function injectValueWatchFromEmpty(traverser, trigger) {
14
+ watch(traverser, (n, o) => n != null && o == null && trigger(), { immediate: true });
15
+ }
16
+ return { injectValueValidate, injectValueWatchFromEmpty };
17
+ }
18
+
19
+ export { useCommonInjection };
@@ -1,7 +1,7 @@
1
1
  import { isObject } from '@vueuse/core';
2
2
  import { pick } from 'lodash-es';
3
3
  import { useFormValidator, useTypeNormalize } from '../../../../packages/form-render';
4
- import { fieldKeyEscape, arrayed, createLinebarId, transformDateFormat } from '../utils/index.js';
4
+ import { fieldKeyEscape, arrayed, createLinebarId, elementIdEscape, parseNumberFromMaybeString, transformDateFormat } from '../utils/index.js';
5
5
 
6
6
  function useFieldListAdaptor(collector, uuid) {
7
7
  const { createValidatorSchema } = useFormValidator();
@@ -31,7 +31,7 @@ function useFieldListAdaptor(collector, uuid) {
31
31
  showLabel: item.hide_title !== "1",
32
32
  propertyKey: item.val_key,
33
33
  annotation: item.annotation,
34
- id: `${uuid}-${item.val_key}`,
34
+ id: elementIdEscape(`${uuid}-${item.val_key}`),
35
35
  ...item.decoratorProps || {}
36
36
  }
37
37
  });
@@ -44,18 +44,17 @@ function useFieldListAdaptor(collector, uuid) {
44
44
  const createInputSchema = (item) => {
45
45
  const schema = createStandardSchema(item);
46
46
  Object.assign(schema["x-component-props"], {
47
- prefix: item.prefix,
48
- suffix: item.suffix
47
+ ...pick(item, ["prefix", "suffix"])
49
48
  });
50
49
  return schema;
51
50
  };
52
51
  const createSelectSchema = (item) => {
53
52
  const schema = createStandardSchema(item);
54
53
  Object.assign(schema["x-component-props"], {
55
- urlConfig: item.urlConfig,
54
+ ...pick(item, ["lazyRequest", "urlConfig"]),
56
55
  options: item.option,
57
56
  multiple: item.multi_select === "0",
58
- maxTagCount: +item.multi_select_value
57
+ maxTagCount: parseNumberFromMaybeString(item.multi_select_value)
59
58
  });
60
59
  return schema;
61
60
  };
@@ -96,7 +95,10 @@ function useFieldListAdaptor(collector, uuid) {
96
95
  };
97
96
  const createCombinationSchema = (item) => {
98
97
  const schema = createStandardSchema(item);
99
- schema["x-decorator-props"].showLabel = false;
98
+ Object.assign(schema["x-decorator-props"], {
99
+ showLabel: false,
100
+ showFeedback: false
101
+ });
100
102
  Object.assign(schema["x-component-props"], {
101
103
  title: item.alias || item.name,
102
104
  maxGroupNum: item.maxGroupNum,
@@ -1,10 +1,10 @@
1
1
  import { ShallowReactive } from 'vue';
2
- import { AnyObject } from '../../../../../es/src/types';
3
- export declare function useFormContext(props: ShallowReactive<AnyObject>): {
2
+ import { FormRenderProps } from '../../../../../es/packages/form-render';
3
+ export declare function useFormContext(props: ShallowReactive<FormRenderProps>): {
4
4
  asyncQueue: import("../../../../../es/packages/form-render").FormAsyncQueue;
5
5
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
6
6
  businessCollector: import("../../../../../es/packages/form-render").BusinessCollector;
7
7
  changeContextCollector: import("../../../../../es/packages/form-render").ContextCollector;
8
8
  formItemDepsCollector: import("../../../../../es/packages/form-render").FormItemDepsCollector;
9
- formUUID: any;
9
+ formUUID: string;
10
10
  };
@@ -1,14 +1,32 @@
1
- import { isObject } from 'lodash-es';
1
+ import { isObject } from '@vue/shared';
2
+ import { cloneDeep } from 'lodash-es';
2
3
  import { provide, computed, readonly } from 'vue';
3
4
  import { createSchemaField } from '@formily/vue';
4
5
  import { useAsyncQueue, useBusinessBinding, useChangeContext, useFormItemDeps } from '../../../../packages/form-render';
5
6
  import * as components from '../../../../packages/form-render/src/components/renderer';
7
+ import { useFormRenderLifeCycle } from '../../../../packages/form-render/src/hooks/useFormRenderLifeCycle';
6
8
  import { usePresetScope } from '../../../../packages/form-render/src/hooks/usePresetScope';
7
9
  import { injectOrProvide, uuidGenerator } from '../../../../packages/form-render/src/utils';
8
10
  import { InjectAsyncQueue, InjectionSchemaField, InjectionBusinessCollector, InjectionChangeContextCollector, InjectionFormItemDepsCollector, InjectionFormUUID, InjectionAnnotation } from '../../../../packages/form-render/src/constants';
9
11
 
10
12
  function useFormContext(props) {
11
- const asyncQueue = injectOrProvide(InjectAsyncQueue, () => useAsyncQueue().create(props.parallelism));
13
+ const { callLifeCycle } = useFormRenderLifeCycle(props);
14
+ const asyncQueue = injectOrProvide(InjectAsyncQueue, () => useAsyncQueue().create(props.parallelism, {
15
+ beforeRequest(...args) {
16
+ return callLifeCycle("beforeRequest", cloneDeep(args)) || args[1];
17
+ },
18
+ afterRequest(...args) {
19
+ return callLifeCycle("afterRequest", cloneDeep(args)) || presetHandler(args[1]);
20
+ function presetHandler(res) {
21
+ if (!isObject(res))
22
+ throw res;
23
+ const { data, success } = res;
24
+ if (!success)
25
+ throw res;
26
+ return data;
27
+ }
28
+ }
29
+ }));
12
30
  const SchemaField = injectOrProvide(InjectionSchemaField, () => createSchemaField({
13
31
  components: {
14
32
  ...components,
@@ -29,7 +47,7 @@ function useFormContext(props) {
29
47
  return props.annotation ? readonly(props.annotation) : null;
30
48
  },
31
49
  set(payload) {
32
- if (!isObject(props.annotation))
50
+ if (!isObject(props.annotation) || !isObject(payload))
33
51
  return;
34
52
  props.annotation[payload.property] = payload.value;
35
53
  }
@@ -0,0 +1,13 @@
1
+ import { WithUndefined } from '../../../../../es/src/types';
2
+ import { FormRenderLifeCycle, FormRenderProps } from '../../../../../es/packages/form-render';
3
+ export declare function useFormRenderLifeCycle(props: FormRenderProps): {
4
+ callLifeCycle: <T extends "onSetup" | "beforeRequest" | "afterRequest">(lifeCycleName: T, payload?: Parameters<Required<Partial<{
5
+ onSetup(): void;
6
+ beforeRequest(fieldKey: string, params?: import("../../../../../es/src/types").AnyObject | undefined): void | WithUndefined<import("../../../../../es/src/types").AnyObject>;
7
+ afterRequest(fieldKey: string, payload?: any): import("../../../../../es/src/types").AnyObject[];
8
+ }>>[T]> | undefined) => WithUndefined<ReturnType<Required<Partial<{
9
+ onSetup(): void;
10
+ beforeRequest(fieldKey: string, params?: import("../../../../../es/src/types").AnyObject | undefined): void | WithUndefined<import("../../../../../es/src/types").AnyObject>;
11
+ afterRequest(fieldKey: string, payload?: any): import("../../../../../es/src/types").AnyObject[];
12
+ }>>[T]>>;
13
+ };
@@ -0,0 +1,10 @@
1
+ import { isFunction } from 'lodash-es';
2
+
3
+ function useFormRenderLifeCycle(props) {
4
+ function callLifeCycle(lifeCycleName, payload) {
5
+ return props.lifeCycle && isFunction(props.lifeCycle[lifeCycleName]) && props.lifeCycle[lifeCycleName].apply(void 0, payload || []);
6
+ }
7
+ return { callLifeCycle };
8
+ }
9
+
10
+ export { useFormRenderLifeCycle };
@@ -1,14 +1,13 @@
1
1
  import { AnyObject, ArrayAble } from '../../../../../es/src/types';
2
- import { SchemaReaction } from '@formily/json-schema/esm/types';
3
2
  import { SchemaTypes } from '@formily/vue';
4
3
  import { CSSProperties, VNode } from 'vue';
5
4
  import { DependKeyType, FormCommonState } from '../../../../../es/packages/form-render';
6
- import { FIELD_BUSINESS_TYPE } from '../../../../../es/packages/form-render/src/constants';
5
+ declare type FieldBusinessType = 'password' | 'id_card' | 'age' | 'age_unit' | 'mobile' | 'telephone' | 'email' | 'sex' | 'birthday' | 'bank_card' | 'website' | 'gestational_weeks' | 'gestational_stage' | 'customer_name';
7
6
  export declare type ValidateItem = Partial<{
8
7
  /**
9
8
  * 业务类型
10
9
  */
11
- obj_type: FIELD_BUSINESS_TYPE;
10
+ obj_type: FieldBusinessType;
12
11
  /**
13
12
  * 校验类型
14
13
  */
@@ -41,6 +40,20 @@ interface SwitchProperty {
41
40
  value?: any;
42
41
  describe?: string;
43
42
  }
43
+ interface ReactionType {
44
+ dependencies?: string[];
45
+ target?: string;
46
+ when?: string | boolean;
47
+ fulfill?: {
48
+ state?: AnyObject;
49
+ run?: string;
50
+ };
51
+ otherwise?: {
52
+ state?: AnyObject;
53
+ run?: string;
54
+ };
55
+ [key: string]: any;
56
+ }
44
57
  export declare type FieldItem = {
45
58
  /**
46
59
  * 字段的key
@@ -98,6 +111,14 @@ export declare type FieldItem = {
98
111
  placeholder: string;
99
112
  validate: ValidateItem;
100
113
  option: OptionItem[];
114
+ /**
115
+ * 是否开启多选('0'表示开启, 值是反的)
116
+ */
117
+ multi_select: FormCommonState;
118
+ /**
119
+ * 多选时最大选择数量
120
+ */
121
+ multi_select_value: number | string;
101
122
  /**
102
123
  * 用于cascader控件提供层级参数
103
124
  */
@@ -143,6 +164,10 @@ export declare type FieldItem = {
143
164
  * BUTTON/TEXT控件内容
144
165
  */
145
166
  content: string | FormRenderer | Record<string, FormRenderer>;
167
+ /**
168
+ * 假使控件需要发送请求, 用于控制是否只在需要的时候发送请求
169
+ */
170
+ lazyRequest: boolean;
146
171
  /**
147
172
  * COMBINATION控件最大表单组数量
148
173
  */
@@ -163,6 +188,10 @@ export declare type FieldItem = {
163
188
  * FormItem额外的props
164
189
  */
165
190
  decoratorProps: AnyObject;
191
+ /**
192
+ * 是否不使用decorator组件(n-form-item)
193
+ */
194
+ noDecorator: Boolean;
166
195
  /**
167
196
  * COMPLEX控件布局类型
168
197
  */
@@ -181,7 +210,7 @@ export declare type FieldItem = {
181
210
  /**
182
211
  * 表单联动配置
183
212
  */
184
- reactions: ArrayAble<SchemaReaction>;
213
+ reactions: ArrayAble<ReactionType>;
185
214
  [key: string]: any;
186
215
  }>;
187
216
  export {};
@@ -1,5 +1,7 @@
1
- import { AnyObject, ArrayAble } from '../../../../../es/src/types';
1
+ import { AnyObject, WithUndefined } from '../../../../../es/src/types';
2
2
  import { DataField, Field } from '@formily/core';
3
+ import { ISchema } from '@formily/json-schema/esm/types';
4
+ import { Component, FunctionalComponent } from 'vue';
3
5
  import { FIELD_BUSINESS_TYPE } from '../../../../../es/packages/form-render/src/constants';
4
6
  import { FieldItem } from '../types';
5
7
  import { AsyncQueue } from '../hooks';
@@ -49,4 +51,30 @@ export declare type FormBusinessFilter = (payload: {
49
51
  type: FIELD_BUSINESS_TYPE;
50
52
  context?: any;
51
53
  }) => unknown;
52
- export declare type DependKeyType = ArrayAble<string> | Record<string, string> | ArrayAble<Record<'paramName' | 'paramValue', string>>;
54
+ export declare type DependKeyType = string | Record<string, string> | Array<{
55
+ paramName: string;
56
+ paramValue?: string;
57
+ required?: boolean;
58
+ } | string>;
59
+ export declare type FormRenderLifeCycle = Partial<{
60
+ onSetup(): void;
61
+ beforeRequest(fieldKey: string, params?: AnyObject): WithUndefined<AnyObject> | void;
62
+ afterRequest(fieldKey: string, payload?: any): AnyObject[];
63
+ }>;
64
+ export declare type FormRenderProps = Partial<{
65
+ fieldList: FieldItem[];
66
+ initialData: AnyObject;
67
+ fieldVisitor: FieldVisitor;
68
+ column: number;
69
+ maxHeight: number | string;
70
+ anchor: boolean;
71
+ parallelism: number;
72
+ schema: ISchema;
73
+ components: Record<string, Component | FunctionalComponent>;
74
+ businessFilter: FormBusinessFilter;
75
+ scope: AnyObject;
76
+ annotation: AnyObject;
77
+ consumer: boolean;
78
+ uuid: string;
79
+ lifeCycle: FormRenderLifeCycle;
80
+ }>;
@@ -1,4 +1,4 @@
1
- import { AnyObject, ArrayAble } from '../../../../../es/src/types';
1
+ import { AnyObject, ArrayAble, WithNull } from '../../../../../es/src/types';
2
2
  import { ISchema } from '@formily/json-schema/esm/types';
3
3
  import { GeneralField } from '@formily/core';
4
4
  import { FunctionalComponent, InjectionKey, VNode } from 'vue';
@@ -8,14 +8,16 @@ export declare function arrayed<T>(maybeArray: T): T extends Array<any> ? T : [T
8
8
  export declare function assignUpdateValue(props: AnyObject, field: GeneralField): {
9
9
  [x: string]: any;
10
10
  };
11
- export declare function transformDateFormat(format?: string): "date" | "datetime";
11
+ export declare function transformDateFormat(format?: string): "date" | "datetime" | "month";
12
12
  export declare function isIdCard(idCardNo: string): boolean;
13
13
  export declare function isMobile(mobile: string): boolean;
14
14
  export declare function parseBirthday(birthday: string): AgeContext;
15
+ export declare function mergeDeepProperties(target: AnyObject, fieldList: FieldItem[], traverseProperties?: string[], property?: string, targetProperty?: string): AnyObject;
15
16
  export declare function parseIdCard(idCardNo: string): IdCardParseInfo;
16
17
  export declare function injectOrProvide<T>(key: InjectionKey<T>, creator: () => T): T;
18
+ export declare function parseNumberFromMaybeString(value: unknown): unknown;
17
19
  export declare function traverseDependKey(dependKeys: DependKeyType, handler: {
18
- (dependKey: string, valueKey: string): void;
20
+ (dependKey: string, valueKey: string, required?: boolean): void;
19
21
  }): void;
20
22
  export declare function traverseSchema(schema: ISchema, handler: (_s: ISchema) => void): void;
21
23
  export declare function uuidGenerator(): string;
@@ -23,11 +25,12 @@ export declare function createSlot(renderer: unknown, props: AnyObject): Record<
23
25
  default(): any;
24
26
  };
25
27
  export declare function queryDecorator(key: string, wrapperElement: HTMLElement, formUUID: string): HTMLElement | null;
26
- export declare function queryInput(decoratorElement?: HTMLElement | null): {
28
+ export declare function queryInput(decoratorElement?: WithNull<HTMLElement>): {
27
29
  widgetElement: HTMLInputElement | null | undefined;
28
30
  widgetElementList: HTMLInputElement[];
29
31
  };
30
- export declare function getParentLinebar(key: string, fieldList: FieldItem[]): string | null;
32
+ export declare function getParentLinebar(key: string, fieldList: FieldItem[]): WithNull<string>;
33
+ export declare function elementIdEscape(id: string): string;
31
34
  export declare function createLinebarId(id: string): string;
32
35
  export declare function fieldKeyEscape(fieldList: FieldItem[]): string;
33
36
  export declare function createInputSlot(props: AnyObject): import("vue").ComputedRef<Record<string, FunctionalComponent<{}, {}>>>;