cnhis-design-vue 3.1.31-beta.0 → 3.1.31-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 (219) hide show
  1. package/es/components/big-table/index.js +1 -1
  2. package/es/components/big-table/src/{BigTable.js → BigTable.vue.js} +1 -1
  3. package/es/components/big-table/src/{BigTable.vue_vue_type_script_setup_true_lang.js → BigTable.vue2.js} +6 -6
  4. package/es/components/{scale-view/src/components/NoData.js → big-table/src/components/NoData.vue.js} +4 -4
  5. package/es/components/big-table/src/components/edit-form/{edit-separate.js → edit-separate.vue.js} +1 -1
  6. package/es/components/big-table/src/components/{input-button.js → input-button.vue.js} +0 -0
  7. package/es/components/big-table/src/components/{separate.js → separate.vue.js} +0 -0
  8. package/es/components/big-table/src/hooks/useEdit.js +1 -1
  9. package/es/components/big-table/src/utils.js +1 -1
  10. package/es/components/bpmn-workflow/index.js +1 -1
  11. package/es/components/bpmn-workflow/src/{BpmnWorkflow.js → BpmnWorkflow.vue.js} +0 -0
  12. package/es/components/button-print/index.d.ts +76 -79
  13. package/es/components/button-print/index.js +2 -2
  14. package/es/components/button-print/src/ButtonPrint.vue.d.ts +76 -79
  15. package/es/components/button-print/src/{ButtonPrint.js → ButtonPrint.vue.js} +1 -1
  16. package/es/components/button-print/src/{ButtonPrint.vue_vue_type_script_setup_true_lang.js → ButtonPrint.vue2.js} +47 -85
  17. package/es/components/button-print/src/components/{edit.vue.d.ts → EditFormat.vue.d.ts} +61 -54
  18. package/es/components/button-print/src/components/EditFormat.vue.js +173 -0
  19. package/es/components/button-print/src/components/IdentityVerification.vue.d.ts +76 -64
  20. package/es/components/button-print/src/components/{IdentityVerification.js → IdentityVerification.vue.js} +22 -10
  21. package/es/components/button-print/src/components/Preview.vue.d.ts +41 -0
  22. package/es/components/button-print/src/components/Preview.vue.js +6 -0
  23. package/es/components/button-print/src/components/Preview.vue2.js +67 -0
  24. package/es/components/button-print/src/utils/browserPrint.d.ts +2 -1
  25. package/es/components/button-print/src/utils/browserPrint.js +6 -3
  26. package/es/components/button-print/src/utils/dialog.d.ts +6 -2
  27. package/es/components/button-print/src/utils/dialog.js +69 -25
  28. package/es/components/button-print/src/utils/index.js +1 -1
  29. package/es/components/button-print/src/utils/print.d.ts +7 -3
  30. package/es/components/button-print/src/utils/print.js +51 -4
  31. package/es/components/button-print/style/index.css +1 -1
  32. package/es/components/drag-layout/index.js +1 -1
  33. package/es/components/drag-layout/src/{DragFormLeftItem.js → DragFormLeftItem.vue.js} +0 -0
  34. package/es/components/drag-layout/src/{DragFormRightItem.js → DragFormRightItem.vue.js} +0 -0
  35. package/es/components/drag-layout/src/{DragLayout.js → DragLayout.vue.js} +2 -2
  36. package/es/components/fabric-chart/index.js +1 -1
  37. package/es/components/fabric-chart/src/{FabricChart.js → FabricChart.vue.js} +1 -1
  38. package/es/components/fabric-chart/src/components/{PopupTip.js → PopupTip.vue.js} +0 -0
  39. package/es/components/fabric-chart/src/hooks/useCenter.js +5 -6
  40. package/es/components/fabric-chart/src/hooks/useGrid.js +3 -3
  41. package/es/components/fabric-chart/src/interface.d.ts +1 -1
  42. package/es/components/fabric-chart/src/utils/index.js +0 -1
  43. package/es/components/field-set/index.js +1 -1
  44. package/es/components/field-set/src/{FieldSet.js → FieldSet.vue.js} +0 -0
  45. package/es/components/form-config/index.js +1 -1
  46. package/es/components/form-config/src/{FormConfig.js → FormConfig.vue.js} +3 -3
  47. package/es/components/form-config/src/components/{FormConfigCreator.js → FormConfigCreator.vue.js} +0 -0
  48. package/es/components/form-config/src/components/{FormConfigDragDisplay.js → FormConfigDragDisplay.vue.js} +0 -0
  49. package/es/components/form-config/src/components/{FormConfigEdit.js → FormConfigEdit.vue.js} +0 -0
  50. package/es/components/form-config/src/components/index.js +6 -6
  51. package/es/components/form-config/src/components/renderer/{CloseButton.js → CloseButton.vue.js} +0 -0
  52. package/es/components/form-config/src/components/renderer/{ComplexNode.js → ComplexNode.vue.js} +2 -2
  53. package/es/components/form-config/src/components/renderer/{DefaultNode.js → DefaultNode.vue.js} +1 -1
  54. package/es/components/form-config/src/components/renderer/index.js +3 -3
  55. package/es/components/form-config/src/hooks/usePresetRenderer.js +2 -2
  56. package/es/components/form-render/index.js +2 -2
  57. package/es/components/form-render/src/{FormRender.js → FormRender.vue.js} +0 -0
  58. package/es/components/form-render/src/{FormRenderWrapper.js → FormRenderWrapper.vue.js} +1 -1
  59. package/es/components/form-render/src/components/renderer/checkbox.js +3 -5
  60. package/es/components/form-render/src/components/renderer/index.js +2 -0
  61. package/es/components/form-render/src/components/renderer/jsonCombination/index.js +1 -1
  62. package/es/components/form-render/src/components/renderer/levelSearchCascader.js +1 -1
  63. package/es/components/form-render/src/components/renderer/lineBar/{FormCollapse.js → FormCollapse.vue.js} +0 -0
  64. package/es/components/form-render/src/components/renderer/lineBar/index.js +1 -1
  65. package/es/components/form-render/src/components/renderer/recommendSelect.d.ts +131 -0
  66. package/es/components/form-render/src/components/renderer/recommendSelect.js +213 -0
  67. package/es/components/form-render/src/components/renderer/remoteSearch.js +0 -1
  68. package/es/components/form-render/src/components/renderer/select.js +3 -5
  69. package/es/components/form-render/src/hooks/useAsyncQueue.js +2 -1
  70. package/es/components/form-render/src/hooks/useAutographOptions.js +5 -7
  71. package/es/components/form-render/src/hooks/useBusinessBinding.d.ts +3 -2
  72. package/es/components/form-render/src/hooks/useBusinessBinding.js +20 -17
  73. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +7 -0
  74. package/es/components/form-render/src/hooks/useFormRequest.d.ts +8 -1
  75. package/es/components/form-render/src/hooks/useFormRequest.js +24 -1
  76. package/es/components/form-render/src/utils/index.d.ts +2 -2
  77. package/es/components/form-render/src/utils/index.js +27 -3
  78. package/es/components/form-render/style/index.css +1 -1
  79. package/es/components/iho-table/index.d.ts +160 -102
  80. package/es/components/iho-table/index.js +1 -2
  81. package/es/components/iho-table/src/IhoTable.vue.d.ts +160 -102
  82. package/es/components/iho-table/src/{IhoTable.js → IhoTable.vue.js} +2 -1
  83. package/es/components/iho-table/src/components/IhoTableColumn.js +14 -11
  84. package/es/components/iho-table/src/constants/index.d.ts +5 -3
  85. package/es/components/iho-table/src/constants/index.js +5 -3
  86. package/es/components/iho-table/src/hooks/tapHooks/index.d.ts +64 -5
  87. package/es/components/iho-table/src/hooks/tapHooks/index.js +17 -9
  88. package/es/components/iho-table/src/hooks/tapHooks/useEventHooks.d.ts +60 -1
  89. package/es/components/iho-table/src/hooks/useColumnConfigAdaptor.js +5 -3
  90. package/es/components/iho-table/src/hooks/useTableContext.d.ts +1 -1
  91. package/es/components/iho-table/src/plugins/anchorPlugin/useAnchor.js +3 -2
  92. package/es/components/iho-table/src/plugins/filterPlugin/filter.vue.d.ts +1 -1
  93. package/es/components/iho-table/src/plugins/filterPlugin/{filter.js → filter.vue.js} +1 -0
  94. package/es/components/iho-table/src/plugins/filterPlugin/index.js +1 -1
  95. package/es/components/iho-table/src/plugins/index.js +14 -12
  96. package/es/components/iho-table/src/plugins/keyboardEventPlugin/index.d.ts +1 -0
  97. package/es/components/iho-table/src/plugins/keyboardEventPlugin/index.js +32 -0
  98. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue.d.ts +1 -1
  99. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/{editDate.js → editDate.vue.js} +0 -0
  100. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/index.js +10 -12
  101. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/inputRendererPlugin.js +11 -15
  102. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/numberRendererPlugin.js +17 -24
  103. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +11 -13
  104. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/editSeparate.vue.d.ts +1 -1
  105. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/{editSeparate.js → editSeparate.vue.js} +2 -1
  106. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/index.js +9 -12
  107. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin.js +13 -17
  108. package/es/components/iho-table/src/types/index.d.ts +6 -6
  109. package/es/components/iho-table/src/types/pluginType.d.ts +2 -1
  110. package/es/components/iho-table/src/utils/index.d.ts +12 -2
  111. package/es/components/iho-table/src/utils/index.js +33 -2
  112. package/es/components/iho-table/style/index.css +1 -1
  113. package/es/components/index.css +1 -1
  114. package/es/components/index.d.ts +2 -1
  115. package/es/components/index.js +6 -3
  116. package/es/components/info-header/index.js +1 -1
  117. package/es/components/info-header/src/{HiddenContent.js → HiddenContent.vue.js} +1 -1
  118. package/es/components/info-header/src/{InfoEllipsis.js → InfoEllipsis.vue.js} +0 -0
  119. package/es/components/info-header/src/{InfoHeader.js → InfoHeader.vue.js} +2 -2
  120. package/es/components/keyboard/index.d.ts +146 -78
  121. package/es/components/keyboard/index.js +1 -1
  122. package/es/components/keyboard/src/Keyboard.vue.d.ts +155 -78
  123. package/es/components/keyboard/src/Keyboard.vue.js +149 -0
  124. package/es/components/keyboard/src/components/InputNumber.vue.d.ts +6 -4
  125. package/es/components/keyboard/src/components/{InputNumber.js → InputNumber.vue.js} +0 -0
  126. package/es/components/keyboard/src/components/NumberPanel.vue.d.ts +118 -0
  127. package/es/components/keyboard/src/components/NumberPanel.vue.js +206 -0
  128. package/es/components/map/index.js +1 -1
  129. package/es/components/map/src/{Map.js → Map.vue.js} +0 -0
  130. package/es/components/recommend-search/index.d.ts +813 -0
  131. package/es/components/recommend-search/index.js +10 -0
  132. package/es/components/recommend-search/src/RecommendSearch.vue.d.ts +815 -0
  133. package/es/components/recommend-search/src/RecommendSearch.vue.js +62 -0
  134. package/es/components/recommend-search/src/components/BaseSearch.vue.d.ts +119 -0
  135. package/es/components/recommend-search/src/components/BaseSearch.vue.js +148 -0
  136. package/es/components/recommend-search/src/components/RecommendInput.vue.d.ts +303 -0
  137. package/es/components/recommend-search/src/components/RecommendInput.vue.js +103 -0
  138. package/es/components/recommend-search/src/components/RecommendMenu.vue.d.ts +63 -0
  139. package/es/components/recommend-search/src/components/RecommendMenu.vue.js +104 -0
  140. package/es/components/recommend-search/src/components/RecommendSelect.vue.d.ts +350 -0
  141. package/es/components/recommend-search/src/components/RecommendSelect.vue.js +156 -0
  142. package/es/components/recommend-search/src/constant/index.d.ts +4 -0
  143. package/es/components/recommend-search/src/constant/index.js +7 -0
  144. package/es/components/recommend-search/src/types/index.d.ts +9 -0
  145. package/es/components/recommend-search/src/types/index.js +1 -0
  146. package/es/components/recommend-search/style/index.css +1 -0
  147. package/es/components/scale-view/index.js +1 -1
  148. package/es/components/scale-view/src/{ScaleView.js → ScaleView.vue.js} +5 -5
  149. package/es/components/scale-view/src/components/{AnswerParse.js → AnswerParse.vue.js} +1 -1
  150. package/es/components/scale-view/src/components/{EvaluateCountdown.js → EvaluateCountdown.vue.js} +1 -1
  151. package/es/components/scale-view/src/components/{EvaluatePage.js → EvaluatePage.vue.js} +0 -0
  152. package/es/components/scale-view/src/components/{LoadingCom.js → LoadingCom.vue.js} +0 -0
  153. package/es/components/{big-table/src/components/NoData.js → scale-view/src/components/NoData.vue.js} +4 -4
  154. package/es/components/scale-view/src/components/formitem/r-cascader.js +1 -1
  155. package/es/components/scale-view/src/components/formitem/r-select.js +1 -1
  156. package/es/components/scale-view/src/hooks/use-component.js +1 -1
  157. package/es/components/search-cascader/index.js +1 -1
  158. package/es/components/search-cascader/src/{SearchCascader.js → SearchCascader.vue.js} +0 -0
  159. package/es/components/search-cascader/src/components/SearchMenu.js +3 -3
  160. package/es/components/select-label/index.js +2 -2
  161. package/es/components/select-label/src/{LabelFormContent.js → LabelFormContent.vue.js} +1 -1
  162. package/es/components/select-label/src/{SelectLabel.js → SelectLabel.vue.js} +1 -1
  163. package/es/components/select-label/src/{SelectLabel.vue_vue_type_script_setup_true_lang.js → SelectLabel.vue2.js} +2 -2
  164. package/es/components/select-label/src/components/{label-classify.js → label-classify.vue.js} +0 -0
  165. package/es/components/select-person/index.js +1 -1
  166. package/es/components/select-person/src/{SelectPerson.js → SelectPerson.vue.js} +1 -1
  167. package/es/components/select-person/src/{SelectPerson.vue_vue_type_script_setup_true_lang.js → SelectPerson.vue2.js} +0 -0
  168. package/es/components/shortcut-provider/index.js +1 -1
  169. package/es/components/shortcut-provider/src/{ShortcutProvider.js → ShortcutProvider.vue.js} +0 -0
  170. package/es/components/shortcut-setter/index.js +1 -1
  171. package/es/components/shortcut-setter/src/{ShortcutSetter.js → ShortcutSetter.vue.js} +1 -1
  172. package/es/components/shortcut-setter/src/{ShortcutSetterItem.js → ShortcutSetterItem.vue.js} +0 -0
  173. package/es/components/steps-wheel/index.d.ts +3 -0
  174. package/es/components/steps-wheel/index.js +1 -1
  175. package/es/components/steps-wheel/src/StepsWheel.vue.d.ts +3 -0
  176. package/es/components/steps-wheel/src/{StepsWheel.js → StepsWheel.vue.js} +38 -9
  177. package/es/components/steps-wheel/style/index.css +1 -1
  178. package/es/components/time-line/index.js +1 -1
  179. package/es/components/time-line/src/{TimeLine.js → TimeLine.vue.js} +0 -0
  180. package/es/components/vod-chunk-upload/index.js +1 -1
  181. package/es/components/vod-chunk-upload/src/{chunk-upload-new.js → chunk-upload-new.vue.js} +0 -0
  182. package/es/components/vod-chunk-upload/src/vod-chunk-upload/index.js +2 -2
  183. package/es/components/vod-chunk-upload/src/vod-chunk-upload/{vod-chunk-upload.js → vod-chunk-upload.vue.js} +3 -3
  184. package/es/components/vod-chunk-upload/src/vod-upload-modal.js +1 -1
  185. package/es/shared/assets/img/failure.js +1 -3
  186. package/es/shared/assets/img/failure.png.js +3 -0
  187. package/es/shared/assets/img/no-permission.js +1 -3
  188. package/es/shared/assets/img/no-permission.png.js +3 -0
  189. package/es/shared/assets/img/nodata.js +1 -3
  190. package/es/shared/assets/img/nodata.png.js +3 -0
  191. package/es/shared/assets/img/notfound.js +1 -3
  192. package/es/shared/assets/img/notfound.png.js +3 -0
  193. package/es/shared/assets/img/qr.js +1 -3
  194. package/es/shared/assets/img/qr.png.js +3 -0
  195. package/es/shared/assets/img/success.js +1 -3
  196. package/es/shared/assets/img/success.png.js +3 -0
  197. package/es/shared/assets/img/video.js +1 -3
  198. package/es/shared/assets/img/video.png.js +3 -0
  199. package/es/shared/assets/img/video_default_cover.js +1 -3
  200. package/es/shared/assets/img/video_default_cover.png.js +3 -0
  201. package/es/shared/assets/img/xb_big.js +1 -3
  202. package/es/shared/assets/img/xb_big.png.js +3 -0
  203. package/es/shared/assets/img/xb_small.js +1 -3
  204. package/es/shared/assets/img/xb_small.png.js +3 -0
  205. package/es/shared/components/SelectPage/{SelectPage.js → SelectPage.vue.js} +0 -0
  206. package/es/shared/components/SelectPage/index.js +2 -2
  207. package/es/shared/components/SvgIcon/{SvgIcon.js → SvgIcon.vue.js} +0 -0
  208. package/es/shared/components/SvgIcon/index.js +2 -2
  209. package/es/shared/components/TextOverTooltip/{TextOverTooltip.js → TextOverTooltip.vue.js} +0 -0
  210. package/es/shared/components/TextOverTooltip/index.js +2 -2
  211. package/es/shared/components/no-data/{NoData.js → NoData.vue.js} +4 -4
  212. package/es/shared/components/no-data/index.js +2 -2
  213. package/es/shared/utils/index.d.ts +1 -1
  214. package/es/shared/utils/index.js +3 -3
  215. package/package.json +2 -2
  216. package/es/components/button-print/src/components/edit.js +0 -142
  217. package/es/components/fabric-chart/index.d.ts +0 -207
  218. package/es/components/fabric-chart/src/FabricChart.vue.d.ts +0 -208
  219. package/es/components/keyboard/src/Keyboard.js +0 -285
