aldehyde 0.2.479 → 0.2.481

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 (685) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +2 -2
  3. package/lib/controls/2dEditor/2dEditor/index.less +5 -5
  4. package/lib/controls/2dEditor/2dView/index.less +8 -8
  5. package/lib/controls/2dEditor/components/card.js +2 -2
  6. package/lib/controls/2dEditor/components/card.js.map +1 -1
  7. package/lib/controls/2dEditor/components/component.less +83 -83
  8. package/lib/controls/action/index.css +8 -8
  9. package/lib/controls/action/index.d.ts.map +1 -1
  10. package/lib/controls/chemstruc/graph.d.ts.map +1 -1
  11. package/lib/controls/chemstruc/index.css +28 -28
  12. package/lib/controls/collapse-card/index.css +8 -8
  13. package/lib/controls/collapse-card/index.d.ts.map +1 -1
  14. package/lib/controls/cquery/cquick-button.d.ts.map +1 -1
  15. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  16. package/lib/controls/entity-select/entity-select.js +3 -3
  17. package/lib/controls/entity-select/entity-select.js.map +1 -1
  18. package/lib/controls/entity-select/index.css +7 -7
  19. package/lib/controls/entity-select/lab-tree-select.d.ts.map +1 -1
  20. package/lib/controls/entity-select/popover-entity-select.d.ts.map +1 -1
  21. package/lib/controls/file-view/index.less +9 -9
  22. package/lib/controls/html-editor/index.less +67 -67
  23. package/lib/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  24. package/lib/controls/password-setter/index.css +2 -2
  25. package/lib/controls/password-setter/index.d.ts.map +1 -1
  26. package/lib/controls/qr-code/index.less +28 -28
  27. package/lib/controls/relation-existion/index.css +3 -3
  28. package/lib/controls/relation-existion/index.d.ts.map +1 -1
  29. package/lib/controls/rfield/index.css +4 -4
  30. package/lib/controls/rfield/index.d.ts.map +1 -1
  31. package/lib/controls/select/index.d.ts.map +1 -1
  32. package/lib/controls/signature/index.d.ts.map +1 -1
  33. package/lib/controls/text/ellipsis-text.d.ts.map +1 -1
  34. package/lib/controls/text/index.less +7 -7
  35. package/lib/controls/upload/index.d.ts.map +1 -1
  36. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -1
  37. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  38. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  39. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  40. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  41. package/lib/detail/button/index.css +42 -42
  42. package/lib/detail/dtmpl.css +67 -67
  43. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  44. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  45. package/lib/detail/edit/popover-edit-card.d.ts.map +1 -1
  46. package/lib/detail/rightbar/index.css +34 -34
  47. package/lib/detail/rightbar/index.d.ts.map +1 -1
  48. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  49. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  50. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  51. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  52. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -1
  53. package/lib/draw-canvas-edit/components/asset-bar/index.d.ts +1 -0
  54. package/lib/draw-canvas-edit/components/asset-bar/index.d.ts.map +1 -1
  55. package/lib/draw-canvas-edit/components/asset-bar/index.js +8 -6
  56. package/lib/draw-canvas-edit/components/asset-bar/index.js.map +1 -1
  57. package/lib/draw-canvas-edit/components/main-header/index.less +3 -0
  58. package/lib/draw-canvas-edit/components/render/components/index.d.ts +3 -0
  59. package/lib/draw-canvas-edit/components/render/components/index.d.ts.map +1 -0
  60. package/lib/draw-canvas-edit/components/render/components/index.js +3 -0
  61. package/lib/draw-canvas-edit/components/render/components/index.js.map +1 -0
  62. package/lib/draw-canvas-edit/components/render/components/workstation-component.d.ts +31 -0
  63. package/lib/draw-canvas-edit/components/render/components/workstation-component.d.ts.map +1 -0
  64. package/lib/draw-canvas-edit/components/render/components/workstation-component.js +105 -0
  65. package/lib/draw-canvas-edit/components/render/components/workstation-component.js.map +1 -0
  66. package/lib/draw-canvas-edit/components/render/draws/bg-draw.d.ts.map +1 -1
  67. package/lib/draw-canvas-edit/components/render/draws/bg-draw.js +14 -1
  68. package/lib/draw-canvas-edit/components/render/draws/bg-draw.js.map +1 -1
  69. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.d.ts.map +1 -1
  70. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.js +30 -6
  71. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.js.map +1 -1
  72. package/lib/draw-canvas-edit/components/render/graphs/bezier.js +3 -3
  73. package/lib/draw-canvas-edit/components/render/graphs/bezier.js.map +1 -1
  74. package/lib/draw-canvas-edit/components/render/graphs/circle.js +2 -2
  75. package/lib/draw-canvas-edit/components/render/graphs/circle.js.map +1 -1
  76. package/lib/draw-canvas-edit/components/render/graphs/curve.js +3 -3
  77. package/lib/draw-canvas-edit/components/render/graphs/curve.js.map +1 -1
  78. package/lib/draw-canvas-edit/components/render/graphs/line.js +3 -3
  79. package/lib/draw-canvas-edit/components/render/graphs/line.js.map +1 -1
  80. package/lib/draw-canvas-edit/components/render/graphs/rect.js +2 -2
  81. package/lib/draw-canvas-edit/components/render/graphs/rect.js.map +1 -1
  82. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts +1 -1
  83. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts.map +1 -1
  84. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js +58 -122
  85. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js.map +1 -1
  86. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.d.ts.map +1 -1
  87. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.js +2 -1
  88. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.js.map +1 -1
  89. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts.map +1 -1
  90. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js +11 -4
  91. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js.map +1 -1
  92. package/lib/draw-canvas-edit/components/render/index.d.ts +3 -1
  93. package/lib/draw-canvas-edit/components/render/index.d.ts.map +1 -1
  94. package/lib/draw-canvas-edit/components/render/index.js +37 -26
  95. package/lib/draw-canvas-edit/components/render/index.js.map +1 -1
  96. package/lib/draw-canvas-edit/components/render/tools/attract-tool.d.ts +2 -1
  97. package/lib/draw-canvas-edit/components/render/tools/attract-tool.d.ts.map +1 -1
  98. package/lib/draw-canvas-edit/components/render/tools/attract-tool.js +33 -8
  99. package/lib/draw-canvas-edit/components/render/tools/attract-tool.js.map +1 -1
  100. package/lib/draw-canvas-edit/components/render/tools/component-factory.d.ts +64 -0
  101. package/lib/draw-canvas-edit/components/render/tools/component-factory.d.ts.map +1 -0
  102. package/lib/draw-canvas-edit/components/render/tools/component-factory.js +257 -0
  103. package/lib/draw-canvas-edit/components/render/tools/component-factory.js.map +1 -0
  104. package/lib/draw-canvas-edit/components/render/tools/copy-tool.d.ts +0 -2
  105. package/lib/draw-canvas-edit/components/render/tools/copy-tool.d.ts.map +1 -1
  106. package/lib/draw-canvas-edit/components/render/tools/copy-tool.js +23 -45
  107. package/lib/draw-canvas-edit/components/render/tools/copy-tool.js.map +1 -1
  108. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts.map +1 -1
  109. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js +20 -41
  110. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js.map +1 -1
  111. package/lib/draw-canvas-edit/components/render/tools/index.d.ts +1 -0
  112. package/lib/draw-canvas-edit/components/render/tools/index.d.ts.map +1 -1
  113. package/lib/draw-canvas-edit/components/render/tools/index.js +1 -0
  114. package/lib/draw-canvas-edit/components/render/tools/index.js.map +1 -1
  115. package/lib/draw-canvas-edit/components/render/tools/selection-tool.d.ts.map +1 -1
  116. package/lib/draw-canvas-edit/components/render/tools/selection-tool.js +32 -19
  117. package/lib/draw-canvas-edit/components/render/tools/selection-tool.js.map +1 -1
  118. package/lib/draw-canvas-edit/components/render/types.d.ts +11 -6
  119. package/lib/draw-canvas-edit/components/render/types.d.ts.map +1 -1
  120. package/lib/draw-canvas-edit/components/render/types.js.map +1 -1
  121. package/lib/draw-canvas-edit/components/setting-form/imag-upload.d.ts.map +1 -1
  122. package/lib/draw-canvas-edit/components/setting-form/imag-upload.js +2 -2
  123. package/lib/draw-canvas-edit/components/setting-form/imag-upload.js.map +1 -1
  124. package/lib/draw-canvas-edit/components/setting-form/index.d.ts.map +1 -1
  125. package/lib/draw-canvas-edit/components/setting-form/index.js +3 -5
  126. package/lib/draw-canvas-edit/components/setting-form/index.js.map +1 -1
  127. package/lib/draw-canvas-edit/index.d.ts.map +1 -1
  128. package/lib/draw-canvas-edit/index.js +4 -1
  129. package/lib/draw-canvas-edit/index.js.map +1 -1
  130. package/lib/draw-canvas-edit/index.less +48 -48
  131. package/lib/draw-canvas-view/index.d.ts.map +1 -1
  132. package/lib/draw-canvas-view/index.js +4 -2
  133. package/lib/draw-canvas-view/index.js.map +1 -1
  134. package/lib/draw-canvas-view/index.less +59 -59
  135. package/lib/draw-canvas-view/view.d.ts +2 -0
  136. package/lib/draw-canvas-view/view.d.ts.map +1 -1
  137. package/lib/draw-canvas-view/view.js +60 -36
  138. package/lib/draw-canvas-view/view.js.map +1 -1
  139. package/lib/export/export-frame.css +2 -2
  140. package/lib/export/export-frame.d.ts.map +1 -1
  141. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  142. package/lib/form/criteria-form.js +17 -17
  143. package/lib/form/criteria-form.js.map +1 -1
  144. package/lib/form/dtmpl-form.css +3 -3
  145. package/lib/form/dtmpl-form.d.ts.map +1 -1
  146. package/lib/form/dtmpl-form.js +9 -0
  147. package/lib/form/dtmpl-form.js.map +1 -1
  148. package/lib/form/field-group-form.d.ts.map +1 -1
  149. package/lib/form/form-Item-group.d.ts.map +1 -1
  150. package/lib/form/form-Item-group.js +2 -2
  151. package/lib/form/form-Item-group.js.map +1 -1
  152. package/lib/form/index.css +12 -12
  153. package/lib/import/excel-import.d.ts.map +1 -1
  154. package/lib/import/index.css +53 -53
  155. package/lib/import/template.css +50 -50
  156. package/lib/layout/common.css +64 -64
  157. package/lib/layout/coverstyle.css +51 -51
  158. package/lib/layout/footer/index.css +5 -5
  159. package/lib/layout/header/index.css +122 -122
  160. package/lib/layout/menu/block.css +7 -7
  161. package/lib/layout/menu/block.d.ts.map +1 -1
  162. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  163. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  164. package/lib/layout/menu/message-bar.less +73 -73
  165. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  166. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  167. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  168. package/lib/layout/sidebar/index.css +57 -57
  169. package/lib/layout2/css/header.css +41 -41
  170. package/lib/layout2/css/sider.less +17 -17
  171. package/lib/layout2/css/tabs-layout.less +18 -18
  172. package/lib/layout3/css/header.less +195 -195
  173. package/lib/layout3/css/main.less +161 -161
  174. package/lib/layout3/css/sider.less +32 -32
  175. package/lib/layout3/css/tabs-layout.less +38 -38
  176. package/lib/layout4/css/header.less +196 -196
  177. package/lib/layout4/css/main.less +154 -154
  178. package/lib/layout4/css/sider.less +37 -37
  179. package/lib/layout4/css/tabs-layout.less +42 -42
  180. package/lib/layout5/css/header.less +35 -35
  181. package/lib/layout5/css/sider.less +18 -18
  182. package/lib/list/calendar/index.less +20 -20
  183. package/lib/list/card-list/index.less +154 -154
  184. package/lib/list/gantt/index.less +8 -8
  185. package/lib/list/vertical-list/index.less +208 -208
  186. package/lib/login/index.css +19 -19
  187. package/lib/login/login.d.ts.map +1 -1
  188. package/lib/login/vertify/index.css +143 -143
  189. package/lib/login3/index.less +136 -136
  190. package/lib/lowcode-components/act-table/index.less +26 -26
  191. package/lib/lowcode-components/base-button/index.less +7 -7
  192. package/lib/lowcode-components/base-map/index.js +6 -6
  193. package/lib/lowcode-components/base-radio/index.less +23 -23
  194. package/lib/lowcode-components/base-tabs/index.less +14 -14
  195. package/lib/lowcode-components/border/border10/index.less +26 -26
  196. package/lib/lowcode-components/border/border11/index.js +46 -46
  197. package/lib/lowcode-components/border/border11/index.less +17 -17
  198. package/lib/lowcode-components/border/border12/index.js +13 -13
  199. package/lib/lowcode-components/border/border12/index.less +13 -13
  200. package/lib/lowcode-components/border/border13/index.js +5 -5
  201. package/lib/lowcode-components/border/border13/index.less +13 -13
  202. package/lib/lowcode-components/border/border2/index.less +17 -17
  203. package/lib/lowcode-components/border/border3/index.less +25 -25
  204. package/lib/lowcode-components/border/border4/index.js +2 -2
  205. package/lib/lowcode-components/border/border4/index.less +72 -72
  206. package/lib/lowcode-components/border/border5/index.js +2 -2
  207. package/lib/lowcode-components/border/border5/index.less +35 -35
  208. package/lib/lowcode-components/border/border6/index.less +17 -17
  209. package/lib/lowcode-components/border/border7/index.less +26 -26
  210. package/lib/lowcode-components/border/border8/index.less +13 -13
  211. package/lib/lowcode-components/border/border9/index.js +14 -14
  212. package/lib/lowcode-components/border/border9/index.less +13 -13
  213. package/lib/lowcode-components/decoration/decoration1/index.less +7 -7
  214. package/lib/lowcode-components/decoration/decoration10/index.js +3 -3
  215. package/lib/lowcode-components/decoration/decoration10/index.less +5 -5
  216. package/lib/lowcode-components/decoration/decoration11/index.less +5 -5
  217. package/lib/lowcode-components/decoration/decoration2/index.less +6 -6
  218. package/lib/lowcode-components/decoration/decoration3/index.less +7 -7
  219. package/lib/lowcode-components/decoration/decoration4/index.less +29 -29
  220. package/lib/lowcode-components/decoration/decoration5/index.less +3 -3
  221. package/lib/lowcode-components/decoration/decoration6/index.less +7 -7
  222. package/lib/lowcode-components/decoration/decoration7/index.less +4 -4
  223. package/lib/lowcode-components/decoration/decoration8/index.less +14 -14
  224. package/lib/lowcode-components/decoration/decoration9/index.less +4 -4
  225. package/lib/lowcode-components/effectScatter-map/index.js +6 -6
  226. package/lib/lowcode-components/effectScatter-map-3d/index.js +6 -6
  227. package/lib/lowcode-components/lowcode-view/index.less +19 -19
  228. package/lib/lowcode-components/search-form/index.less +25 -25
  229. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  230. package/lib/module/dtmpl-edit-card.js +4 -4
  231. package/lib/module/dtmpl-edit-card.js.map +1 -1
  232. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  233. package/lib/module/dtmpl-edit-page.js +7 -4
  234. package/lib/module/dtmpl-edit-page.js.map +1 -1
  235. package/lib/module/index.less +4 -4
  236. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  237. package/lib/module/ltmpl-table.d.ts.map +1 -1
  238. package/lib/routable/index.less +25 -25
  239. package/lib/table/act-table.d.ts.map +1 -1
  240. package/lib/table/act-table.js +8 -8
  241. package/lib/table/act-table.js.map +1 -1
  242. package/lib/table/column/index.less +63 -63
  243. package/lib/table/index.css +211 -211
  244. package/lib/table/modal-select-table.d.ts +2 -2
  245. package/lib/table/modal-select-table.d.ts.map +1 -1
  246. package/lib/table/modal-select-table.js +10 -10
  247. package/lib/table/modal-select-table.js.map +1 -1
  248. package/lib/table/pagination.css +14 -14
  249. package/lib/table/pagination.d.ts.map +1 -1
  250. package/lib/table/relation-table.d.ts +2 -2
  251. package/lib/table/relation-table.d.ts.map +1 -1
  252. package/lib/table/relation-table.js +1 -1
  253. package/lib/table/relation-table.js.map +1 -1
  254. package/lib/table/select-table.d.ts.map +1 -1
  255. package/lib/table/select-table.js +16 -4
  256. package/lib/table/select-table.js.map +1 -1
  257. package/lib/table/selected-rows-card.d.ts.map +1 -1
  258. package/lib/table/stat/restat.d.ts.map +1 -1
  259. package/lib/tmpl/hc-data-source.js +2 -2
  260. package/lib/tmpl/hc-data-source.js.map +1 -1
  261. package/lib/tmpl/interface.d.ts +7 -7
  262. package/lib/tmpl/interface.d.ts.map +1 -1
  263. package/lib/tmpl/tmpl-config-analysis.d.ts.map +1 -1
  264. package/lib/tmpl/tmpl-config-analysis.js +23 -23
  265. package/lib/tmpl/tmpl-config-analysis.js.map +1 -1
  266. package/lib/tree/act-tree.d.ts.map +1 -1
  267. package/lib/tree/block-menu-auth-tree.d.ts.map +1 -1
  268. package/lib/tree/index.css +22 -22
  269. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  270. package/lib/units/index.js +3 -3
  271. package/lib/units/index.js.map +1 -1
  272. package/lib/welcome/components/menu-card.less +96 -96
  273. package/lib/welcome/components/page-card.less +49 -49
  274. package/lib/welcome/components/quick-entrance.less +120 -120
  275. package/lib/welcome/components/user-menus.less +192 -192
  276. package/lib/welcome/components/workbench.less +118 -118
  277. package/lib/welcome/index.css +13 -13
  278. package/package.json +223 -223
  279. package/src/aldehyde/controls/2dEditor/2dEditor/index.less +5 -5
  280. package/src/aldehyde/controls/2dEditor/2dEditor/index.tsx +270 -270
  281. package/src/aldehyde/controls/2dEditor/2dView/index.less +8 -8
  282. package/src/aldehyde/controls/2dEditor/2dView/index.tsx +110 -110
  283. package/src/aldehyde/controls/2dEditor/components/card.tsx +256 -256
  284. package/src/aldehyde/controls/2dEditor/components/component.less +83 -83
  285. package/src/aldehyde/controls/2dEditor/components/data.d.ts +32 -32
  286. package/src/aldehyde/controls/2dEditor/components/hotspot.tsx +80 -80
  287. package/src/aldehyde/controls/2dEditor/components/html-box.tsx +101 -101
  288. package/src/aldehyde/controls/2dEditor/components/image.tsx +99 -99
  289. package/src/aldehyde/controls/2dEditor/components/line.tsx +73 -73
  290. package/src/aldehyde/controls/action/index.css +8 -8
  291. package/src/aldehyde/controls/action/index.tsx +406 -406
  292. package/src/aldehyde/controls/action/utils.tsx +306 -306
  293. package/src/aldehyde/controls/auto-complete/index.tsx +82 -82
  294. package/src/aldehyde/controls/cascader/index.tsx +112 -112
  295. package/src/aldehyde/controls/chemstruc/graph.tsx +185 -185
  296. package/src/aldehyde/controls/chemstruc/index.css +28 -28
  297. package/src/aldehyde/controls/code-editor/sql-code-editor.tsx +73 -73
  298. package/src/aldehyde/controls/collapse-card/index.css +8 -8
  299. package/src/aldehyde/controls/collapse-card/index.tsx +109 -109
  300. package/src/aldehyde/controls/color-picker/index.tsx +21 -21
  301. package/src/aldehyde/controls/counting-tag/index.tsx +53 -53
  302. package/src/aldehyde/controls/cquery/cquick-button.tsx +145 -145
  303. package/src/aldehyde/controls/date-picker/index.tsx +199 -199
  304. package/src/aldehyde/controls/direct-file-view/drawer-file-view.tsx +54 -54
  305. package/src/aldehyde/controls/direct-file-view/index.tsx +145 -145
  306. package/src/aldehyde/controls/direct-upload/index.tsx +139 -139
  307. package/src/aldehyde/controls/entity-select/entity-select.tsx +791 -791
  308. package/src/aldehyde/controls/entity-select/index.css +7 -7
  309. package/src/aldehyde/controls/entity-select/lab-tree-select.tsx +154 -154
  310. package/src/aldehyde/controls/entity-select/popover-entity-select.tsx +205 -205
  311. package/src/aldehyde/controls/entry-control.tsx +418 -418
  312. package/src/aldehyde/controls/enum-badge/index.tsx +42 -42
  313. package/src/aldehyde/controls/enum-tag/index.tsx +45 -45
  314. package/src/aldehyde/controls/field-history/index.tsx +81 -81
  315. package/src/aldehyde/controls/file-export/select-code-export.tsx +40 -40
  316. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +117 -117
  317. package/src/aldehyde/controls/file-view/index.less +9 -9
  318. package/src/aldehyde/controls/file-view/index.tsx +148 -148
  319. package/src/aldehyde/controls/file-view/multi-file-view.tsx +39 -39
  320. package/src/aldehyde/controls/file-view/newin-file-view.tsx +40 -40
  321. package/src/aldehyde/controls/html-editor/draft.tsx +136 -136
  322. package/src/aldehyde/controls/html-editor/index.less +67 -67
  323. package/src/aldehyde/controls/icon-selector/app-icon-selector.tsx +68 -68
  324. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  325. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.json +240 -240
  326. package/src/aldehyde/controls/icon-selector/pc-icon-selector.tsx +68 -68
  327. package/src/aldehyde/controls/input-number/index.tsx +148 -148
  328. package/src/aldehyde/controls/input-range/index.tsx +59 -59
  329. package/src/aldehyde/controls/password-setter/index.css +2 -2
  330. package/src/aldehyde/controls/password-setter/index.js +88 -88
  331. package/src/aldehyde/controls/progress/index.tsx +74 -74
  332. package/src/aldehyde/controls/qr-code/index.less +28 -28
  333. package/src/aldehyde/controls/qr-code/index.tsx +40 -40
  334. package/src/aldehyde/controls/relation-existion/index.css +3 -3
  335. package/src/aldehyde/controls/relation-existion/index.tsx +144 -144
  336. package/src/aldehyde/controls/rfield/index.css +4 -4
  337. package/src/aldehyde/controls/rfield/index.tsx +225 -225
  338. package/src/aldehyde/controls/select/index.tsx +216 -216
  339. package/src/aldehyde/controls/signature/index.tsx +226 -226
  340. package/src/aldehyde/controls/single-checkbox/index.tsx +18 -18
  341. package/src/aldehyde/controls/steps/index.tsx +59 -59
  342. package/src/aldehyde/controls/text/ellipsis-text.tsx +98 -98
  343. package/src/aldehyde/controls/text/index.less +7 -7
  344. package/src/aldehyde/controls/tree-select/navigation-tree.tsx +122 -122
  345. package/src/aldehyde/controls/tree-select/tree-entity-select.tsx +121 -121
  346. package/src/aldehyde/controls/upload/index.tsx +128 -128
  347. package/src/aldehyde/controls/upload/mult-file-upload.tsx +240 -240
  348. package/src/aldehyde/controls/view-control.tsx +289 -289
  349. package/src/aldehyde/custom-page/custom-detail-modal-page.tsx +69 -69
  350. package/src/aldehyde/custom-page/custom-page-router.tsx +64 -64
  351. package/src/aldehyde/custom-page/def-custom-page.tsx +17 -17
  352. package/src/aldehyde/custom-page/dtmpl-custom-edit-modal-page.tsx +88 -88
  353. package/src/aldehyde/detail/button/bottom-submit-button-bar.tsx +91 -91
  354. package/src/aldehyde/detail/button/cquery-button-bar.tsx +144 -144
  355. package/src/aldehyde/detail/button/edit-button.tsx +61 -61
  356. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +186 -186
  357. package/src/aldehyde/detail/button/index.css +42 -42
  358. package/src/aldehyde/detail/button/inline-edit-button.tsx +40 -40
  359. package/src/aldehyde/detail/button/submit-button-bar.tsx +57 -57
  360. package/src/aldehyde/detail/button/view-button.tsx +64 -64
  361. package/src/aldehyde/detail/dtmpl.css +67 -67
  362. package/src/aldehyde/detail/edit/dtmpl-edit.tsx +279 -279
  363. package/src/aldehyde/detail/edit/fields-edit-card.tsx +145 -145
  364. package/src/aldehyde/detail/edit/modal-row-edit.tsx +95 -95
  365. package/src/aldehyde/detail/edit/popover-edit-card.tsx +167 -167
  366. package/src/aldehyde/detail/edit/popover-editor.tsx +70 -70
  367. package/src/aldehyde/detail/edit/post-result/index.tsx +86 -86
  368. package/src/aldehyde/detail/rightbar/index.css +34 -34
  369. package/src/aldehyde/detail/rightbar/index.tsx +92 -92
  370. package/src/aldehyde/detail/tooltipbar/index.tsx +32 -32
  371. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +288 -288
  372. package/src/aldehyde/detail/view/dtmpl-view.tsx +314 -314
  373. package/src/aldehyde/detail/view/field-view-group.tsx +88 -88
  374. package/src/aldehyde/detail/view/modal-dtmpl-view.tsx +73 -73
  375. package/src/aldehyde/detail/view/snapshot-timeline.tsx +231 -231
  376. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +304 -304
  377. package/src/aldehyde/detail/view/view-compare-panel.tsx +57 -57
  378. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +8 -6
  379. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +3 -0
  380. package/src/aldehyde/draw-canvas-edit/components/render/components/index.ts +3 -0
  381. package/src/aldehyde/draw-canvas-edit/components/render/components/workstation-component.tsx +104 -0
  382. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +176 -160
  383. package/src/aldehyde/draw-canvas-edit/components/render/draws/contextmenu-draw.ts +329 -305
  384. package/src/aldehyde/draw-canvas-edit/components/render/graphs/bezier.ts +542 -542
  385. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +2 -2
  386. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +3 -3
  387. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +3 -3
  388. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +2 -2
  389. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +72 -157
  390. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +7 -1
  391. package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +396 -390
  392. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +808 -799
  393. package/src/aldehyde/draw-canvas-edit/components/render/tools/attract-tool.ts +457 -437
  394. package/src/aldehyde/draw-canvas-edit/components/render/tools/component-factory.ts +270 -0
  395. package/src/aldehyde/draw-canvas-edit/components/render/tools/copy-tool.ts +244 -266
  396. package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +576 -600
  397. package/src/aldehyde/draw-canvas-edit/components/render/tools/index.ts +10 -9
  398. package/src/aldehyde/draw-canvas-edit/components/render/tools/position-tool.ts +191 -191
  399. package/src/aldehyde/draw-canvas-edit/components/render/tools/selection-tool.ts +140 -129
  400. package/src/aldehyde/draw-canvas-edit/components/render/types.ts +294 -291
  401. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +2 -1
  402. package/src/aldehyde/draw-canvas-edit/components/setting-form/index.tsx +291 -293
  403. package/src/aldehyde/draw-canvas-edit/constant.ts +5 -5
  404. package/src/aldehyde/draw-canvas-edit/index.less +48 -48
  405. package/src/aldehyde/draw-canvas-edit/index.tsx +201 -198
  406. package/src/aldehyde/draw-canvas-view/index.less +59 -59
  407. package/src/aldehyde/draw-canvas-view/index.tsx +49 -47
  408. package/src/aldehyde/draw-canvas-view/view.tsx +240 -212
  409. package/src/aldehyde/export/export-frame.css +2 -2
  410. package/src/aldehyde/export/export-frame.tsx +301 -301
  411. package/src/aldehyde/export/select-code-export-frame.tsx +212 -212
  412. package/src/aldehyde/form/criteria-form.tsx +604 -604
  413. package/src/aldehyde/form/dtmpl-form.css +3 -3
  414. package/src/aldehyde/form/dtmpl-form.tsx +552 -543
  415. package/src/aldehyde/form/field-group-form.tsx +102 -102
  416. package/src/aldehyde/form/fields-form.tsx +45 -45
  417. package/src/aldehyde/form/form-Item-group.tsx +245 -245
  418. package/src/aldehyde/form/index.css +12 -12
  419. package/src/aldehyde/hooks/use-match-route/index.tsx +62 -62
  420. package/src/aldehyde/hooks/use-tabs/index.tsx +139 -139
  421. package/src/aldehyde/hooks/useVarCssColor.ts +6 -6
  422. package/src/aldehyde/icon/aliIcon.tsx +9 -9
  423. package/src/aldehyde/icon/index.tsx +28 -28
  424. package/src/aldehyde/import/excel-import.tsx +450 -450
  425. package/src/aldehyde/import/index.css +53 -53
  426. package/src/aldehyde/import/template.css +50 -50
  427. package/src/aldehyde/index.tsx +220 -220
  428. package/src/aldehyde/layout/MainPage.tsx +334 -334
  429. package/src/aldehyde/layout/common.css +64 -64
  430. package/src/aldehyde/layout/coverstyle.css +51 -51
  431. package/src/aldehyde/layout/footer/index.css +5 -5
  432. package/src/aldehyde/layout/footer/index.js +17 -17
  433. package/src/aldehyde/layout/header/index.css +122 -122
  434. package/src/aldehyde/layout/header/index.tsx +152 -152
  435. package/src/aldehyde/layout/menu/block.css +7 -7
  436. package/src/aldehyde/layout/menu/block.tsx +174 -174
  437. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +160 -160
  438. package/src/aldehyde/layout/menu/l2menu-quick-bar.tsx +175 -175
  439. package/src/aldehyde/layout/menu/menu-2layers.tsx +117 -117
  440. package/src/aldehyde/layout/menu/menu-render.tsx +168 -168
  441. package/src/aldehyde/layout/menu/message-bar.less +73 -73
  442. package/src/aldehyde/layout/menu/reset-password.tsx +255 -255
  443. package/src/aldehyde/layout/menu/user-bar.tsx +259 -259
  444. package/src/aldehyde/layout/menu/userinfo-bar.tsx +69 -69
  445. package/src/aldehyde/layout/sidebar/index.css +57 -57
  446. package/src/aldehyde/layout/sidebar/index.tsx +84 -84
  447. package/src/aldehyde/layout2/components/icon-font.tsx +7 -7
  448. package/src/aldehyde/layout2/components/screenfull-button.tsx +21 -21
  449. package/src/aldehyde/layout2/components/search-menu.tsx +85 -85
  450. package/src/aldehyde/layout2/components/system-messages.tsx +75 -75
  451. package/src/aldehyde/layout2/components/theme-button.tsx +65 -65
  452. package/src/aldehyde/layout2/components/user-button.tsx +258 -258
  453. package/src/aldehyde/layout2/components/user-notification.tsx +74 -74
  454. package/src/aldehyde/layout2/css/header.css +41 -41
  455. package/src/aldehyde/layout2/css/sider.less +17 -17
  456. package/src/aldehyde/layout2/css/tabs-layout.less +18 -18
  457. package/src/aldehyde/layout2/header.tsx +278 -278
  458. package/src/aldehyde/layout2/layout-context.tsx +95 -95
  459. package/src/aldehyde/layout2/main.tsx +30 -30
  460. package/src/aldehyde/layout2/page.tsx +315 -315
  461. package/src/aldehyde/layout2/sider.tsx +230 -230
  462. package/src/aldehyde/layout2/tabs/tabs-context.tsx +37 -37
  463. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +146 -146
  464. package/src/aldehyde/layout2/type/layout-type.ts +15 -15
  465. package/src/aldehyde/layout2/util/menu-util.tsx +125 -125
  466. package/src/aldehyde/layout3/components/tabs-layout.tsx +110 -110
  467. package/src/aldehyde/layout3/components/time.tsx +25 -25
  468. package/src/aldehyde/layout3/css/header.less +195 -195
  469. package/src/aldehyde/layout3/css/main.less +161 -161
  470. package/src/aldehyde/layout3/css/sider.less +32 -32
  471. package/src/aldehyde/layout3/css/tabs-layout.less +38 -38
  472. package/src/aldehyde/layout3/header.tsx +187 -187
  473. package/src/aldehyde/layout3/main.tsx +29 -29
  474. package/src/aldehyde/layout3/page.tsx +110 -110
  475. package/src/aldehyde/layout3/sider.tsx +198 -198
  476. package/src/aldehyde/layout4/components/tabs-layout.tsx +110 -110
  477. package/src/aldehyde/layout4/css/header.less +196 -196
  478. package/src/aldehyde/layout4/css/main.less +154 -154
  479. package/src/aldehyde/layout4/css/sider.less +37 -37
  480. package/src/aldehyde/layout4/css/tabs-layout.less +42 -42
  481. package/src/aldehyde/layout4/header.tsx +190 -190
  482. package/src/aldehyde/layout4/main.tsx +29 -29
  483. package/src/aldehyde/layout4/page.tsx +125 -125
  484. package/src/aldehyde/layout4/sider.tsx +201 -201
  485. package/src/aldehyde/layout5/css/header.less +35 -35
  486. package/src/aldehyde/layout5/css/sider.less +18 -18
  487. package/src/aldehyde/layout5/header.tsx +204 -204
  488. package/src/aldehyde/layout5/page.tsx +107 -107
  489. package/src/aldehyde/layout5/sider.tsx +235 -235
  490. package/src/aldehyde/list/calendar/index.less +20 -20
  491. package/src/aldehyde/list/calendar/index.tsx +157 -157
  492. package/src/aldehyde/list/card-list/card-list-item.tsx +111 -111
  493. package/src/aldehyde/list/card-list/index.less +154 -154
  494. package/src/aldehyde/list/card-list/index.tsx +83 -83
  495. package/src/aldehyde/list/gantt/index.less +8 -8
  496. package/src/aldehyde/list/gantt/index.tsx +508 -508
  497. package/src/aldehyde/list/vertical-list/index.less +208 -208
  498. package/src/aldehyde/list/vertical-list/index.tsx +55 -55
  499. package/src/aldehyde/list/vertical-list/item.tsx +136 -136
  500. package/src/aldehyde/locale/LocaleButton.tsx +48 -48
  501. package/src/aldehyde/locale/LocaleProvider.tsx +265 -265
  502. package/src/aldehyde/locale/langMp.ts +45 -45
  503. package/src/aldehyde/locale/translate.ts +80 -80
  504. package/src/aldehyde/locale/useLocale.ts +72 -72
  505. package/src/aldehyde/login/context-setter.tsx +130 -130
  506. package/src/aldehyde/login/index.css +19 -19
  507. package/src/aldehyde/login/login.tsx +255 -255
  508. package/src/aldehyde/login/router-login.tsx +107 -107
  509. package/src/aldehyde/login/vertify/index.css +143 -143
  510. package/src/aldehyde/login/vertify/index.tsx +360 -360
  511. package/src/aldehyde/login/vertify/tool.ts +13 -13
  512. package/src/aldehyde/login2/login-page.tsx +92 -92
  513. package/src/aldehyde/login2/login.tsx +226 -226
  514. package/src/aldehyde/login3/index.less +136 -136
  515. package/src/aldehyde/login3/login-page.tsx +71 -71
  516. package/src/aldehyde/lowcode-components/act-table/index.less +26 -26
  517. package/src/aldehyde/lowcode-components/act-table/index.tsx +139 -139
  518. package/src/aldehyde/lowcode-components/assets/lowcode-constant.tsx +12 -12
  519. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +268 -268
  520. package/src/aldehyde/lowcode-components/base-button/index.less +7 -7
  521. package/src/aldehyde/lowcode-components/base-button/index.tsx +197 -197
  522. package/src/aldehyde/lowcode-components/base-image/index.tsx +220 -220
  523. package/src/aldehyde/lowcode-components/base-map/index.tsx +292 -292
  524. package/src/aldehyde/lowcode-components/base-radio/index.less +23 -23
  525. package/src/aldehyde/lowcode-components/base-radio/index.tsx +157 -157
  526. package/src/aldehyde/lowcode-components/base-table/index.tsx +268 -268
  527. package/src/aldehyde/lowcode-components/base-tabs/index.less +14 -14
  528. package/src/aldehyde/lowcode-components/base-tabs/index.tsx +183 -183
  529. package/src/aldehyde/lowcode-components/base-text/index.tsx +58 -58
  530. package/src/aldehyde/lowcode-components/border/border1/index.tsx +70 -70
  531. package/src/aldehyde/lowcode-components/border/border10/index.less +26 -26
  532. package/src/aldehyde/lowcode-components/border/border10/index.tsx +45 -45
  533. package/src/aldehyde/lowcode-components/border/border11/index.less +17 -17
  534. package/src/aldehyde/lowcode-components/border/border11/index.tsx +232 -232
  535. package/src/aldehyde/lowcode-components/border/border12/index.less +13 -13
  536. package/src/aldehyde/lowcode-components/border/border12/index.tsx +115 -115
  537. package/src/aldehyde/lowcode-components/border/border13/index.less +13 -13
  538. package/src/aldehyde/lowcode-components/border/border13/index.tsx +69 -69
  539. package/src/aldehyde/lowcode-components/border/border2/index.less +17 -17
  540. package/src/aldehyde/lowcode-components/border/border2/index.tsx +51 -51
  541. package/src/aldehyde/lowcode-components/border/border3/index.less +25 -25
  542. package/src/aldehyde/lowcode-components/border/border3/index.tsx +61 -61
  543. package/src/aldehyde/lowcode-components/border/border4/index.less +72 -72
  544. package/src/aldehyde/lowcode-components/border/border4/index.tsx +79 -79
  545. package/src/aldehyde/lowcode-components/border/border5/index.less +35 -35
  546. package/src/aldehyde/lowcode-components/border/border5/index.tsx +75 -75
  547. package/src/aldehyde/lowcode-components/border/border6/index.less +17 -17
  548. package/src/aldehyde/lowcode-components/border/border6/index.tsx +60 -60
  549. package/src/aldehyde/lowcode-components/border/border7/index.less +26 -26
  550. package/src/aldehyde/lowcode-components/border/border7/index.tsx +75 -75
  551. package/src/aldehyde/lowcode-components/border/border8/index.less +13 -13
  552. package/src/aldehyde/lowcode-components/border/border8/index.tsx +84 -84
  553. package/src/aldehyde/lowcode-components/border/border9/index.less +13 -13
  554. package/src/aldehyde/lowcode-components/border/border9/index.tsx +154 -154
  555. package/src/aldehyde/lowcode-components/capsule-bar-chart/index.tsx +290 -290
  556. package/src/aldehyde/lowcode-components/carousel/index.tsx +218 -218
  557. package/src/aldehyde/lowcode-components/circular-progress-chart/index.tsx +263 -263
  558. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +438 -438
  559. package/src/aldehyde/lowcode-components/column-chart/index.tsx +293 -293
  560. package/src/aldehyde/lowcode-components/data-number/index.tsx +219 -219
  561. package/src/aldehyde/lowcode-components/data.d.ts +18 -18
  562. package/src/aldehyde/lowcode-components/decoration/decoration1/index.less +7 -7
  563. package/src/aldehyde/lowcode-components/decoration/decoration1/index.tsx +153 -153
  564. package/src/aldehyde/lowcode-components/decoration/decoration10/index.less +5 -5
  565. package/src/aldehyde/lowcode-components/decoration/decoration10/index.tsx +89 -89
  566. package/src/aldehyde/lowcode-components/decoration/decoration11/index.less +5 -5
  567. package/src/aldehyde/lowcode-components/decoration/decoration11/index.tsx +133 -133
  568. package/src/aldehyde/lowcode-components/decoration/decoration2/index.less +6 -6
  569. package/src/aldehyde/lowcode-components/decoration/decoration2/index.tsx +61 -61
  570. package/src/aldehyde/lowcode-components/decoration/decoration3/index.less +7 -7
  571. package/src/aldehyde/lowcode-components/decoration/decoration3/index.tsx +87 -87
  572. package/src/aldehyde/lowcode-components/decoration/decoration4/index.less +29 -29
  573. package/src/aldehyde/lowcode-components/decoration/decoration4/index.tsx +53 -53
  574. package/src/aldehyde/lowcode-components/decoration/decoration5/index.less +3 -3
  575. package/src/aldehyde/lowcode-components/decoration/decoration5/index.tsx +116 -116
  576. package/src/aldehyde/lowcode-components/decoration/decoration6/index.less +7 -7
  577. package/src/aldehyde/lowcode-components/decoration/decoration6/index.tsx +121 -121
  578. package/src/aldehyde/lowcode-components/decoration/decoration7/index.less +4 -4
  579. package/src/aldehyde/lowcode-components/decoration/decoration7/index.tsx +70 -70
  580. package/src/aldehyde/lowcode-components/decoration/decoration8/index.less +14 -14
  581. package/src/aldehyde/lowcode-components/decoration/decoration8/index.tsx +122 -122
  582. package/src/aldehyde/lowcode-components/decoration/decoration9/index.less +4 -4
  583. package/src/aldehyde/lowcode-components/decoration/decoration9/index.tsx +196 -196
  584. package/src/aldehyde/lowcode-components/effectScatter-map/index.tsx +315 -315
  585. package/src/aldehyde/lowcode-components/effectScatter-map-3d/index.tsx +419 -419
  586. package/src/aldehyde/lowcode-components/gauge-chart/index.tsx +254 -254
  587. package/src/aldehyde/lowcode-components/index.ts +130 -130
  588. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +300 -300
  589. package/src/aldehyde/lowcode-components/line-chart/index.tsx +290 -290
  590. package/src/aldehyde/lowcode-components/liquid-chart/index.tsx +250 -250
  591. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +478 -478
  592. package/src/aldehyde/lowcode-components/lowcode-view/component/component-controller.ts +153 -153
  593. package/src/aldehyde/lowcode-components/lowcode-view/component/component-definition.ts +23 -23
  594. package/src/aldehyde/lowcode-components/lowcode-view/component/loading.tsx +20 -20
  595. package/src/aldehyde/lowcode-components/lowcode-view/component/util.ts +27 -27
  596. package/src/aldehyde/lowcode-components/lowcode-view/index.less +19 -19
  597. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +277 -277
  598. package/src/aldehyde/lowcode-components/lowcode-view/interface.ts +189 -189
  599. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +349 -349
  600. package/src/aldehyde/lowcode-components/progress-chart/index.tsx +295 -295
  601. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +322 -322
  602. package/src/aldehyde/lowcode-components/search-form/index.less +25 -25
  603. package/src/aldehyde/lowcode-components/search-form/index.tsx +121 -121
  604. package/src/aldehyde/lowcode-components/stroke-animation/index.tsx +219 -219
  605. package/src/aldehyde/module/block-menu-tree-drawer.tsx +118 -118
  606. package/src/aldehyde/module/criteria-page.tsx1 +175 -175
  607. package/src/aldehyde/module/draggable-modal.tsx +66 -66
  608. package/src/aldehyde/module/dtmpl-edit-card.tsx +437 -437
  609. package/src/aldehyde/module/dtmpl-edit-drawer.tsx +23 -23
  610. package/src/aldehyde/module/dtmpl-edit-modal.tsx +25 -25
  611. package/src/aldehyde/module/dtmpl-edit-page.tsx +558 -555
  612. package/src/aldehyde/module/dtmpl-editor.tsx +165 -165
  613. package/src/aldehyde/module/dtmpl-view-card.tsx +64 -64
  614. package/src/aldehyde/module/dtmpl-view-drawer.tsx +71 -71
  615. package/src/aldehyde/module/dtmpl-view-modal.tsx +56 -56
  616. package/src/aldehyde/module/embed-dtmpl-edit-page.tsx +137 -137
  617. package/src/aldehyde/module/index.less +4 -4
  618. package/src/aldehyde/module/ltmpl-drawer.tsx +60 -60
  619. package/src/aldehyde/module/ltmpl-modal.tsx +63 -63
  620. package/src/aldehyde/module/ltmpl-table.tsx +378 -378
  621. package/src/aldehyde/module/ttmpl-tree.tsx +47 -47
  622. package/src/aldehyde/routable/dtmpl-route.tsx +173 -173
  623. package/src/aldehyde/routable/import-route.tsx +35 -35
  624. package/src/aldehyde/routable/index.less +25 -25
  625. package/src/aldehyde/routable/ltmpl-route.tsx +539 -539
  626. package/src/aldehyde/routable/splitview-ltmpl-route.tsx +377 -377
  627. package/src/aldehyde/routable/ttmpl-route.tsx +93 -93
  628. package/src/aldehyde/routable/withroute.tsx +36 -36
  629. package/src/aldehyde/sso-Login/index.tsx +73 -73
  630. package/src/aldehyde/sso-Login/service/index.js +16 -16
  631. package/src/aldehyde/sso-Login/service/login.js +75 -75
  632. package/src/aldehyde/table/act-table.tsx +1831 -1831
  633. package/src/aldehyde/table/column/column-builder.tsx +864 -864
  634. package/src/aldehyde/table/column/column-selector.tsx +130 -130
  635. package/src/aldehyde/table/column/index.less +63 -63
  636. package/src/aldehyde/table/column/summary-builder.tsx +712 -712
  637. package/src/aldehyde/table/column/theme-color-getter.tsx +25 -25
  638. package/src/aldehyde/table/control-table-x-axis-wrapper.tsx +80 -80
  639. package/src/aldehyde/table/index.css +211 -211
  640. package/src/aldehyde/table/l2-act-table.tsx +91 -91
  641. package/src/aldehyde/table/modal-select-table.tsx +308 -308
  642. package/src/aldehyde/table/page-config-button.tsx +203 -203
  643. package/src/aldehyde/table/pagination.css +14 -14
  644. package/src/aldehyde/table/pagination.tsx +81 -81
  645. package/src/aldehyde/table/query-table.tsx +658 -658
  646. package/src/aldehyde/table/relation-table.tsx +1093 -1093
  647. package/src/aldehyde/table/report-table.tsx +125 -125
  648. package/src/aldehyde/table/resizable-table.tsx +97 -97
  649. package/src/aldehyde/table/select-table.tsx +559 -548
  650. package/src/aldehyde/table/selected-rows-card.tsx +78 -78
  651. package/src/aldehyde/table/stat/restat.tsx +122 -122
  652. package/src/aldehyde/table/table-util.tsx +25 -25
  653. package/src/aldehyde/tmpl/control-type-supportor.tsx +154 -154
  654. package/src/aldehyde/tmpl/hc-data-source.tsx +566 -566
  655. package/src/aldehyde/tmpl/hcservice-v3.tsx +1590 -1590
  656. package/src/aldehyde/tmpl/interface.tsx +919 -919
  657. package/src/aldehyde/tmpl/model-struc-v3.tsx +111 -111
  658. package/src/aldehyde/tmpl/superagent.js +146 -146
  659. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +585 -586
  660. package/src/aldehyde/tmpl/web-socket.ts +366 -366
  661. package/src/aldehyde/tree/act-tree.tsx +217 -217
  662. package/src/aldehyde/tree/block-menu-auth-tree.tsx +189 -189
  663. package/src/aldehyde/tree/index.css +22 -22
  664. package/src/aldehyde/tree/navigation-tree.tsx +39 -39
  665. package/src/aldehyde/tree/tmpl-tree.tsx +751 -751
  666. package/src/aldehyde/tree/tree-node.tsx +73 -73
  667. package/src/aldehyde/tree/tree-utils.tsx +317 -317
  668. package/src/aldehyde/units/EncryptUtils.js +37 -37
  669. package/src/aldehyde/units/image.d.ts +7 -7
  670. package/src/aldehyde/units/index.tsx +1367 -1367
  671. package/src/aldehyde/units/storage.js +2 -2
  672. package/src/aldehyde/utils/dsu.ts +27 -27
  673. package/src/aldehyde/welcome/HCWelcome.js +404 -404
  674. package/src/aldehyde/welcome/HCWelcome1.js +259 -259
  675. package/src/aldehyde/welcome/components/menu-card.less +96 -96
  676. package/src/aldehyde/welcome/components/menu-card.tsx +70 -70
  677. package/src/aldehyde/welcome/components/page-card.less +49 -49
  678. package/src/aldehyde/welcome/components/page-card.tsx +97 -97
  679. package/src/aldehyde/welcome/components/quick-entrance.less +120 -120
  680. package/src/aldehyde/welcome/components/quick-entrance.tsx +80 -80
  681. package/src/aldehyde/welcome/components/user-menus.less +192 -192
  682. package/src/aldehyde/welcome/components/user-menus.tsx +279 -279
  683. package/src/aldehyde/welcome/components/workbench.less +118 -118
  684. package/src/aldehyde/welcome/components/workbench.tsx +146 -146
  685. package/src/aldehyde/welcome/index.css +13 -13