@@ -0,0 +1,213 @@
1
+ import { defineComponent, inject, createVNode, ref, computed } from 'vue';
2
+ import { connect, mapProps } from '@formily/vue';
3
+ import { useVModel } from '@vueuse/core';
4
+ import { isFunction, omit } from 'lodash-es';
5
+ import '../../../index.js';
6
+ import { InjectionAsyncQueue } from '../../constants/index.js';
7
+ import RecommendSearch from '../../../../recommend-search/index.js';
8
+ import { useFormField } from '../../hooks/useFormField.js';
9
+ import { useAutographOptions } from '../../hooks/useAutographOptions.js';
10
+ import { assignUpdateValue, assignClearBindVisited } from '../../utils/schema.js';
11
+ import { useCommonInjection } from '../../hooks/useCommonInjection.js';
12
+ import { useFormRequest } from '../../hooks/useFormRequest.js';
13
+
14
+ function createPropRef(props, key) {
15
+ const _list = ref();
16
+ return computed({
17
+ get() {
18
+ if (_list.value)
19
+ return _list.value;
20
+ return props[key];
21
+ },
22
+ set(value) {
23
+ _list.value = value;
24
+ }
25
+ });
26
+ }
27
+ const script = defineComponent({
28
+ name: "FormRecommendSearch",
29
+ props: {
30
+ value: {
31
+ type: String
32
+ },
33
+ commonList: {
34
+ type: Array
35
+ },
36
+ recentList: {
37
+ type: Array
38
+ },
39
+ options: {
40
+ type: Array,
41
+ default: () => []
42
+ },
43
+ autograph: {
44
+ type: String
45
+ },
46
+ lazyRequest: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ requestCache: {
51
+ type: Boolean,
52
+ default: true
53
+ },
54
+ wordbook: {
55
+ type: Object
56
+ },
57
+ getRecommendInfo: {
58
+ type: Function
59
+ },
60
+ recommendNum: {
61
+ type: Number,
62
+ default: 5
63
+ },
64
+ recommendCache: {
65
+ type: Boolean,
66
+ default: false
67
+ },
68
+ recommendDeletable: {
69
+ type: Boolean,
70
+ default: true
71
+ }
72
+ },
73
+ emits: ["update:value", "postRecommend", "deleteRecommend"],
74
+ setup(props, {
75
+ emit
76
+ }) {
77
+ const valueRef = useVModel(props, "value", emit);
78
+ const {
79
+ fieldKey
80
+ } = useFormField();
81
+ const {
82
+ labelKey,
83
+ valueKey,
84
+ options,
85
+ fetchData: fetchOptions
86
+ } = useAutographOptions(props, valueRef);
87
+ const commonListRef = createPropRef(props, "commonList");
88
+ const recentListRef = createPropRef(props, "recentList");
89
+ const asyncQueue = inject(InjectionAsyncQueue);
90
+ const {
91
+ getRecommendRequestInfo,
92
+ getHttpInstance
93
+ } = useFormRequest();
94
+ function getRecommendConfig(type) {
95
+ const {
96
+ url,
97
+ getRecommendIds
98
+ } = getRecommendRequestInfo();
99
+ const globInfo = isFunction(getRecommendIds) ? getRecommendIds() : {};
100
+ const widgetInfo = isFunction(props.getRecommendInfo) ? props.getRecommendInfo() : {};
101
+ return {
102
+ url: url[type],
103
+ info: Object.assign({}, globInfo, widgetInfo)
104
+ };
105
+ }
106
+ async function getRecommend() {
107
+ if (commonListRef.value && recentListRef.value && props.recommendCache)
108
+ return;
109
+ const list = await asyncQueue.addAsync(createParams(fieldKey.value, props.recommendCache));
110
+ const {
111
+ commonly,
112
+ recently
113
+ } = classifyList(list);
114
+ commonListRef.value = commonly;
115
+ recentListRef.value = recently;
116
+ function classifyList(list2) {
117
+ return list2.reduce((res, item) => {
118
+ if (item.type === "commonly") {
119
+ res.commonly.push(omit(item, ["type"]));
120
+ } else if (item.type === "recently") {
121
+ res.recently.push(omit(item, ["type"]));
122
+ }
123
+ return res;
124
+ }, {
125
+ commonly: [],
126
+ recently: []
127
+ });
128
+ }
129
+ function createParams(key2, cache) {
130
+ const {
131
+ url,
132
+ info
133
+ } = getRecommendConfig("get");
134
+ return {
135
+ url,
136
+ method: "get",
137
+ key: key2,
138
+ cache,
139
+ params: {
140
+ ...info,
141
+ recNum: props.recommendNum,
142
+ keyword: ""
143
+ }
144
+ };
145
+ }
146
+ }
147
+ async function postRecommend({
148
+ option
149
+ }) {
150
+ const http = getHttpInstance();
151
+ if (!http)
152
+ return;
153
+ const {
154
+ url,
155
+ info
156
+ } = getRecommendConfig("post");
157
+ emit("postRecommend", await http.post(url, {
158
+ ...info,
159
+ keyword: "",
160
+ itemId: valueKey.value,
161
+ itemObj: JSON.stringify(option)
162
+ }));
163
+ }
164
+ async function deleteRecommend(recType) {
165
+ const http = getHttpInstance();
166
+ if (!http)
167
+ return;
168
+ const {
169
+ url,
170
+ info
171
+ } = getRecommendConfig("delete");
172
+ if (recType === "COMMONLY")
173
+ commonListRef.value = [];
174
+ else if (recType === "RECENTLY")
175
+ recentListRef.value = [];
176
+ emit("deleteRecommend", await http.delete(url, {
177
+ ...info,
178
+ keyword: "",
179
+ recType
180
+ }));
181
+ }
182
+ async function fetchData(content = "") {
183
+ fetchOptions(content);
184
+ getRecommend();
185
+ }
186
+ const {
187
+ injectValueBindKey
188
+ } = useCommonInjection();
189
+ const key = injectValueBindKey(valueRef);
190
+ return () => {
191
+ return createVNode(RecommendSearch, {
192
+ "mode": "select",
193
+ "value": valueRef.value,
194
+ "onUpdate:value": ($event) => valueRef.value = $event,
195
+ "label-key": labelKey.value,
196
+ "value-key": valueKey.value,
197
+ "key": key.value,
198
+ "options": options.value,
199
+ "common-list": commonListRef.value,
200
+ "recent-list": recentListRef.value,
201
+ "recommend-deletable": props.recommendDeletable,
202
+ "onSearch": fetchData,
203
+ "onChoose": postRecommend,
204
+ "onDelete": deleteRecommend
205
+ }, null);
206
+ };
207
+ }
208
+ });
209
+ const RECOMMEND_SELECT = connect(script, mapProps({
210
+ dataSource: "options"
211
+ }, assignUpdateValue, assignClearBindVisited));
212
+
213
+ export { RECOMMEND_SELECT };
@@ -68,7 +68,6 @@ const script = defineComponent({
68
68
  cache: props.requestCache,
69
69
  field: field.value
70
70
  }));
71
- console.log(remoteOptions.value);
72
71
  } catch (e) {
73
72
  isString(e) && formRenderLog(e);
74
73
  }
@@ -5,7 +5,7 @@ import { useCommonInjection, useSelectOptionProps } from '../../hooks/useCommonI
5
5
  import { InjectionAsyncQueue, InjectionChangeContextCollector, InjectionFormItemDepsCollector } from '../../constants/index.js';
6
6
  import '../../../../../shared/utils/index.js';
7
7
  import '../../../index.js';
8
- import { createUrlConfigParams, formRenderLog, optionMatcher } from '../../utils/index.js';
8
+ import { createUrlConfigParams, formRenderLog, optionMatcherWithKeyword } from '../../utils/index.js';
9
9
  import { useFormField } from '../../hooks/useFormField.js';
10
10
  import '../../../../../shared/utils/tapable/SyncHook.js';
11
11
  import '../../../../../shared/utils/tapable/SyncBailHook.js';
@@ -77,8 +77,6 @@ const script = defineComponent({
77
77
  if (!props.urlConfig) {
78
78
  return remoteOptions.value = null;
79
79
  }
80
- if (remoteOptions.value && props.requestCache)
81
- return;
82
80
  try {
83
81
  remoteOptions.value = await asyncQueue.addAsync(await createUrlConfigParams({
84
82
  config: props.urlConfig,
@@ -91,10 +89,10 @@ const script = defineComponent({
91
89
  }, 300);
92
90
  const parsedOptions = computed(() => {
93
91
  if (remoteOptions.value)
94
- return optionMatcher(remoteOptions.value, lastSearch.value, labelKey.value);
92
+ return optionMatcherWithKeyword(remoteOptions.value, lastSearch.value, labelKey.value);
95
93
  if (!Array.isArray(props.options))
96
94
  return [];
97
- return optionMatcher(props.options, lastSearch.value, labelKey.value);
95
+ return optionMatcherWithKeyword(props.options, lastSearch.value, labelKey.value);
98
96
  });
99
97
  const changeContextCollector = inject(InjectionChangeContextCollector);
100
98
  changeContextCollector.setContext(fieldKey.value, (v) => {
@@ -116,7 +116,7 @@ function useAsyncQueue(requestInstance) {
116
116
  return new AsyncQueue({
117
117
  name: "FormRenderAsyncQueue",
118
118
  parallelism,
119
- async processor({ key, method = "post", params, url }, cb, removeCache) {
119
+ async processor({ key, method = "post", cache, params, url }, cb, removeCache) {
120
120
  var _a, _b;
121
121
  const http = (_a = unref(requestInstance)) != null ? _a : getHttpInstance();
122
122
  if (!http) {
@@ -134,6 +134,7 @@ function useAsyncQueue(requestInstance) {
134
134
  res = option.afterRequest(key, res);
135
135
  }
136
136
  cb(void 0, Array.isArray(res) ? res : []);
137
+ !cache && removeCache();
137
138
  } catch (e) {
138
139
  cb(new Error(`Request error => ${e}`));
139
140
  removeCache();
@@ -3,7 +3,7 @@ import { isString, isEqual } from 'lodash-es';
3
3
  import { getCurrentInstance, inject, computed, ref, watch } from 'vue';
4
4
  import '../../index.js';
5
5
  import { InjectionAsyncQueue } from '../constants/index.js';
6
- import { formRenderLog, optionMatcher } from '../utils/index.js';
6
+ import { formRenderLog, optionMatcherWithKeyword } from '../utils/index.js';
7
7
  import { useFormField } from './useFormField.js';
8
8
  import { useFormRequest } from './useFormRequest.js';
9
9
 
@@ -21,22 +21,20 @@ function useAutographOptions(props, valueRef) {
21
21
  });
22
22
  const remoteOptions = ref(null);
23
23
  const lastSearch = ref("");
24
- const { field, fieldKey } = useFormField();
24
+ const { fieldKey } = useFormField();
25
25
  const { getSearchRequestInfo } = useFormRequest();
26
26
  const fetchData = useDebounceFn(async function(content) {
27
27
  if (!props.autograph || !props.wordbook)
28
28
  return;
29
29
  lastSearch.value = content || "";
30
- if (remoteOptions.value && props.requestCache)
31
- return;
32
30
  try {
33
31
  remoteOptions.value = await asyncQueue.addAsync(
34
- createParams(props.wordbook, props.autograph, field.value, fieldKey.value)
32
+ createParams(props.wordbook, props.autograph, fieldKey.value)
35
33
  );
36
34
  } catch (e) {
37
35
  isString(e) && formRenderLog(e);
38
36
  }
39
- function createParams(wordbook, autograph, field2, key) {
37
+ function createParams(wordbook, autograph, key) {
40
38
  const params = {
41
39
  autograph,
42
40
  wordbookId: wordbook.id,
@@ -50,7 +48,7 @@ function useAutographOptions(props, valueRef) {
50
48
  }, 300);
51
49
  const options = computed(() => {
52
50
  var _a;
53
- return remoteOptions.value ? optionMatcher(remoteOptions.value, lastSearch.value, labelKey.value) : (_a = props.options) != null ? _a : [];
51
+ return remoteOptions.value ? optionMatcherWithKeyword(remoteOptions.value, lastSearch.value, labelKey.value) : (_a = props.options) != null ? _a : [];
54
52
  });
55
53
  watch(
56
54
  () => props.wordbook,
@@ -4,6 +4,7 @@ import { FIELD_BUSINESS_TYPE } from '../constants';
4
4
  export declare class BusinessCollector {
5
5
  private formModel;
6
6
  private businessFormatter?;
7
+ private readonly typeLockMap;
7
8
  private readonly typeCollector;
8
9
  private readonly fieldNameCollector;
9
10
  constructor(formModel: Form, businessFormatter?: FormBusinessFormatter | undefined);
@@ -14,12 +15,12 @@ export declare class BusinessCollector {
14
15
  private getType;
15
16
  private getValueByField;
16
17
  getValueByType(type: FIELD_BUSINESS_TYPE): unknown;
17
- setValueByType(type: FIELD_BUSINESS_TYPE, value: unknown, beforeChange?: () => void): void;
18
+ setValueByType(type: FIELD_BUSINESS_TYPE, value: unknown): void;
18
19
  registerChangeBusiness(type: FIELD_BUSINESS_TYPE, handler: () => void): this;
19
20
  registerBlurBusiness(type: FIELD_BUSINESS_TYPE, handler: () => void): this;
20
21
  private changeHandlerMap;
21
22
  private blurHandlerMap;
22
- trigger(fieldName: string, triggerType?: 'change' | 'blur'): void;
23
+ trigger(fieldName: string, triggerType?: 'change' | 'blur'): Map<FIELD_BUSINESS_TYPE, number> | undefined;
23
24
  }
24
25
  export declare function useBusinessBinding(): {
25
26
  create: (formModel: Form, formatter?: FormBusinessFormatter) => BusinessCollector;
@@ -9,6 +9,7 @@ class BusinessCollector {
9
9
  constructor(formModel, businessFormatter) {
10
10
  this.formModel = formModel;
11
11
  this.businessFormatter = businessFormatter;
12
+ this.typeLockMap = /* @__PURE__ */ new Map();
12
13
  this.typeCollector = /* @__PURE__ */ new Map();
13
14
  this.fieldNameCollector = /* @__PURE__ */ new Map();
14
15
  this.changeHandlerMap = /* @__PURE__ */ new Map([]);
@@ -39,12 +40,13 @@ class BusinessCollector {
39
40
  const field = this.getField(type);
40
41
  return field ? this.getValueByField(field) : null;
41
42
  }
42
- setValueByType(type, value, beforeChange) {
43
+ setValueByType(type, value) {
43
44
  const field = this.getField(type);
44
45
  field && this.formModel.setFieldState(field, (state) => {
45
46
  if (state.value === value)
46
47
  return;
47
- isFunction(beforeChange) && beforeChange();
48
+ const lock = this.typeLockMap.get(type);
49
+ this.typeLockMap.set(type, isNumber(lock) ? lock + 1 : 1);
48
50
  state.value = this.formatter({ value, type, fieldKey: field });
49
51
  });
50
52
  }
@@ -57,10 +59,17 @@ class BusinessCollector {
57
59
  return this;
58
60
  }
59
61
  trigger(fieldName, triggerType = "change") {
60
- var _a, _b;
62
+ var _a;
61
63
  const type = this.getType(fieldName);
62
- const handlerMaps = { change: this.changeHandlerMap, blur: this.blurHandlerMap };
63
- type && ((_b = (_a = handlerMaps[triggerType]) == null ? void 0 : _a.get(type)) == null ? void 0 : _b.call(this));
64
+ if (!type)
65
+ return;
66
+ if (triggerType === "change" && this.typeLockMap.get(type) > 0) {
67
+ return this.typeLockMap.set(type, this.typeLockMap.get(type) - 1);
68
+ }
69
+ const handler = triggerType === "change" ? this.changeHandlerMap : triggerType === "blur" ? this.blurHandlerMap : null;
70
+ if (!handler)
71
+ return;
72
+ (_a = handler.get(type)) == null ? void 0 : _a.call(this);
64
73
  }
65
74
  }
66
75
  function useBusinessBinding() {
@@ -72,38 +81,32 @@ function useBusinessBinding() {
72
81
  }
73
82
  const info = parseIdCard(idCard);
74
83
  const { age, ageUnit } = parseAge2FromContext(info);
75
- this.setValueByType(FIELD_BUSINESS_TYPE.AGE_UNIT, ageUnit, () => ageTypeHandlerLock++);
76
- this.setValueByType(FIELD_BUSINESS_TYPE.AGE, age, () => ageTypeHandlerLock++);
84
+ this.setValueByType(FIELD_BUSINESS_TYPE.AGE_UNIT, ageUnit);
85
+ this.setValueByType(FIELD_BUSINESS_TYPE.AGE, age);
77
86
  this.setValueByType(FIELD_BUSINESS_TYPE.SEX, info.sex);
78
- this.setValueByType(FIELD_BUSINESS_TYPE.BIRTHDAY, info.birthday, () => birthdayHandlerLock++);
87
+ this.setValueByType(FIELD_BUSINESS_TYPE.BIRTHDAY, info.birthday);
79
88
  setSexDisabled.call(this, true);
80
89
  function setSexDisabled(value) {
81
90
  const sexField = this.getFieldInstanceByType(FIELD_BUSINESS_TYPE.SEX);
82
91
  isField(sexField) && (sexField.disabled = value);
83
92
  }
84
93
  }
85
- let birthdayHandlerLock = 0;
86
94
  function handlerBirthdayType() {
87
- if (birthdayHandlerLock > 0)
88
- return birthdayHandlerLock--;
89
95
  const birthday = this.getValueByType(FIELD_BUSINESS_TYPE.BIRTHDAY);
90
96
  if (!isString(birthday))
91
97
  return;
92
98
  const { age, ageUnit } = parseAge2FromContext(parseBirthday(birthday));
93
- this.setValueByType(FIELD_BUSINESS_TYPE.AGE_UNIT, ageUnit, () => ageTypeHandlerLock++);
94
- this.setValueByType(FIELD_BUSINESS_TYPE.AGE, age, () => ageTypeHandlerLock++);
99
+ this.setValueByType(FIELD_BUSINESS_TYPE.AGE_UNIT, ageUnit);
100
+ this.setValueByType(FIELD_BUSINESS_TYPE.AGE, age);
95
101
  }
96
- let ageTypeHandlerLock = 0;
97
102
  function handlerAgeType() {
98
- if (ageTypeHandlerLock > 0)
99
- return ageTypeHandlerLock--;
100
103
  const age = this.getValueByType(FIELD_BUSINESS_TYPE.AGE);
101
104
  const ageUnit = this.getValueByType(FIELD_BUSINESS_TYPE.AGE_UNIT);
102
105
  if (!isString(age) && !isNumber(age) || age === "")
103
106
  return;
104
107
  if (!isString(ageUnit) || ageUnit === "")
105
108
  return;
106
- this.setValueByType(FIELD_BUSINESS_TYPE.BIRTHDAY, parseAge2Birthday(+age, ageUnit), () => birthdayHandlerLock++);
109
+ this.setValueByType(FIELD_BUSINESS_TYPE.BIRTHDAY, parseAge2Birthday(+age, ageUnit));
107
110
  }
108
111
  function create(formModel, formatter) {
109
112
  return new BusinessCollector(formModel, formatter).registerChangeBusiness(FIELD_BUSINESS_TYPE.ID_CARD, handlerIdCardType).registerChangeBusiness(FIELD_BUSINESS_TYPE.AGE_UNIT, handlerAgeType).registerChangeBusiness(FIELD_BUSINESS_TYPE.AGE, handlerAgeType).registerChangeBusiness(FIELD_BUSINESS_TYPE.BIRTHDAY, handlerBirthdayType);
@@ -89,6 +89,12 @@ function useFieldListAdaptor(collector) {
89
89
  multiple && (schema2.type = "array");
90
90
  }
91
91
  };
92
+ const createRecommendSelectSchema = (item) => {
93
+ const schema = createSelectSchema(item);
94
+ schema["x-component"] = "RECOMMEND_SELECT";
95
+ Object.assign(schema["x-component-props"], pick(item, ["commonList", "recentList"]));
96
+ return schema;
97
+ };
92
98
  const createRadioSchema = (item) => {
93
99
  const schema = createStandardSchema(item);
94
100
  Object.assign(schema["x-component-props"], {
@@ -219,6 +225,7 @@ function useFieldListAdaptor(collector) {
219
225
  ["INPUT", createInputSchema],
220
226
  ["INPUT_NUMBER", createInputNumberSchema],
221
227
  ["SELECT", createSelectSchema],
228
+ ["RECOMMEND_SELECT", createRecommendSelectSchema],
222
229
  ["REMOTE_SEARCH", createSelectSchema],
223
230
  ["DATE", createDateSchema],
224
231
  ["LEVEL_SEARCH_CASCADER", createLevelSearchCascadeSchema],
@@ -6,14 +6,21 @@ declare type SearchRequestInfo = {
6
6
  url: string;
7
7
  primaryKeyUrl?: string;
8
8
  };
9
+ export declare type RecommendIds = Partial<Record<'businessId' | 'componentId' | 'deptId' | 'userId', string>>;
10
+ declare type RecommendRequestInfo = {
11
+ getRecommendIds(): RecommendIds;
12
+ url: Record<'get' | 'post' | 'delete', string>;
13
+ };
9
14
  export declare function useFormRequest(): {
10
15
  getHttpInstance: () => Nullable<RequestInstance>;
11
16
  registGlobHttpInstance: (instance: RequestInstance) => void;
17
+ registGlobRecommendInfo: (info: Partial<RecommendRequestInfo>) => void;
18
+ registGlobSearchInfo: (info: SearchRequestInfo) => void;
12
19
  getSearchRequestInfo: () => {
13
20
  method: FormRequestType;
14
21
  url: string;
15
22
  primaryKeyUrl?: string | undefined;
16
23
  };
17
- registGlobSearchInfo: (info: SearchRequestInfo) => void;
24
+ getRecommendRequestInfo: () => RecommendRequestInfo;
18
25
  };
19
26
  export {};
@@ -1,5 +1,15 @@
1
+ import { cloneDeep } from 'lodash-es';
2
+
1
3
  let http = null;
2
4
  const searchRequestInfo = { method: "post", url: "", primaryKeyUrl: "" };
5
+ const recommendRequestInfo = {
6
+ url: {
7
+ get: "/fdp-api/fdp/aiRec/search",
8
+ post: "/fdp-api/fdp/aiRec/sendBehaviorData",
9
+ delete: "/fdp-api/fdp/aiRec/delete"
10
+ },
11
+ getRecommendIds: () => ({})
12
+ };
3
13
  function useFormRequest() {
4
14
  function getHttpInstance() {
5
15
  return http;
@@ -10,10 +20,23 @@ function useFormRequest() {
10
20
  function getSearchRequestInfo() {
11
21
  return { ...searchRequestInfo };
12
22
  }
23
+ function getRecommendRequestInfo() {
24
+ return cloneDeep(recommendRequestInfo);
25
+ }
13
26
  function registGlobSearchInfo(info) {
14
27
  Object.assign(searchRequestInfo, info);
15
28
  }
16
- return { getHttpInstance, registGlobHttpInstance, getSearchRequestInfo, registGlobSearchInfo };
29
+ function registGlobRecommendInfo(info) {
30
+ Object.assign(recommendRequestInfo, info);
31
+ }
32
+ return {
33
+ getHttpInstance,
34
+ registGlobHttpInstance,
35
+ registGlobRecommendInfo,
36
+ registGlobSearchInfo,
37
+ getSearchRequestInfo,
38
+ getRecommendRequestInfo
39
+ };
17
40
  }
18
41
 
19
42
  export { useFormRequest };
@@ -13,8 +13,8 @@ export declare function createSlot(renderer: unknown, props: AnyObject, defaultR
13
13
  default(): any;
14
14
  };
15
15
  export declare function createInputSlot(props: AnyObject, defaultRenderer?: (v: unknown) => unknown[]): import("vue").ComputedRef<Record<string, FunctionalComponent<{}, {}>>>;
16
- export declare function presetRequestHandler(res: unknown): any;
17
- export declare function optionMatcher(options: AnyObject[], input: Nullable<string>, key: string, matcherOption?: {
16
+ export declare function presetRequestHandler(res: unknown): AnyObject[];
17
+ export declare function optionMatcherWithKeyword(options: AnyObject[], input: Nullable<string>, key: string, matcherOption?: {
18
18
  keyword?: string;
19
19
  }): AnyObject[];
20
20
  export declare function validateMessageParser(message: string, fieldItem: Omit<FieldItem, 'reactions'>): string;
@@ -83,7 +83,10 @@ function createInputSlot(props, defaultRenderer) {
83
83
  function presetRequestHandler(res) {
84
84
  if (!isObject(res))
85
85
  throw res;
86
- return res.result && res.map ? handlerSearch(res) : handlerSelect(res);
86
+ return isSearchResult(res) ? handlerSearch(res) : isRecommendResult(res) ? handlerRecommend(res) : isSelectResult(res) ? handlerSelect(res) : [];
87
+ function isSelectResult(res2) {
88
+ return Reflect.has(res2, "data") && Reflect.has(res2, "success");
89
+ }
87
90
  function handlerSelect(res2) {
88
91
  const {
89
92
  data,
@@ -93,6 +96,9 @@ function presetRequestHandler(res) {
93
96
  throw res2;
94
97
  return data;
95
98
  }
99
+ function isSearchResult(res2) {
100
+ return Reflect.has(res2, "map") && Reflect.has(res2, "result");
101
+ }
96
102
  function handlerSearch(res2) {
97
103
  const {
98
104
  result,
@@ -102,6 +108,24 @@ function presetRequestHandler(res) {
102
108
  throw res2;
103
109
  return map.rows;
104
110
  }
111
+ function isRecommendResult(res2) {
112
+ return Reflect.has(res2, "result") && Reflect.has(res2, "obj");
113
+ }
114
+ function handlerRecommend(res2) {
115
+ const {
116
+ obj,
117
+ result
118
+ } = res2;
119
+ if (result !== "SUCCESS" || !isObject(obj))
120
+ throw res2;
121
+ return Object.entries(obj).reduce((res3, [type, list]) => {
122
+ list.forEach((item) => res3.push({
123
+ ...item,
124
+ type
125
+ }));
126
+ return res3;
127
+ }, []);
128
+ }
105
129
  }
106
130
  const keywordMatcher = useMemoize(function(text, keyword) {
107
131
  if (!isString(keyword) || !isString(text))
@@ -114,7 +138,7 @@ const keywordMatcher = useMemoize(function(text, keyword) {
114
138
  }, "");
115
139
  }
116
140
  });
117
- function optionMatcher(options, input, key, matcherOption = {
141
+ function optionMatcherWithKeyword(options, input, key, matcherOption = {
118
142
  keyword: "keyword"
119
143
  }) {
120
144
  if (!input)
@@ -228,4 +252,4 @@ async function createUrlConfigParams({
228
252
  };
229
253
  }
230
254
 
231
- export { combineExtendKey, createInputSlot, createSlot, createUrlConfigParams, formRenderLog, injectOrProvide, isNestedFieldType, isNestedType, mergeDeepProperties, optionMatcher, parseNumberFromMaybeString, presetRequestHandler, splitExtendKey, validateMessageParser };
255
+ export { combineExtendKey, createInputSlot, createSlot, createUrlConfigParams, formRenderLog, injectOrProvide, isNestedFieldType, isNestedType, mergeDeepProperties, optionMatcherWithKeyword, parseNumberFromMaybeString, presetRequestHandler, splitExtendKey, validateMessageParser };
@@ -1 +1 @@
1
- .annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;position:relative}.form-render__formItemLabel--text.has-annotation{margin-right:15px}.form-render__formItemLabel--annotation{position:absolute;right:calc(var(--icon-right)*1px);top:50%;transform:translateY(-50%)}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}
1
+ .annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;padding:0 8px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{border:1px solid rgba(0,0,0,.1);border-radius:4px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;padding:0 8px 0 16px;width:100%}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 20px)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;position:relative}.form-render__formItemLabel--text.has-annotation{margin-right:15px}.form-render__formItemLabel--annotation{position:absolute;right:calc(var(--icon-right)*1px);top:50%;transform:translateY(-50%)}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}