@@ -1,791 +1,791 @@
1
- import * as React from "react";
2
- import { Button, Col, Divider, message, Row, Select, Space, Spin, Tag } from "antd";
3
- import {
4
- EControlProps,
5
- LtmplConfig,
6
- PageInfo,
7
- QueryData,
8
- QueryKey,
9
- } from "../../tmpl/interface";
10
- import {
11
- AlignLeftOutlined, ArrowDownOutlined, CloseOutlined,
12
- EditOutlined,
13
- PlusOutlined,
14
- RedoOutlined,
15
- SearchOutlined,
16
- TableOutlined,
17
- } from "@ant-design/icons";
18
- import debounce from "lodash/debounce";
19
- import "./index.css";
20
- import HcserviceV3 from "../../tmpl/hcservice-v3";
21
- import HCDataSource from "../../tmpl/hc-data-source";
22
- import DtmplViewDrawer from "../../module/dtmpl-view-drawer";
23
- import DtmplEditPage from "../../module/dtmpl-edit-page";
24
- import DtmplCustomEditModalPage from "../../custom-page/dtmpl-custom-edit-modal-page";
25
- import { LtmplModal } from "../../index";
26
- import { LocaleContext } from "../../locale/LocaleProvider";
27
- import Rfield from "../rfield";
28
-
29
- interface InnerEntitySelectProps extends EControlProps {
30
- maxSelected?: number;
31
- onEntityClick?: (code: string) => void;
32
- baseCriteria: object;// 已启动弃用计划。全部通过 fieldConfig来控制
33
- valueOnly?: boolean;
34
- }
35
-
36
- interface InnerEntitySelectState {
37
- titleId?: string;
38
- optionCacheKey?: string;
39
- pageNo?: number;
40
- loading?: boolean;
41
- initLoading?: boolean;
42
- optionsCache?: object;
43
- codeLabel?: object;
44
- ltmplConfig?: LtmplConfig;
45
- showView?: boolean;
46
- drawCode?: string;
47
- showEdit?: boolean;
48
- showTable?: boolean;
49
- preMainCode?: string;
50
- selectOpen?: boolean;
51
- useSelectOpenStat?: boolean;
52
- isDoingSomething?: boolean;
53
- }
54
-
55
- type OptionCache = {
56
- queryKey?: QueryKey;
57
- pageInfo?: PageInfo;
58
- touchEnd?: boolean;
59
- options?: any;
60
- searchValue?: string;
61
- optionCacheKey?: string;
62
- };
63
-
64
- type LoadDataSource = {
65
- options?: any[];
66
- touchEnd?: boolean;
67
- };
68
-
69
- export default class EntitySelect extends React.PureComponent<
70
- InnerEntitySelectProps,
71
- InnerEntitySelectState
72
- > {
73
- static defaultProps = {
74
- maxSelected: 100,
75
- valueOnly: false,
76
- };
77
-
78
- state = {
79
- titleId: undefined,
80
- optionCacheKey: undefined,
81
- pageNo: 1,
82
- loading: false,
83
- initLoading: false,
84
- optionsCache: {},
85
- codeLabel: {},
86
- ltmplConfig: undefined,
87
- showView: false,
88
- showEdit: false,
89
- showTable: false,
90
- drawCode: undefined,
91
- preMainCode: undefined,
92
- selectOpen: false,
93
- isDoingSomething: false,
94
- useSelectOpenStat: true,
95
- };
96
- static contextType = LocaleContext;
97
- context: React.ContextType<typeof LocaleContext>;
98
-
99
- selectRef = React.createRef<{ focus: () => any, blur: () => any, scrollTo, nativeElement }>();
100
-
101
- dropdownRender = (menu) => {
102
- const { fieldConfig } = this.props;
103
- const { actions } = fieldConfig;
104
- const { useSelectOpenStat } = this.state;
105
-
106
- return (
107
- <>
108
- {menu}
109
- {
110
- <>
111
- <Divider style={{ margin: "8px 0" }} />
112
- <Row justify={"end"}>
113
- <Col>
114
- <Space align={"end"}>
115
- {actions && actions.indexOf("table") >= 0 ? (
116
- <Button
117
- icon={<TableOutlined style={{ color: "#0958d9" }} />}
118
- onClick={() => this.showTable()}
119
- ></Button>
120
- ) : null}
121
- {actions && actions.indexOf("add") >= 0 ? (
122
- <Button
123
- icon={<PlusOutlined style={{ color: "#0958d9" }} />}
124
- onClick={() => this.editItem()}
125
- ></Button>
126
-
127
- ) : null}
128
- <Button
129
- icon={<ArrowDownOutlined style={{ color: "#0958d9" }} />}
130
- onClick={() => this.fetchNextPage()}
131
- ></Button>
132
- <Button
133
- icon={<RedoOutlined style={{ color: "#0958d9" }} />}
134
- onClick={() => {
135
- this.initCache();
136
- setTimeout(() => this.fetchOptions(undefined), 100)
137
- }}
138
- ></Button>
139
- {useSelectOpenStat ? <Button
140
- //type="primary"
141
- icon={<CloseOutlined />}
142
- onClick={() => { this.setState({ selectOpen: false }) }}
143
- ></Button> : null}
144
- </Space>
145
- </Col>
146
- </Row>
147
- </>
148
- }
149
- </>
150
- );
151
- };
152
-
153
- editItem = async (code?) => {
154
- let ltmplConfig = await this.loadLtmplConfig();
155
- this.setState({
156
- showEdit: true,
157
- showTable: false,
158
- showView: false,
159
- drawCode: code,
160
- ltmplConfig,
161
- });
162
- };
163
-
164
- showTable = async () => {
165
- this.setState({
166
- showEdit: false,
167
- showTable: true,
168
- showView: false,
169
- drawCode: undefined,
170
- });
171
- };
172
-
173
- loadLtmplConfig = async () => {
174
- const { fieldConfig, serverKey } = this.props;
175
- const { ltmplConfig } = this.state;
176
- let ltmplConfig_ = ltmplConfig;
177
- if (!ltmplConfig_) {
178
- ltmplConfig_ = (
179
- await HCDataSource.requestLtmplConfig(
180
- fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
181
- fieldConfig.sourceId
182
- )
183
- )?.ltmplConfig;
184
- }
185
- this.setState({
186
- ltmplConfig: ltmplConfig_,
187
- });
188
- return ltmplConfig_;
189
- };
190
-
191
- showItem = async (code) => {
192
- let ltmplConfig = await this.loadLtmplConfig();
193
- this.setState({
194
- showEdit: false,
195
- showTable: false,
196
- showView: true,
197
- drawCode: code,
198
- ltmplConfig,
199
- });
200
- };
201
-
202
- componentDidMount() {
203
- const { maxSelected, fieldConfig } = this.props;
204
- const { actions } = fieldConfig;
205
- if (maxSelected > 1 || actions?.indexOf("table") >= 0 || actions?.indexOf("add") >= 0) {
206
- this.setState({
207
- useSelectOpenStat: false,
208
- })
209
- }
210
- }
211
-
212
- componentDidUpdate(prevProps) {
213
- const { baseCriteria: p_baseCriteria, mainCode, fieldConfig } = this.props;
214
- let {
215
- baseCriteria: p_preBaseCriteria,
216
- mainCode: preMainCode,
217
- fieldConfig: preFieldConfig,
218
- } = prevProps;
219
-
220
- let baseCriteria = p_baseCriteria ? p_baseCriteria : fieldConfig.baseCriteria;
221
- let preBaseCriteria = p_preBaseCriteria ? p_preBaseCriteria : preFieldConfig.baseCriteria;
222
- if (
223
- (baseCriteria &&
224
- JSON.stringify(baseCriteria) != JSON.stringify(preBaseCriteria)) ||
225
- (mainCode && mainCode != preMainCode) ||
226
- (fieldConfig && preFieldConfig && fieldConfig.id != preFieldConfig.id)
227
- || (fieldConfig && fieldConfig.configChanged)
228
- ) {
229
- fieldConfig.configChanged = false;
230
- this.initCache();
231
- }
232
- }
233
-
234
- initCache = () => {
235
- this.setState({
236
- optionsCache: {},
237
- codeLabel: {},
238
- });
239
- };
240
-
241
- toOption = (code: string, title: string, onEntityClick) => {
242
- const { fieldConfig, valueOnly } = this.props;
243
- const { actions } = fieldConfig;
244
- const { codeLabel } = this.state;
245
- codeLabel[valueOnly ? title : code] = title;
246
- let option = {
247
- value: valueOnly ? title : code,
248
- label: (
249
- <>
250
- {title}
251
- {actions && actions.indexOf("detail") >= 0 ? (
252
- <Button
253
- size={"small"}
254
- type={"text"}
255
- onClick={(event) => {
256
- event.stopPropagation();
257
- this.showItem(code);
258
- }}
259
- >
260
- <AlignLeftOutlined style={{ color: "#0958d9" }} />
261
- </Button>
262
- ) : null}
263
-
264
- {actions && actions.indexOf("edit") >= 0 ? (
265
- <Button
266
- size={"small"}
267
- type={"text"}
268
- onClick={(event) => {
269
- event.stopPropagation();
270
- this.editItem(code);
271
- }}
272
- >
273
- <EditOutlined style={{ color: "#0958d9" }} />
274
- </Button>
275
- ) : null}
276
- </>
277
- ),
278
- };
279
- return option;
280
- };
281
-
282
- doClose = () => {
283
- this.setState({
284
- drawCode: undefined,
285
- showEdit: false,
286
- showView: false,
287
- showTable: false,
288
- });
289
- };
290
-
291
- drawSubmited = (code?: string, isContinueSave?: boolean) => {
292
- if (isContinueSave) {
293
- this.setState({ drawCode: code });
294
- } else {
295
- this.doClose();
296
- }
297
- this.initCache();
298
- this.selectRef.current.focus();
299
- debounce(this.fetchOptions, 100)(undefined);
300
- };
301
-
302
- closeTable = () => {
303
- this.drawSubmited();
304
- };
305
-
306
- toValueArray = (value) => {
307
- let result = [];
308
- let valueArray = this.toArray(value);
309
- for (let v of valueArray) {
310
- if (v) {
311
- if (this.props.valueOnly) {
312
- result.push(v);
313
- } else {
314
- let vs = v.split("@R@");
315
- if (vs[1] != "null") {
316
- result.push(vs[0]);
317
- }
318
- }
319
- }
320
- }
321
- return result;
322
- };
323
-
324
- toArray = (value) => {
325
- let valueArray: string[] = [];
326
- if (value instanceof Array) {
327
- valueArray = value;
328
- } else {
329
- if (value) {
330
- valueArray = value.split("@,@");
331
- } else {
332
- valueArray = [];
333
- }
334
- }
335
-
336
- return valueArray;
337
- };
338
-
339
- toOptions = (value, onEntityClick) => {
340
- const { fieldConfig, valueOnly } = this.props;
341
- let options: object[] = [];
342
- let valueArray: string[] = this.toArray(value);
343
- let values = [];
344
- for (let v of valueArray) {
345
- if (v) {
346
- if (valueOnly) {
347
- if (values.includes(v)) {
348
- } else {
349
- options.push(this.toOption(v, v, onEntityClick));
350
- values.push(v);
351
- }
352
- } else {
353
- let vs = v.split("@R@");
354
- if (vs[1] != "null") {
355
- options.push(this.toOption(vs[0], vs[1], onEntityClick));
356
- }
357
- }
358
- }
359
- }
360
-
361
- //添加补充项
362
- if (fieldConfig.suppleOptions) {
363
- fieldConfig.suppleOptions.forEach((o) => {
364
- let had = false;
365
- options.forEach((s) => {
366
- if (s["value"] == o.code) {
367
- had = true;
368
- return;
369
- }
370
- });
371
- if (!had) {
372
- options.push(this.toOption(o.code, o.title, undefined));
373
- }
374
- });
375
- }
376
- return options;
377
- };
378
-
379
- fetchNextPage = async () => {
380
-
381
- const { optionCacheKey, titleId, optionsCache } = this.state;
382
- let optionCache = optionsCache[optionCacheKey];
383
- let pageInfo = optionCache?.pageInfo;
384
- if (optionCache && !optionCache.touchEnd) {
385
- pageInfo.pageNo = pageInfo.pageNo + 1;
386
- let dataSource = await this.loadData(
387
- optionCache.queryKey.key,
388
- { ...pageInfo },
389
- titleId
390
- );
391
- if (dataSource) {
392
- optionCache.options = [...optionCache.options, ...dataSource.options];
393
- optionCache.touchEnd = dataSource.touchEnd;
394
- }
395
- optionsCache[optionCacheKey] = optionCache;
396
- this.setState({ pageNo: pageInfo.pageNo, optionsCache: { ...optionsCache } });
397
- }
398
- };
399
-
400
- fetchOptions = async (searchText: string, isInit?: boolean) => {
401
- const { fieldConfig, mainCode, baseCriteria: p_baseCriteria, serverKey } = this.props;
402
- const { optionsCache, ltmplConfig, preMainCode } = this.state;
403
- let baseCriteria = p_baseCriteria ? p_baseCriteria : fieldConfig.baseCriteria;
404
- const currentMainCode = mainCode ? mainCode : fieldConfig.mainCode;
405
- if (preMainCode != currentMainCode) {
406
- this.setState({ preMainCode: currentMainCode.toString() });
407
- //清空,
408
- this.initCache();
409
- }
410
-
411
- let optionCacheKey = "withoutValue";
412
- //先从缓存里拿
413
- if (searchText) {
414
- optionCacheKey = searchText;
415
- }
416
- let titleId = this.state.titleId;
417
- let optionCache = optionsCache[optionCacheKey];
418
- if (!optionCache) {
419
- this.setState({
420
- loading: true,
421
- initLoading: isInit,
422
- });
423
- let ltmplConfig_ = ltmplConfig;
424
- if (!ltmplConfig_) {
425
- ltmplConfig_ = await this.loadLtmplConfig();
426
- }
427
- if (!ltmplConfig_) {
428
- message.error("请配置正确查询页面", 5);
429
- return;
430
- }
431
- let pageInfo = {
432
- pageNo: 1,
433
- pageSize: 6,
434
- virtualEndPageNo: undefined,
435
- };
436
- titleId = ltmplConfig_.extDisplayConfig?.primaryColumn?.id;
437
- //得到第一个过滤条件
438
- let firstCriteria = ltmplConfig_.primaryCriteria;
439
- let formItemName = "undefinedCriteria";
440
- if (firstCriteria) {
441
- formItemName = "c_" + firstCriteria.id;
442
- }
443
- const { defaultPageSize } = ltmplConfig_;
444
- if (defaultPageSize) {
445
- pageInfo.pageSize = defaultPageSize;
446
- }
447
-
448
- /** 构建 dataSource **/
449
- //构建过滤条件
450
- let criteriaData = {};
451
- if (baseCriteria) {
452
- criteriaData = { ...baseCriteria };
453
- }
454
-
455
- criteriaData[formItemName] = searchText;
456
-
457
- let queryKey: QueryKey = await HcserviceV3.requestLtmplQueryKey(
458
- fieldConfig.serverKey || serverKey,
459
- fieldConfig.sourceId,
460
- {
461
- ...criteriaData,
462
- ...pageInfo,
463
- mainCode: currentMainCode == "none" ? undefined : currentMainCode,
464
- exceptCodes: fieldConfig.relDeduplication ? fieldConfig.exceptCodes : undefined
465
- }
466
- );
467
-
468
- let sourceData = await this.loadData(queryKey.key, pageInfo, titleId);
469
- if (!sourceData) {
470
- sourceData = {}
471
- }
472
- let expSourceData: LoadDataSource = sourceData ? { ...sourceData } : {};
473
-
474
- while (!expSourceData.touchEnd && sourceData?.options?.length < 10) {
475
- pageInfo = { ...pageInfo, pageNo: pageInfo.pageNo + 1 }
476
- expSourceData = await this.loadData(queryKey.key, pageInfo, titleId);
477
- sourceData.touchEnd = expSourceData?.touchEnd;
478
- sourceData.options = [...sourceData.options, ...expSourceData?.options];
479
- }
480
-
481
- optionCache = {
482
- options: sourceData.options,
483
- pageInfo,
484
- queryKey,
485
- searchValue: searchText,
486
- touchEnd: sourceData.touchEnd,
487
- };
488
- optionsCache[optionCacheKey] = optionCache;
489
- this.setState({
490
- optionCacheKey,
491
- titleId,
492
- optionsCache: { ...optionsCache },
493
- loading: false,
494
- initLoading: false
495
- });
496
- return sourceData.options;
497
- } else {
498
- if (
499
- this.state.optionCacheKey == optionCacheKey &&
500
- optionCacheKey == "withoutValue"
501
- ) {
502
- this.setState({
503
- loading: false,
504
- initLoading: false,
505
- optionCacheKey,
506
- });
507
- } else {
508
- debounce(() => {
509
- this.setState({
510
- loading: false,
511
- initLoading: false,
512
- optionCacheKey,
513
- });
514
- }, 500)();
515
- }
516
- }
517
- };
518
-
519
- onChange = (values: any[]) => {
520
- const { codeLabel } = this.state;
521
- const { maxSelected, valueOnly } = this.props;
522
- let newValues: Array<string> = [...values];
523
- //选够时自动关闭
524
- if (values && values.length >= maxSelected) {
525
- this.setState({ selectOpen: false })
526
- this.selectRef?.current?.blur();
527
- }
528
- if (values && values.length > maxSelected) {
529
- newValues.shift();
530
- }
531
- let formValues: Array<string> = [];
532
-
533
- newValues.forEach((c) => {
534
- if (valueOnly) {
535
- if (c.indexOf("@R@") > 0) {
536
- formValues.push(c.split("@R@")[1]);
537
- } else {
538
- formValues.push(codeLabel[c]);
539
- }
540
- } else {
541
- if (c.indexOf("@R@") > 0) {
542
- formValues.push(c);
543
- } else {
544
- formValues.push(c + "@R@" + codeLabel[c]);
545
- }
546
- }
547
-
548
- });
549
- this.props.onChange(formValues.join("@,@"));
550
- };
551
-
552
- tagRender = (props) => {
553
- const { label, closable, onClose } = props;
554
- const onPreventMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {
555
- event.preventDefault();
556
- event.stopPropagation();
557
- };
558
- return (
559
- <Tag
560
- onMouseDown={onPreventMouseDown}
561
- closable={closable}
562
- onClose={onClose}
563
- style={{ marginRight: 3 }}
564
- >
565
- {label}
566
- </Tag>
567
- );
568
- };
569
-
570
- loadData = async (
571
- queryKey: string,
572
- pageInfo: PageInfo,
573
- titleId: string
574
- ): Promise<LoadDataSource> => {
575
- const { onEntityClick, baseCriteria: p_baseCriteria, serverKey, fieldConfig } = this.props;
576
- let baseCriteria = p_baseCriteria ? p_baseCriteria : fieldConfig.baseCriteria;
577
- let queryData: QueryData = await HcserviceV3.requestQueryData(
578
- fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
579
- queryKey,
580
- pageInfo
581
- );
582
- let titles = [];
583
- let options: object[] = [];
584
- if (!queryData) {
585
- return;
586
- }
587
- pageInfo = queryData?.pageInfo;
588
- if (queryData?.entities) {
589
- queryData.entities.forEach((item, index) => {
590
- let title = item.fieldMap[titleId];
591
- //放入全局对象缓存
592
- //这个缓存后续还需要完善,因为太多了,容易爆掉
593
- HCDataSource.cache(item);
594
- if (title) {
595
- let ts = title.split("@R@");
596
- let t = ts && ts.length > 0 ? ts[ts.length - 1] : title;
597
- if (t != "null") {
598
- let idCode = undefined;
599
- if (fieldConfig.optionCodeColId) {
600
- idCode = item.fieldMap[fieldConfig.optionCodeColId];
601
- if (idCode) {
602
- let idCodes = idCode.split("@R@");
603
- idCode = idCodes && idCodes.length > 0 ? idCodes[0] : idCode;
604
- }
605
- } else {
606
- idCode = item.code;
607
- }
608
- if (this.props.valueOnly && titles.includes(t)) {
609
- return;
610
- }
611
- titles.push(title);
612
- let option = this.toOption(idCode, t, onEntityClick);
613
- options.push(option);
614
- }
615
- }
616
- });
617
- }
618
-
619
- return { options, touchEnd: queryData?.touchEnd };
620
- };
621
-
622
- debounceFetcher = debounce(this.fetchOptions, 500);
623
-
624
- debounceFetchNextPage = () => {
625
- debounce(this.fetchNextPage, 200)();
626
- };
627
-
628
- render() {
629
- const {
630
- id,
631
- value,
632
- fieldConfig,
633
- disabled,
634
- style,
635
- onEntityClick,
636
- mainCode,
637
- serverKey: pServerKey, valueOnly
638
- } = this.props;
639
- const { actions } = fieldConfig;
640
- const {
641
- optionCacheKey,
642
- loading,
643
- initLoading,
644
- optionsCache,
645
- drawCode,
646
- showEdit,
647
- showView,
648
- showTable,
649
- ltmplConfig, selectOpen, useSelectOpenStat,
650
- } = this.state;
651
- const { translate } = this.context;
652
-
653
- let serverKey = fieldConfig.serverKey ? fieldConfig.serverKey : pServerKey;
654
- let initOptions = this.toOptions(value, onEntityClick);
655
- let exists;
656
- let disvalues = []
657
- let properOptions = [...initOptions];
658
- let listHeight = 256;
659
- if (optionCacheKey && optionsCache[optionCacheKey]) {
660
- let optionCache = optionsCache[optionCacheKey];
661
- if (optionCache["pageInfo"] && optionCache.pageInfo.pageSize < 8) {
662
- listHeight = 32 * optionCache["pageInfo"].pageSize - 10;
663
- }
664
- for (let option of optionCache.options) {
665
- exists = false;
666
- for (let init of initOptions) {
667
- if (init["value"] == option["value"]) {
668
- exists = true;
669
- //用查询的覆盖之前的
670
- init["label"] = option["label"];
671
- }
672
- }
673
- if (!exists) {
674
- if (valueOnly && disvalues.includes(option["value"])) {
675
- } else {
676
- disvalues.push(option["value"]);
677
- properOptions.push(option);
678
- }
679
- }
680
- }
681
- }
682
- if (disabled && value) {
683
- return <Rfield {...this.props} />
684
- }
685
-
686
- // 选择框获取焦点
687
- const handleOnFocus = async () => {
688
- if (fieldConfig.configChanged) {
689
- this.initCache()
690
- }
691
- this.setState({ selectOpen: true });
692
- const temOptions = await this.fetchOptions(undefined, true);
693
- if (fieldConfig.defaultSelectFirst && !value) { // 获取焦点,默认选中第一个
694
- const temArr = temOptions?.length ? temOptions : properOptions || [];
695
- if (temArr?.length) {
696
- this.onChange([temArr[0].value]);
697
- }
698
- }
699
- }
700
-
701
- return (
702
- <>
703
- <Select
704
- disabled={disabled}
705
- defaultActiveFirstOption={false}
706
- id={id}
707
- listHeight={listHeight}
708
- style={{ ...style }}
709
- onChange={this.onChange}
710
- value={this.toValueArray(value)}
711
- mode={"multiple"}
712
- placeholder={translate("${请选择}${" + (fieldConfig.placeholder || fieldConfig.title) + "}")}
713
- notFoundContent={
714
- loading ? <Spin size={"small"}></Spin> : translate("${无数据或手动刷新}")
715
- }
716
- allowClear={true}
717
- suffixIcon={<SearchOutlined />}
718
- filterOption={false}
719
- onFocus={handleOnFocus}
720
-
721
- open={useSelectOpenStat ? selectOpen : undefined}
722
- popupRender={this.dropdownRender}
723
- tagRender={
724
- actions?.some(r => ["detail", "edit"].includes(r))
725
- ? this.tagRender
726
- : undefined
727
- }
728
- onSearch={this.debounceFetcher}
729
- showSearch={!initLoading}
730
- ref={this.selectRef}
731
- options={loading ? [] : properOptions}
732
- onPopupScroll={(e) => {
733
- const { target } = e;
734
- if (
735
- target["scrollTop"] + target["offsetHeight"] + 1 >=
736
- target["scrollHeight"]
737
- ) {
738
- this.debounceFetchNextPage();
739
- }
740
- }}
741
- ></Select>
742
- {showView && drawCode ? (
743
- <DtmplViewDrawer
744
- serverKey={serverKey}
745
- placement={"left"}
746
- onClose={this.doClose}
747
- open={showView}
748
- sourceId={fieldConfig.sourceId}
749
- code={drawCode}
750
- ></DtmplViewDrawer>
751
- ) : null}
752
- {showEdit && ltmplConfig ? (
753
- ltmplConfig.customEditPagePath ? (
754
- <DtmplCustomEditModalPage
755
- open={showEdit}
756
- onOk={() => {
757
- this.drawSubmited();
758
- }}
759
- customPath={ltmplConfig.customEditPagePath}
760
- sourceId={fieldConfig.sourceId}
761
- mainCode={mainCode}
762
- code={drawCode}
763
- />
764
- ) : (
765
- <DtmplEditPage
766
- defaultDtmplData={fieldConfig.defaultDtmplData}
767
- serverKey={serverKey}
768
- pageType={"modal"}
769
- open={showEdit}
770
- onCancel={this.doClose}
771
- mainCode={mainCode}
772
- sourceId={fieldConfig.sourceId}
773
- code={drawCode}
774
- onOk={this.drawSubmited}
775
- />
776
- )
777
- ) : null}
778
- {showTable ? (
779
- <LtmplModal
780
- serverKey={serverKey}
781
- open={showTable}
782
- height={"76vh"}
783
- onCancel={this.closeTable}
784
- sourceId={fieldConfig.sourceId}
785
- mainCode={mainCode}
786
- />
787
- ) : null}
788
- </>
789
- );
790
- }
791
- }
1
+ import * as React from "react";
2
+ import { Button, Col, Divider, message, Row, Select, Space, Spin, Tag } from "antd";
3
+ import {
4
+ EControlProps,
5
+ LtmplConfig,
6
+ PageInfo,
7
+ QueryData,
8
+ QueryKey,
9
+ } from "../../tmpl/interface";
10
+ import {
11
+ AlignLeftOutlined, ArrowDownOutlined, CloseOutlined,
12
+ EditOutlined,
13
+ PlusOutlined,
14
+ RedoOutlined,
15
+ SearchOutlined,
16
+ TableOutlined,
17
+ } from "@ant-design/icons";
18
+ import debounce from "lodash/debounce";
19
+ import "./index.css";
20
+ import HcserviceV3 from "../../tmpl/hcservice-v3";
21
+ import HCDataSource from "../../tmpl/hc-data-source";
22
+ import DtmplViewDrawer from "../../module/dtmpl-view-drawer";
23
+ import DtmplEditPage from "../../module/dtmpl-edit-page";
24
+ import DtmplCustomEditModalPage from "../../custom-page/dtmpl-custom-edit-modal-page";
25
+ import { LtmplModal } from "../../index";
26
+ import { LocaleContext } from "../../locale/LocaleProvider";
27
+ import Rfield from "../rfield";
28
+
29
+ interface InnerEntitySelectProps extends EControlProps {
30
+ maxSelected?: number;
31
+ onEntityClick?: (code: string) => void;
32
+ baseCriteria: object;// 已启动弃用计划。全部通过 fieldConfig来控制
33
+ valueOnly?: boolean;
34
+ }
35
+
36
+ interface InnerEntitySelectState {
37
+ titleId?: string;
38
+ optionCacheKey?: string;
39
+ pageNo?: number;
40
+ loading?: boolean;
41
+ initLoading?: boolean;
42
+ optionsCache?: object;
43
+ codeLabel?: object;
44
+ ltmplConfig?: LtmplConfig;
45
+ showView?: boolean;
46
+ drawCode?: string;
47
+ showEdit?: boolean;
48
+ showTable?: boolean;
49
+ preMainCode?: string;
50
+ selectOpen?: boolean;
51
+ useSelectOpenStat?: boolean;
52
+ isDoingSomething?: boolean;
53
+ }
54
+
55
+ type OptionCache = {
56
+ queryKey?: QueryKey;
57
+ pageInfo?: PageInfo;
58
+ touchEnd?: boolean;
59
+ options?: any;
60
+ searchValue?: string;
61
+ optionCacheKey?: string;
62
+ };
63
+
64
+ type LoadDataSource = {
65
+ options?: any[];
66
+ touchEnd?: boolean;
67
+ };
68
+
69
+ export default class EntitySelect extends React.PureComponent<
70
+ InnerEntitySelectProps,
71
+ InnerEntitySelectState
72
+ > {
73
+ static defaultProps = {
74
+ maxSelected: 100,
75
+ valueOnly: false,
76
+ };
77
+
78
+ state = {
79
+ titleId: undefined,
80
+ optionCacheKey: undefined,
81
+ pageNo: 1,
82
+ loading: false,
83
+ initLoading: false,
84
+ optionsCache: {},
85
+ codeLabel: {},
86
+ ltmplConfig: undefined,
87
+ showView: false,
88
+ showEdit: false,
89
+ showTable: false,
90
+ drawCode: undefined,
91
+ preMainCode: undefined,
92
+ selectOpen: false,
93
+ isDoingSomething: false,
94
+ useSelectOpenStat: true,
95
+ };
96
+ static contextType = LocaleContext;
97
+ context: React.ContextType<typeof LocaleContext>;
98
+
99
+ selectRef = React.createRef<{ focus: () => any, blur: () => any, scrollTo, nativeElement }>();
100
+
101
+ dropdownRender = (menu) => {
102
+ const { fieldConfig } = this.props;
103
+ const { actions } = fieldConfig;
104
+ const { useSelectOpenStat } = this.state;
105
+
106
+ return (
107
+ <>
108
+ {menu}
109
+ {
110
+ <>
111
+ <Divider style={{ margin: "8px 0" }} />
112
+ <Row justify={"end"}>
113
+ <Col>
114
+ <Space align={"end"}>
115
+ {actions && actions.indexOf("table") >= 0 ? (
116
+ <Button
117
+ icon={<TableOutlined style={{ color: "#0958d9" }} />}
118
+ onClick={() => this.showTable()}
119
+ ></Button>
120
+ ) : null}
121
+ {actions && actions.indexOf("add") >= 0 ? (
122
+ <Button
123
+ icon={<PlusOutlined style={{ color: "#0958d9" }} />}
124
+ onClick={() => this.editItem()}
125
+ ></Button>
126
+
127
+ ) : null}
128
+ <Button
129
+ icon={<ArrowDownOutlined style={{ color: "#0958d9" }} />}
130
+ onClick={() => this.fetchNextPage()}
131
+ ></Button>
132
+ <Button
133
+ icon={<RedoOutlined style={{ color: "#0958d9" }} />}
134
+ onClick={() => {
135
+ this.initCache();
136
+ setTimeout(() => this.fetchOptions(undefined), 100)
137
+ }}
138
+ ></Button>
139
+ {useSelectOpenStat ? <Button
140
+ //type="primary"
141
+ icon={<CloseOutlined />}
142
+ onClick={() => { this.setState({ selectOpen: false }) }}
143
+ ></Button> : null}
144
+ </Space>
145
+ </Col>
146
+ </Row>
147
+ </>
148
+ }
149
+ </>
150
+ );
151
+ };
152
+
153
+ editItem = async (code?) => {
154
+ let ltmplConfig = await this.loadLtmplConfig();
155
+ this.setState({
156
+ showEdit: true,
157
+ showTable: false,
158
+ showView: false,
159
+ drawCode: code,
160
+ ltmplConfig,
161
+ });
162
+ };
163
+
164
+ showTable = async () => {
165
+ this.setState({
166
+ showEdit: false,
167
+ showTable: true,
168
+ showView: false,
169
+ drawCode: undefined,
170
+ });
171
+ };
172
+
173
+ loadLtmplConfig = async () => {
174
+ const { fieldConfig, serverKey } = this.props;
175
+ const { ltmplConfig } = this.state;
176
+ let ltmplConfig_ = ltmplConfig;
177
+ if (!ltmplConfig_) {
178
+ ltmplConfig_ = (
179
+ await HCDataSource.requestLtmplConfig(
180
+ fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
181
+ fieldConfig.sourceId
182
+ )
183
+ )?.ltmplConfig;
184
+ }
185
+ this.setState({
186
+ ltmplConfig: ltmplConfig_,
187
+ });
188
+ return ltmplConfig_;
189
+ };
190
+
191
+ showItem = async (code) => {
192
+ let ltmplConfig = await this.loadLtmplConfig();
193
+ this.setState({
194
+ showEdit: false,
195
+ showTable: false,
196
+ showView: true,
197
+ drawCode: code,
198
+ ltmplConfig,
199
+ });
200
+ };
201
+
202
+ componentDidMount() {
203
+ const { maxSelected, fieldConfig } = this.props;
204
+ const { actions } = fieldConfig;
205
+ if (maxSelected > 1 || actions?.indexOf("table") >= 0 || actions?.indexOf("add") >= 0) {
206
+ this.setState({
207
+ useSelectOpenStat: false,
208
+ })
209
+ }
210
+ }
211
+
212
+ componentDidUpdate(prevProps) {
213
+ const { baseCriteria: p_baseCriteria, mainCode, fieldConfig } = this.props;
214
+ let {
215
+ baseCriteria: p_preBaseCriteria,
216
+ mainCode: preMainCode,
217
+ fieldConfig: preFieldConfig,
218
+ } = prevProps;
219
+
220
+ let baseCriteria = p_baseCriteria ? p_baseCriteria : fieldConfig.baseCriteria;
221
+ let preBaseCriteria = p_preBaseCriteria ? p_preBaseCriteria : preFieldConfig.baseCriteria;
222
+ if (
223
+ (baseCriteria &&
224
+ JSON.stringify(baseCriteria) != JSON.stringify(preBaseCriteria)) ||
225
+ (mainCode && mainCode != preMainCode) ||
226
+ (fieldConfig && preFieldConfig && fieldConfig.id != preFieldConfig.id)
227
+ || (fieldConfig && fieldConfig.configChanged)
228
+ ) {
229
+ fieldConfig.configChanged = false;
230
+ this.initCache();
231
+ }
232
+ }
233
+
234
+ initCache = () => {
235
+ this.setState({
236
+ optionsCache: {},
237
+ codeLabel: {},
238
+ });
239
+ };
240
+
241
+ toOption = (code: string, title: string, onEntityClick) => {
242
+ const { fieldConfig, valueOnly } = this.props;
243
+ const { actions } = fieldConfig;
244
+ const { codeLabel } = this.state;
245
+ codeLabel[valueOnly ? title : code] = title;
246
+ let option = {
247
+ value: valueOnly ? title : code,
248
+ label: (
249
+ <>
250
+ {title}
251
+ {actions && actions.indexOf("detail") >= 0 ? (
252
+ <Button
253
+ size={"small"}
254
+ type={"text"}
255
+ onClick={(event) => {
256
+ event.stopPropagation();
257
+ this.showItem(code);
258
+ }}
259
+ >
260
+ <AlignLeftOutlined style={{ color: "#0958d9" }} />
261
+ </Button>
262
+ ) : null}
263
+
264
+ {actions && actions.indexOf("edit") >= 0 ? (
265
+ <Button
266
+ size={"small"}
267
+ type={"text"}
268
+ onClick={(event) => {
269
+ event.stopPropagation();
270
+ this.editItem(code);
271
+ }}
272
+ >
273
+ <EditOutlined style={{ color: "#0958d9" }} />
274
+ </Button>
275
+ ) : null}
276
+ </>
277
+ ),
278
+ };
279
+ return option;
280
+ };
281
+
282
+ doClose = () => {
283
+ this.setState({
284
+ drawCode: undefined,
285
+ showEdit: false,
286
+ showView: false,
287
+ showTable: false,
288
+ });
289
+ };
290
+
291
+ drawSubmited = (code?: string, isContinueSave?: boolean) => {
292
+ if (isContinueSave) {
293
+ this.setState({ drawCode: code });
294
+ } else {
295
+ this.doClose();
296
+ }
297
+ this.initCache();
298
+ this.selectRef.current.focus();
299
+ debounce(this.fetchOptions, 100)(undefined);
300
+ };
301
+
302
+ closeTable = () => {
303
+ this.drawSubmited();
304
+ };
305
+
306
+ toValueArray = (value) => {
307
+ let result = [];
308
+ let valueArray = this.toArray(value);
309
+ for (let v of valueArray) {
310
+ if (v) {
311
+ if (this.props.valueOnly) {
312
+ result.push(v);
313
+ } else {
314
+ let vs = v.split("@R@");
315
+ if (vs[1] != "null") {
316
+ result.push(vs[0]);
317
+ }
318
+ }
319
+ }
320
+ }
321
+ return result;
322
+ };
323
+
324
+ toArray = (value) => {
325
+ let valueArray: string[] = [];
326
+ if (value instanceof Array) {
327
+ valueArray = value;
328
+ } else {
329
+ if (value) {
330
+ valueArray = value.split("@,@");
331
+ } else {
332
+ valueArray = [];
333
+ }
334
+ }
335
+
336
+ return valueArray;
337
+ };
338
+
339
+ toOptions = (value, onEntityClick) => {
340
+ const { fieldConfig, valueOnly } = this.props;
341
+ let options: object[] = [];
342
+ let valueArray: string[] = this.toArray(value);
343
+ let values = [];
344
+ for (let v of valueArray) {
345
+ if (v) {
346
+ if (valueOnly) {
347
+ if (values.includes(v)) {
348
+ } else {
349
+ options.push(this.toOption(v, v, onEntityClick));
350
+ values.push(v);
351
+ }
352
+ } else {
353
+ let vs = v.split("@R@");
354
+ if (vs[1] != "null") {
355
+ options.push(this.toOption(vs[0], vs[1], onEntityClick));
356
+ }
357
+ }
358
+ }
359
+ }
360
+
361
+ //添加补充项
362
+ if (fieldConfig.suppleOptions) {
363
+ fieldConfig.suppleOptions.forEach((o) => {
364
+ let had = false;
365
+ options.forEach((s) => {
366
+ if (s["value"] == o.code) {
367
+ had = true;
368
+ return;
369
+ }
370
+ });
371
+ if (!had) {
372
+ options.push(this.toOption(o.code, o.title, undefined));
373
+ }
374
+ });
375
+ }
376
+ return options;
377
+ };
378
+
379
+ fetchNextPage = async () => {
380
+
381
+ const { optionCacheKey, titleId, optionsCache } = this.state;
382
+ let optionCache = optionsCache[optionCacheKey];
383
+ let pageInfo = optionCache?.pageInfo;
384
+ if (optionCache && !optionCache.touchEnd) {
385
+ pageInfo.pageNo = pageInfo.pageNo + 1;
386
+ let dataSource = await this.loadData(
387
+ optionCache.queryKey.key,
388
+ { ...pageInfo },
389
+ titleId
390
+ );
391
+ if (dataSource) {
392
+ optionCache.options = [...optionCache.options, ...dataSource.options];
393
+ optionCache.touchEnd = dataSource.touchEnd;
394
+ }
395
+ optionsCache[optionCacheKey] = optionCache;
396
+ this.setState({ pageNo: pageInfo.pageNo, optionsCache: { ...optionsCache } });
397
+ }
398
+ };
399
+
400
+ fetchOptions = async (searchText: string, isInit?: boolean) => {
401
+ const { fieldConfig, mainCode, baseCriteria: p_baseCriteria, serverKey } = this.props;
402
+ const { optionsCache, ltmplConfig, preMainCode } = this.state;
403
+ let baseCriteria = p_baseCriteria ? p_baseCriteria : fieldConfig.baseCriteria;
404
+ const currentMainCode = mainCode ? mainCode : fieldConfig.mainCode;
405
+ if (preMainCode != currentMainCode) {
406
+ this.setState({ preMainCode: currentMainCode.toString() });
407
+ //清空,
408
+ this.initCache();
409
+ }
410
+
411
+ let optionCacheKey = "withoutValue";
412
+ //先从缓存里拿
413
+ if (searchText) {
414
+ optionCacheKey = searchText;
415
+ }
416
+ let titleId = this.state.titleId;
417
+ let optionCache = optionsCache[optionCacheKey];
418
+ if (!optionCache) {
419
+ this.setState({
420
+ loading: true,
421
+ initLoading: isInit,
422
+ });
423
+ let ltmplConfig_ = ltmplConfig;
424
+ if (!ltmplConfig_) {
425
+ ltmplConfig_ = await this.loadLtmplConfig();
426
+ }
427
+ if (!ltmplConfig_) {
428
+ message.error("请配置正确查询页面", 5);
429
+ return;
430
+ }
431
+ let pageInfo = {
432
+ pageNo: 1,
433
+ pageSize: 6,
434
+ virtualEndPageNo: undefined,
435
+ };
436
+ titleId = ltmplConfig_.extDisplayConfig?.primaryColumn?.id;
437
+ //得到第一个过滤条件
438
+ let firstCriterion = ltmplConfig_.primaryCriterion;
439
+ let formItemName = "undefinedCriteria";
440
+ if (firstCriterion) {
441
+ formItemName = "c_" + firstCriterion.id;
442
+ }
443
+ const { defaultPageSize } = ltmplConfig_;
444
+ if (defaultPageSize) {
445
+ pageInfo.pageSize = defaultPageSize;
446
+ }
447
+
448
+ /** 构建 dataSource **/
449
+ //构建过滤条件
450
+ let criteriaData = {};
451
+ if (baseCriteria) {
452
+ criteriaData = { ...baseCriteria };
453
+ }
454
+
455
+ criteriaData[formItemName] = searchText;
456
+
457
+ let queryKey: QueryKey = await HcserviceV3.requestLtmplQueryKey(
458
+ fieldConfig.serverKey || serverKey,
459
+ fieldConfig.sourceId,
460
+ {
461
+ ...criteriaData,
462
+ ...pageInfo,
463
+ mainCode: currentMainCode == "none" ? undefined : currentMainCode,
464
+ exceptCodes: fieldConfig.relDeduplication ? fieldConfig.exceptCodes : undefined
465
+ }
466
+ );
467
+
468
+ let sourceData = await this.loadData(queryKey.key, pageInfo, titleId);
469
+ if (!sourceData) {
470
+ sourceData = {}
471
+ }
472
+ let expSourceData: LoadDataSource = sourceData ? { ...sourceData } : {};
473
+
474
+ while (!expSourceData.touchEnd && sourceData?.options?.length < 10) {
475
+ pageInfo = { ...pageInfo, pageNo: pageInfo.pageNo + 1 }
476
+ expSourceData = await this.loadData(queryKey.key, pageInfo, titleId);
477
+ sourceData.touchEnd = expSourceData?.touchEnd;
478
+ sourceData.options = [...sourceData.options, ...expSourceData?.options];
479
+ }
480
+
481
+ optionCache = {
482
+ options: sourceData.options,
483
+ pageInfo,
484
+ queryKey,
485
+ searchValue: searchText,
486
+ touchEnd: sourceData.touchEnd,
487
+ };
488
+ optionsCache[optionCacheKey] = optionCache;
489
+ this.setState({
490
+ optionCacheKey,
491
+ titleId,
492
+ optionsCache: { ...optionsCache },
493
+ loading: false,
494
+ initLoading: false
495
+ });
496
+ return sourceData.options;
497
+ } else {
498
+ if (
499
+ this.state.optionCacheKey == optionCacheKey &&
500
+ optionCacheKey == "withoutValue"
501
+ ) {
502
+ this.setState({
503
+ loading: false,
504
+ initLoading: false,
505
+ optionCacheKey,
506
+ });
507
+ } else {
508
+ debounce(() => {
509
+ this.setState({
510
+ loading: false,
511
+ initLoading: false,
512
+ optionCacheKey,
513
+ });
514
+ }, 500)();
515
+ }
516
+ }
517
+ };
518
+
519
+ onChange = (values: any[]) => {
520
+ const { codeLabel } = this.state;
521
+ const { maxSelected, valueOnly } = this.props;
522
+ let newValues: Array<string> = [...values];
523
+ //选够时自动关闭
524
+ if (values && values.length >= maxSelected) {
525
+ this.setState({ selectOpen: false })
526
+ this.selectRef?.current?.blur();
527
+ }
528
+ if (values && values.length > maxSelected) {
529
+ newValues.shift();
530
+ }
531
+ let formValues: Array<string> = [];
532
+
533
+ newValues.forEach((c) => {
534
+ if (valueOnly) {
535
+ if (c.indexOf("@R@") > 0) {
536
+ formValues.push(c.split("@R@")[1]);
537
+ } else {
538
+ formValues.push(codeLabel[c]);
539
+ }
540
+ } else {
541
+ if (c.indexOf("@R@") > 0) {
542
+ formValues.push(c);
543
+ } else {
544
+ formValues.push(c + "@R@" + codeLabel[c]);
545
+ }
546
+ }
547
+
548
+ });
549
+ this.props.onChange(formValues.join("@,@"));
550
+ };
551
+
552
+ tagRender = (props) => {
553
+ const { label, closable, onClose } = props;
554
+ const onPreventMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {
555
+ event.preventDefault();
556
+ event.stopPropagation();
557
+ };
558
+ return (
559
+ <Tag
560
+ onMouseDown={onPreventMouseDown}
561
+ closable={closable}
562
+ onClose={onClose}
563
+ style={{ marginRight: 3 }}
564
+ >
565
+ {label}
566
+ </Tag>
567
+ );
568
+ };
569
+
570
+ loadData = async (
571
+ queryKey: string,
572
+ pageInfo: PageInfo,
573
+ titleId: string
574
+ ): Promise<LoadDataSource> => {
575
+ const { onEntityClick, baseCriteria: p_baseCriteria, serverKey, fieldConfig } = this.props;
576
+ let baseCriteria = p_baseCriteria ? p_baseCriteria : fieldConfig.baseCriteria;
577
+ let queryData: QueryData = await HcserviceV3.requestQueryData(
578
+ fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
579
+ queryKey,
580
+ pageInfo
581
+ );
582
+ let titles = [];
583
+ let options: object[] = [];
584
+ if (!queryData) {
585
+ return;
586
+ }
587
+ pageInfo = queryData?.pageInfo;
588
+ if (queryData?.entities) {
589
+ queryData.entities.forEach((item, index) => {
590
+ let title = item.fieldMap[titleId];
591
+ //放入全局对象缓存
592
+ //这个缓存后续还需要完善,因为太多了,容易爆掉
593
+ HCDataSource.cache(item);
594
+ if (title) {
595
+ let ts = title.split("@R@");
596
+ let t = ts && ts.length > 0 ? ts[ts.length - 1] : title;
597
+ if (t != "null") {
598
+ let idCode = undefined;
599
+ if (fieldConfig.optionCodeColId) {
600
+ idCode = item.fieldMap[fieldConfig.optionCodeColId];
601
+ if (idCode) {
602
+ let idCodes = idCode.split("@R@");
603
+ idCode = idCodes && idCodes.length > 0 ? idCodes[0] : idCode;
604
+ }
605
+ } else {
606
+ idCode = item.code;
607
+ }
608
+ if (this.props.valueOnly && titles.includes(t)) {
609
+ return;
610
+ }
611
+ titles.push(title);
612
+ let option = this.toOption(idCode, t, onEntityClick);
613
+ options.push(option);
614
+ }
615
+ }
616
+ });
617
+ }
618
+
619
+ return { options, touchEnd: queryData?.touchEnd };
620
+ };
621
+
622
+ debounceFetcher = debounce(this.fetchOptions, 500);
623
+
624
+ debounceFetchNextPage = () => {
625
+ debounce(this.fetchNextPage, 200)();
626
+ };
627
+
628
+ render() {
629
+ const {
630
+ id,
631
+ value,
632
+ fieldConfig,
633
+ disabled,
634
+ style,
635
+ onEntityClick,
636
+ mainCode,
637
+ serverKey: pServerKey, valueOnly
638
+ } = this.props;
639
+ const { actions } = fieldConfig;
640
+ const {
641
+ optionCacheKey,
642
+ loading,
643
+ initLoading,
644
+ optionsCache,
645
+ drawCode,
646
+ showEdit,
647
+ showView,
648
+ showTable,
649
+ ltmplConfig, selectOpen, useSelectOpenStat,
650
+ } = this.state;
651
+ const { translate } = this.context;
652
+
653
+ let serverKey = fieldConfig.serverKey ? fieldConfig.serverKey : pServerKey;
654
+ let initOptions = this.toOptions(value, onEntityClick);
655
+ let exists;
656
+ let disvalues = []
657
+ let properOptions = [...initOptions];
658
+ let listHeight = 256;
659
+ if (optionCacheKey && optionsCache[optionCacheKey]) {
660
+ let optionCache = optionsCache[optionCacheKey];
661
+ if (optionCache["pageInfo"] && optionCache.pageInfo.pageSize < 8) {
662
+ listHeight = 32 * optionCache["pageInfo"].pageSize - 10;
663
+ }
664
+ for (let option of optionCache.options) {
665
+ exists = false;
666
+ for (let init of initOptions) {
667
+ if (init["value"] == option["value"]) {
668
+ exists = true;
669
+ //用查询的覆盖之前的
670
+ init["label"] = option["label"];
671
+ }
672
+ }
673
+ if (!exists) {
674
+ if (valueOnly && disvalues.includes(option["value"])) {
675
+ } else {
676
+ disvalues.push(option["value"]);
677
+ properOptions.push(option);
678
+ }
679
+ }
680
+ }
681
+ }
682
+ if (disabled && value) {
683
+ return <Rfield {...this.props} />
684
+ }
685
+
686
+ // 选择框获取焦点
687
+ const handleOnFocus = async () => {
688
+ if (fieldConfig.configChanged) {
689
+ this.initCache()
690
+ }
691
+ this.setState({ selectOpen: true });
692
+ const temOptions = await this.fetchOptions(undefined, true);
693
+ if (fieldConfig.defaultSelectFirst && !value) { // 获取焦点,默认选中第一个
694
+ const temArr = temOptions?.length ? temOptions : properOptions || [];
695
+ if (temArr?.length) {
696
+ this.onChange([temArr[0].value]);
697
+ }
698
+ }
699
+ }
700
+
701
+ return (
702
+ <>
703
+ <Select
704
+ disabled={disabled}
705
+ defaultActiveFirstOption={false}
706
+ id={id}
707
+ listHeight={listHeight}
708
+ style={{ ...style }}
709
+ onChange={this.onChange}
710
+ value={this.toValueArray(value)}
711
+ mode={"multiple"}
712
+ placeholder={translate("${请选择}${" + (fieldConfig.placeholder || fieldConfig.title) + "}")}
713
+ notFoundContent={
714
+ loading ? <Spin size={"small"}></Spin> : translate("${无数据或手动刷新}")
715
+ }
716
+ allowClear={true}
717
+ suffixIcon={<SearchOutlined />}
718
+ filterOption={false}
719
+ onFocus={handleOnFocus}
720
+
721
+ open={useSelectOpenStat ? selectOpen : undefined}
722
+ popupRender={this.dropdownRender}
723
+ tagRender={
724
+ actions?.some(r => ["detail", "edit"].includes(r))
725
+ ? this.tagRender
726
+ : undefined
727
+ }
728
+ onSearch={this.debounceFetcher}
729
+ showSearch={!initLoading}
730
+ ref={this.selectRef}
731
+ options={loading ? [] : properOptions}
732
+ onPopupScroll={(e) => {
733
+ const { target } = e;
734
+ if (
735
+ target["scrollTop"] + target["offsetHeight"] + 1 >=
736
+ target["scrollHeight"]
737
+ ) {
738
+ this.debounceFetchNextPage();
739
+ }
740
+ }}
741
+ ></Select>
742
+ {showView && drawCode ? (
743
+ <DtmplViewDrawer
744
+ serverKey={serverKey}
745
+ placement={"left"}
746
+ onClose={this.doClose}
747
+ open={showView}
748
+ sourceId={fieldConfig.sourceId}
749
+ code={drawCode}
750
+ ></DtmplViewDrawer>
751
+ ) : null}
752
+ {showEdit && ltmplConfig ? (
753
+ ltmplConfig.customEditPagePath ? (
754
+ <DtmplCustomEditModalPage
755
+ open={showEdit}
756
+ onOk={() => {
757
+ this.drawSubmited();
758
+ }}
759
+ customPath={ltmplConfig.customEditPagePath}
760
+ sourceId={fieldConfig.sourceId}
761
+ mainCode={mainCode}
762
+ code={drawCode}
763
+ />
764
+ ) : (
765
+ <DtmplEditPage
766
+ defaultDtmplData={fieldConfig.defaultDtmplData}
767
+ serverKey={serverKey}
768
+ pageType={"modal"}
769
+ open={showEdit}
770
+ onCancel={this.doClose}
771
+ mainCode={mainCode}
772
+ sourceId={fieldConfig.sourceId}
773
+ code={drawCode}
774
+ onOk={this.drawSubmited}
775
+ />
776
+ )
777
+ ) : null}
778
+ {showTable ? (
779
+ <LtmplModal
780
+ serverKey={serverKey}
781
+ open={showTable}
782
+ height={"76vh"}
783
+ onCancel={this.closeTable}
784
+ sourceId={fieldConfig.sourceId}
785
+ mainCode={mainCode}
786
+ />
787
+ ) : null}
788
+ </>
789
+ );
790
+ }
791
+ }