aldehyde 0.2.490 → 0.2.491

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 (689) 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/component.less +83 -83
  6. package/lib/controls/action/index.css +8 -8
  7. package/lib/controls/action/index.d.ts.map +1 -1
  8. package/lib/controls/chemstruc/graph.d.ts.map +1 -1
  9. package/lib/controls/chemstruc/index.css +28 -28
  10. package/lib/controls/collapse-card/index.css +8 -8
  11. package/lib/controls/collapse-card/index.d.ts.map +1 -1
  12. package/lib/controls/cquery/cquick-button.d.ts.map +1 -1
  13. package/lib/controls/date-picker/index.js +9 -9
  14. package/lib/controls/date-picker/index.js.map +1 -1
  15. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  16. package/lib/controls/entity-select/index.css +7 -7
  17. package/lib/controls/entity-select/lab-tree-select.d.ts.map +1 -1
  18. package/lib/controls/entity-select/popover-entity-select.d.ts.map +1 -1
  19. package/lib/controls/file-view/index.less +9 -9
  20. package/lib/controls/html-editor/index.less +67 -67
  21. package/lib/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  22. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +63 -63
  23. package/lib/controls/password-setter/index.css +2 -2
  24. package/lib/controls/password-setter/index.d.ts.map +1 -1
  25. package/lib/controls/qr-code/index.less +28 -28
  26. package/lib/controls/relation-existion/index.css +3 -3
  27. package/lib/controls/relation-existion/index.d.ts.map +1 -1
  28. package/lib/controls/rfield/index.css +4 -4
  29. package/lib/controls/rfield/index.d.ts.map +1 -1
  30. package/lib/controls/select/index.d.ts.map +1 -1
  31. package/lib/controls/signature/index.d.ts.map +1 -1
  32. package/lib/controls/text/ellipsis-text.d.ts.map +1 -1
  33. package/lib/controls/text/index.less +7 -7
  34. package/lib/controls/upload/index.d.ts.map +1 -1
  35. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -1
  36. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts +4 -0
  37. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  38. package/lib/custom-page/dtmpl-custom-edit-modal-page.js +3 -1
  39. package/lib/custom-page/dtmpl-custom-edit-modal-page.js.map +1 -1
  40. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  41. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  42. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  43. package/lib/detail/button/index.css +42 -42
  44. package/lib/detail/dtmpl.css +72 -72
  45. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  46. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  47. package/lib/detail/edit/popover-edit-card.d.ts.map +1 -1
  48. package/lib/detail/rightbar/index.css +34 -34
  49. package/lib/detail/rightbar/index.d.ts.map +1 -1
  50. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  51. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  52. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  53. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  54. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -1
  55. package/lib/draw-canvas-edit/components/asset-bar/index.less +35 -35
  56. package/lib/draw-canvas-edit/components/main-header/index.less +23 -23
  57. package/lib/draw-canvas-edit/components/render/components/index.less +60 -60
  58. package/lib/draw-canvas-edit/components/render/components/workstation-component.js +6 -6
  59. package/lib/draw-canvas-edit/index.less +48 -48
  60. package/lib/draw-canvas-view/index.less +66 -66
  61. package/lib/export/export-frame.css +2 -2
  62. package/lib/export/export-frame.d.ts.map +1 -1
  63. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  64. package/lib/form/dtmpl-form.css +3 -3
  65. package/lib/form/dtmpl-form.d.ts.map +1 -1
  66. package/lib/form/field-group-form.d.ts.map +1 -1
  67. package/lib/form/form-Item-group.d.ts.map +1 -1
  68. package/lib/form/index.css +12 -12
  69. package/lib/import/excel-import.d.ts.map +1 -1
  70. package/lib/import/index.css +53 -53
  71. package/lib/import/template.css +50 -50
  72. package/lib/layout/common.css +64 -64
  73. package/lib/layout/coverstyle.css +51 -51
  74. package/lib/layout/footer/index.css +5 -5
  75. package/lib/layout/header/index.css +122 -122
  76. package/lib/layout/menu/block.css +7 -7
  77. package/lib/layout/menu/block.d.ts.map +1 -1
  78. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  79. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  80. package/lib/layout/menu/message-bar.less +73 -73
  81. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  82. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  83. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  84. package/lib/layout/sidebar/index.css +57 -57
  85. package/lib/layout2/components/system-messages.js +1 -1
  86. package/lib/layout2/components/system-messages.js.map +1 -1
  87. package/lib/layout2/components/user-notification.js +1 -1
  88. package/lib/layout2/components/user-notification.js.map +1 -1
  89. package/lib/layout2/css/header.css +41 -41
  90. package/lib/layout2/css/sider.less +17 -17
  91. package/lib/layout2/css/tabs-layout.less +18 -18
  92. package/lib/layout3/css/header.less +195 -195
  93. package/lib/layout3/css/main.less +161 -161
  94. package/lib/layout3/css/sider.less +32 -32
  95. package/lib/layout3/css/tabs-layout.less +38 -38
  96. package/lib/layout4/css/header.less +196 -196
  97. package/lib/layout4/css/main.less +154 -154
  98. package/lib/layout4/css/sider.less +37 -37
  99. package/lib/layout4/css/tabs-layout.less +42 -42
  100. package/lib/layout5/css/header.less +35 -35
  101. package/lib/layout5/css/sider.less +18 -18
  102. package/lib/list/calendar/index.less +20 -20
  103. package/lib/list/card-list/index.less +154 -154
  104. package/lib/list/gantt/index.less +8 -8
  105. package/lib/list/vertical-list/index.less +208 -208
  106. package/lib/login/index.css +19 -19
  107. package/lib/login/login.d.ts.map +1 -1
  108. package/lib/login/vertify/index.css +143 -143
  109. package/lib/login3/index.less +136 -136
  110. package/lib/lowcode-components/act-table/index.less +26 -26
  111. package/lib/lowcode-components/base-button/index.less +7 -7
  112. package/lib/lowcode-components/base-map/index.js +6 -6
  113. package/lib/lowcode-components/base-radio/index.less +23 -23
  114. package/lib/lowcode-components/base-table/index.less +61 -61
  115. package/lib/lowcode-components/base-tabs/index.less +14 -14
  116. package/lib/lowcode-components/base-text/index.less +19 -19
  117. package/lib/lowcode-components/border/border10/index.less +26 -26
  118. package/lib/lowcode-components/border/border11/index.js +46 -46
  119. package/lib/lowcode-components/border/border11/index.less +17 -17
  120. package/lib/lowcode-components/border/border12/index.js +13 -13
  121. package/lib/lowcode-components/border/border12/index.less +13 -13
  122. package/lib/lowcode-components/border/border13/index.js +5 -5
  123. package/lib/lowcode-components/border/border13/index.less +13 -13
  124. package/lib/lowcode-components/border/border2/index.less +17 -17
  125. package/lib/lowcode-components/border/border3/index.less +25 -25
  126. package/lib/lowcode-components/border/border4/index.js +2 -2
  127. package/lib/lowcode-components/border/border4/index.less +72 -72
  128. package/lib/lowcode-components/border/border5/index.js +2 -2
  129. package/lib/lowcode-components/border/border5/index.less +35 -35
  130. package/lib/lowcode-components/border/border6/index.less +17 -17
  131. package/lib/lowcode-components/border/border7/index.less +26 -26
  132. package/lib/lowcode-components/border/border8/index.less +13 -13
  133. package/lib/lowcode-components/border/border9/index.js +14 -14
  134. package/lib/lowcode-components/border/border9/index.less +13 -13
  135. package/lib/lowcode-components/column-chart/index.d.ts +1 -0
  136. package/lib/lowcode-components/column-chart/index.d.ts.map +1 -1
  137. package/lib/lowcode-components/column-chart/index.js +49 -7
  138. package/lib/lowcode-components/column-chart/index.js.map +1 -1
  139. package/lib/lowcode-components/data-number/index.less +10 -10
  140. package/lib/lowcode-components/date-time/index.less +4 -4
  141. package/lib/lowcode-components/decoration/decoration1/index.less +7 -7
  142. package/lib/lowcode-components/decoration/decoration10/index.js +3 -3
  143. package/lib/lowcode-components/decoration/decoration10/index.less +5 -5
  144. package/lib/lowcode-components/decoration/decoration11/index.less +5 -5
  145. package/lib/lowcode-components/decoration/decoration2/index.less +6 -6
  146. package/lib/lowcode-components/decoration/decoration3/index.less +7 -7
  147. package/lib/lowcode-components/decoration/decoration4/index.less +29 -29
  148. package/lib/lowcode-components/decoration/decoration5/index.less +3 -3
  149. package/lib/lowcode-components/decoration/decoration6/index.less +7 -7
  150. package/lib/lowcode-components/decoration/decoration7/index.less +4 -4
  151. package/lib/lowcode-components/decoration/decoration8/index.less +14 -14
  152. package/lib/lowcode-components/decoration/decoration9/index.less +4 -4
  153. package/lib/lowcode-components/effectScatter-map/index.js +6 -6
  154. package/lib/lowcode-components/effectScatter-map-3d/index.js +6 -6
  155. package/lib/lowcode-components/four-angle-glow-border/index.less +49 -49
  156. package/lib/lowcode-components/line-bar-chart/index.d.ts +2 -1
  157. package/lib/lowcode-components/line-bar-chart/index.d.ts.map +1 -1
  158. package/lib/lowcode-components/line-bar-chart/index.js +53 -11
  159. package/lib/lowcode-components/line-bar-chart/index.js.map +1 -1
  160. package/lib/lowcode-components/line-chart/index.d.ts +1 -0
  161. package/lib/lowcode-components/line-chart/index.d.ts.map +1 -1
  162. package/lib/lowcode-components/line-chart/index.js +52 -10
  163. package/lib/lowcode-components/line-chart/index.js.map +1 -1
  164. package/lib/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  165. package/lib/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  166. package/lib/lowcode-components/lowcode-view/index.d.ts.map +1 -1
  167. package/lib/lowcode-components/lowcode-view/index.js +3 -1
  168. package/lib/lowcode-components/lowcode-view/index.js.map +1 -1
  169. package/lib/lowcode-components/lowcode-view/index.less +19 -19
  170. package/lib/lowcode-components/search-form/index.less +25 -25
  171. package/lib/lowcode-components/text-scroller/index.less +28 -28
  172. package/lib/module/dtmpl-edit-card.d.ts +2 -0
  173. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  174. package/lib/module/dtmpl-edit-card.js +15 -12
  175. package/lib/module/dtmpl-edit-card.js.map +1 -1
  176. package/lib/module/dtmpl-edit-drawer.d.ts +1 -0
  177. package/lib/module/dtmpl-edit-drawer.d.ts.map +1 -1
  178. package/lib/module/dtmpl-edit-drawer.js.map +1 -1
  179. package/lib/module/dtmpl-edit-modal.d.ts +1 -0
  180. package/lib/module/dtmpl-edit-modal.d.ts.map +1 -1
  181. package/lib/module/dtmpl-edit-modal.js.map +1 -1
  182. package/lib/module/dtmpl-edit-page.d.ts +2 -0
  183. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  184. package/lib/module/dtmpl-edit-page.js +16 -12
  185. package/lib/module/dtmpl-edit-page.js.map +1 -1
  186. package/lib/module/index.less +4 -4
  187. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  188. package/lib/module/ltmpl-table.d.ts +4 -0
  189. package/lib/module/ltmpl-table.d.ts.map +1 -1
  190. package/lib/module/ltmpl-table.js +10 -6
  191. package/lib/module/ltmpl-table.js.map +1 -1
  192. package/lib/routable/index.less +25 -25
  193. package/lib/routable/ltmpl-route.d.ts +1 -0
  194. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  195. package/lib/routable/ltmpl-route.js +5 -3
  196. package/lib/routable/ltmpl-route.js.map +1 -1
  197. package/lib/routable/splitview-ltmpl-route.d.ts.map +1 -1
  198. package/lib/routable/splitview-ltmpl-route.js +4 -2
  199. package/lib/routable/splitview-ltmpl-route.js.map +1 -1
  200. package/lib/table/act-table.d.ts +3 -1
  201. package/lib/table/act-table.d.ts.map +1 -1
  202. package/lib/table/act-table.js +8 -7
  203. package/lib/table/act-table.js.map +1 -1
  204. package/lib/table/column/column-builder.d.ts.map +1 -1
  205. package/lib/table/column/column-builder.js +15 -6
  206. package/lib/table/column/column-builder.js.map +1 -1
  207. package/lib/table/column/index.less +85 -85
  208. package/lib/table/index.css +211 -211
  209. package/lib/table/modal-select-table.d.ts.map +1 -1
  210. package/lib/table/page-chart.less +9 -9
  211. package/lib/table/pagination.css +14 -14
  212. package/lib/table/pagination.d.ts.map +1 -1
  213. package/lib/table/relation-table.d.ts.map +1 -1
  214. package/lib/table/selected-rows-card.d.ts.map +1 -1
  215. package/lib/table/stat/restat.d.ts.map +1 -1
  216. package/lib/tmpl/interface.d.ts +4 -1
  217. package/lib/tmpl/interface.d.ts.map +1 -1
  218. package/lib/tmpl/interface.js.map +1 -1
  219. package/lib/tree/act-tree.d.ts.map +1 -1
  220. package/lib/tree/block-menu-auth-tree.d.ts.map +1 -1
  221. package/lib/tree/index.css +22 -22
  222. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  223. package/lib/welcome/components/menu-card.less +96 -96
  224. package/lib/welcome/components/page-card.less +49 -49
  225. package/lib/welcome/components/quick-entrance.less +120 -120
  226. package/lib/welcome/components/user-menus.less +192 -192
  227. package/lib/welcome/components/workbench.less +118 -118
  228. package/lib/welcome/index.css +13 -13
  229. package/package.json +224 -224
  230. package/src/aldehyde/controls/2dEditor/2dEditor/index.less +5 -5
  231. package/src/aldehyde/controls/2dEditor/2dEditor/index.tsx +270 -270
  232. package/src/aldehyde/controls/2dEditor/2dView/index.less +8 -8
  233. package/src/aldehyde/controls/2dEditor/2dView/index.tsx +110 -110
  234. package/src/aldehyde/controls/2dEditor/components/card.tsx +256 -256
  235. package/src/aldehyde/controls/2dEditor/components/component.less +83 -83
  236. package/src/aldehyde/controls/2dEditor/components/data.d.ts +32 -32
  237. package/src/aldehyde/controls/2dEditor/components/hotspot.tsx +80 -80
  238. package/src/aldehyde/controls/2dEditor/components/html-box.tsx +101 -101
  239. package/src/aldehyde/controls/2dEditor/components/image.tsx +99 -99
  240. package/src/aldehyde/controls/2dEditor/components/line.tsx +73 -73
  241. package/src/aldehyde/controls/action/index.css +8 -8
  242. package/src/aldehyde/controls/action/index.tsx +406 -406
  243. package/src/aldehyde/controls/action/utils.tsx +306 -306
  244. package/src/aldehyde/controls/auto-complete/index.tsx +82 -82
  245. package/src/aldehyde/controls/cascader/index.tsx +112 -112
  246. package/src/aldehyde/controls/chemstruc/graph.tsx +185 -185
  247. package/src/aldehyde/controls/chemstruc/index.css +28 -28
  248. package/src/aldehyde/controls/code-editor/sql-code-editor.tsx +73 -73
  249. package/src/aldehyde/controls/collapse-card/index.css +8 -8
  250. package/src/aldehyde/controls/collapse-card/index.tsx +109 -109
  251. package/src/aldehyde/controls/color-picker/index.tsx +21 -21
  252. package/src/aldehyde/controls/counting-tag/index.tsx +53 -53
  253. package/src/aldehyde/controls/cquery/cquick-button.tsx +145 -145
  254. package/src/aldehyde/controls/date-picker/index.tsx +199 -199
  255. package/src/aldehyde/controls/direct-file-view/drawer-file-view.tsx +54 -54
  256. package/src/aldehyde/controls/direct-file-view/index.tsx +147 -147
  257. package/src/aldehyde/controls/direct-upload/index.tsx +140 -140
  258. package/src/aldehyde/controls/entity-select/entity-select.tsx +791 -791
  259. package/src/aldehyde/controls/entity-select/index.css +7 -7
  260. package/src/aldehyde/controls/entity-select/lab-tree-select.tsx +154 -154
  261. package/src/aldehyde/controls/entity-select/popover-entity-select.tsx +205 -205
  262. package/src/aldehyde/controls/entry-control.tsx +431 -431
  263. package/src/aldehyde/controls/enum-badge/index.tsx +42 -42
  264. package/src/aldehyde/controls/enum-tag/index.tsx +45 -45
  265. package/src/aldehyde/controls/field-history/index.tsx +81 -81
  266. package/src/aldehyde/controls/file-export/select-code-export.tsx +40 -40
  267. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +117 -117
  268. package/src/aldehyde/controls/file-view/index.less +9 -9
  269. package/src/aldehyde/controls/file-view/index.tsx +148 -148
  270. package/src/aldehyde/controls/file-view/multi-file-view.tsx +39 -39
  271. package/src/aldehyde/controls/file-view/newin-file-view.tsx +40 -40
  272. package/src/aldehyde/controls/html-editor/draft.tsx +136 -136
  273. package/src/aldehyde/controls/html-editor/index.less +67 -67
  274. package/src/aldehyde/controls/icon-selector/app-icon-selector.tsx +68 -68
  275. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  276. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.json +240 -240
  277. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +63 -63
  278. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +93 -93
  279. package/src/aldehyde/controls/icon-selector/pc-icon-selector.tsx +68 -68
  280. package/src/aldehyde/controls/input-number/index.tsx +148 -148
  281. package/src/aldehyde/controls/input-range/index.tsx +59 -59
  282. package/src/aldehyde/controls/password-setter/index.css +2 -2
  283. package/src/aldehyde/controls/password-setter/index.js +88 -88
  284. package/src/aldehyde/controls/progress/index.tsx +74 -74
  285. package/src/aldehyde/controls/qr-code/index.less +28 -28
  286. package/src/aldehyde/controls/qr-code/index.tsx +40 -40
  287. package/src/aldehyde/controls/relation-existion/index.css +3 -3
  288. package/src/aldehyde/controls/relation-existion/index.tsx +144 -144
  289. package/src/aldehyde/controls/rfield/index.css +4 -4
  290. package/src/aldehyde/controls/rfield/index.tsx +225 -225
  291. package/src/aldehyde/controls/select/index.tsx +226 -226
  292. package/src/aldehyde/controls/signature/index.tsx +226 -226
  293. package/src/aldehyde/controls/single-checkbox/index.tsx +18 -18
  294. package/src/aldehyde/controls/steps/index.tsx +59 -59
  295. package/src/aldehyde/controls/text/ellipsis-text.tsx +98 -98
  296. package/src/aldehyde/controls/text/index.less +7 -7
  297. package/src/aldehyde/controls/tree-select/navigation-tree.tsx +122 -122
  298. package/src/aldehyde/controls/tree-select/tree-entity-select.tsx +121 -121
  299. package/src/aldehyde/controls/upload/index.tsx +128 -128
  300. package/src/aldehyde/controls/upload/mult-file-upload.tsx +240 -240
  301. package/src/aldehyde/controls/upload-read-excel/index.tsx +43 -43
  302. package/src/aldehyde/controls/view-control.tsx +289 -289
  303. package/src/aldehyde/custom-page/custom-detail-modal-page.tsx +69 -69
  304. package/src/aldehyde/custom-page/custom-page-router.tsx +64 -64
  305. package/src/aldehyde/custom-page/def-custom-page.tsx +17 -17
  306. package/src/aldehyde/custom-page/dtmpl-custom-edit-modal-page.tsx +91 -88
  307. package/src/aldehyde/detail/button/bottom-submit-button-bar.tsx +91 -91
  308. package/src/aldehyde/detail/button/cquery-button-bar.tsx +144 -144
  309. package/src/aldehyde/detail/button/edit-button.tsx +61 -61
  310. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +186 -186
  311. package/src/aldehyde/detail/button/index.css +42 -42
  312. package/src/aldehyde/detail/button/inline-edit-button.tsx +40 -40
  313. package/src/aldehyde/detail/button/submit-button-bar.tsx +57 -57
  314. package/src/aldehyde/detail/button/view-button.tsx +64 -64
  315. package/src/aldehyde/detail/dtmpl.css +72 -72
  316. package/src/aldehyde/detail/edit/dtmpl-edit.tsx +279 -279
  317. package/src/aldehyde/detail/edit/fields-edit-card.tsx +145 -145
  318. package/src/aldehyde/detail/edit/modal-row-edit.tsx +95 -95
  319. package/src/aldehyde/detail/edit/popover-edit-card.tsx +167 -167
  320. package/src/aldehyde/detail/edit/popover-editor.tsx +70 -70
  321. package/src/aldehyde/detail/edit/post-result/index.tsx +86 -86
  322. package/src/aldehyde/detail/rightbar/index.css +34 -34
  323. package/src/aldehyde/detail/rightbar/index.tsx +92 -92
  324. package/src/aldehyde/detail/tooltipbar/index.tsx +32 -32
  325. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +288 -288
  326. package/src/aldehyde/detail/view/dtmpl-view.tsx +334 -334
  327. package/src/aldehyde/detail/view/field-view-group.tsx +88 -88
  328. package/src/aldehyde/detail/view/modal-dtmpl-view.tsx +73 -73
  329. package/src/aldehyde/detail/view/snapshot-timeline.tsx +231 -231
  330. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +304 -304
  331. package/src/aldehyde/detail/view/view-compare-panel.tsx +57 -57
  332. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +35 -35
  333. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +110 -110
  334. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +23 -23
  335. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +263 -263
  336. package/src/aldehyde/draw-canvas-edit/components/render/components/index.less +60 -60
  337. package/src/aldehyde/draw-canvas-edit/components/render/components/index.ts +3 -3
  338. package/src/aldehyde/draw-canvas-edit/components/render/components/workstation-component.tsx +220 -220
  339. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +177 -177
  340. package/src/aldehyde/draw-canvas-edit/components/render/draws/contextmenu-draw.ts +330 -330
  341. package/src/aldehyde/draw-canvas-edit/components/render/draws/graph-draw.ts +249 -249
  342. package/src/aldehyde/draw-canvas-edit/components/render/draws/index.ts +7 -7
  343. package/src/aldehyde/draw-canvas-edit/components/render/draws/link-draw.ts +1415 -1415
  344. package/src/aldehyde/draw-canvas-edit/components/render/draws/preview-draw.ts +274 -274
  345. package/src/aldehyde/draw-canvas-edit/components/render/draws/ref-line-draw.ts +71 -71
  346. package/src/aldehyde/draw-canvas-edit/components/render/draws/ruler-draw.ts +166 -166
  347. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +241 -241
  348. package/src/aldehyde/draw-canvas-edit/components/render/graphs/bezier.ts +542 -542
  349. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +699 -699
  350. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +500 -500
  351. package/src/aldehyde/draw-canvas-edit/components/render/graphs/index.ts +5 -5
  352. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +493 -493
  353. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +680 -680
  354. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +68 -68
  355. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +77 -77
  356. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +113 -113
  357. package/src/aldehyde/draw-canvas-edit/components/render/handlers/index.ts +9 -9
  358. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +49 -49
  359. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +45 -45
  360. package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +410 -410
  361. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +45 -45
  362. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +81 -81
  363. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +59 -59
  364. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +817 -817
  365. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +89 -89
  366. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +154 -154
  367. package/src/aldehyde/draw-canvas-edit/components/render/tools/attract-tool.ts +457 -457
  368. package/src/aldehyde/draw-canvas-edit/components/render/tools/component-factory.ts +269 -269
  369. package/src/aldehyde/draw-canvas-edit/components/render/tools/copy-tool.ts +244 -244
  370. package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +588 -588
  371. package/src/aldehyde/draw-canvas-edit/components/render/tools/index.ts +10 -10
  372. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +222 -222
  373. package/src/aldehyde/draw-canvas-edit/components/render/tools/position-tool.ts +191 -191
  374. package/src/aldehyde/draw-canvas-edit/components/render/tools/selection-tool.ts +140 -140
  375. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +224 -224
  376. package/src/aldehyde/draw-canvas-edit/components/render/types.ts +298 -298
  377. package/src/aldehyde/draw-canvas-edit/components/render/utils/a-star.ts +116 -116
  378. package/src/aldehyde/draw-canvas-edit/components/render/utils/bezier-scene-func.ts +72 -72
  379. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +119 -119
  380. package/src/aldehyde/draw-canvas-edit/components/setting-form/index.tsx +305 -305
  381. package/src/aldehyde/draw-canvas-edit/constant.ts +5 -5
  382. package/src/aldehyde/draw-canvas-edit/index.less +48 -48
  383. package/src/aldehyde/draw-canvas-edit/index.tsx +213 -213
  384. package/src/aldehyde/draw-canvas-view/index.less +66 -66
  385. package/src/aldehyde/draw-canvas-view/index.tsx +49 -49
  386. package/src/aldehyde/draw-canvas-view/view.tsx +237 -237
  387. package/src/aldehyde/export/export-frame.css +2 -2
  388. package/src/aldehyde/export/export-frame.tsx +301 -301
  389. package/src/aldehyde/export/select-code-export-frame.tsx +212 -212
  390. package/src/aldehyde/form/criteria-form.tsx +604 -604
  391. package/src/aldehyde/form/dtmpl-form.css +3 -3
  392. package/src/aldehyde/form/dtmpl-form.tsx +571 -571
  393. package/src/aldehyde/form/field-group-form.tsx +103 -103
  394. package/src/aldehyde/form/fields-form.tsx +45 -45
  395. package/src/aldehyde/form/form-Item-group.tsx +246 -246
  396. package/src/aldehyde/form/index.css +12 -12
  397. package/src/aldehyde/hooks/use-match-route/index.tsx +62 -62
  398. package/src/aldehyde/hooks/use-tabs/index.tsx +139 -139
  399. package/src/aldehyde/hooks/useVarCssColor.ts +6 -6
  400. package/src/aldehyde/icon/aliIcon.tsx +9 -9
  401. package/src/aldehyde/icon/index.tsx +28 -28
  402. package/src/aldehyde/import/excel-import.tsx +450 -450
  403. package/src/aldehyde/import/index.css +53 -53
  404. package/src/aldehyde/import/template.css +50 -50
  405. package/src/aldehyde/index.tsx +220 -220
  406. package/src/aldehyde/layout/MainPage.tsx +334 -334
  407. package/src/aldehyde/layout/common.css +64 -64
  408. package/src/aldehyde/layout/coverstyle.css +51 -51
  409. package/src/aldehyde/layout/footer/index.css +5 -5
  410. package/src/aldehyde/layout/footer/index.js +17 -17
  411. package/src/aldehyde/layout/header/index.css +122 -122
  412. package/src/aldehyde/layout/header/index.tsx +152 -152
  413. package/src/aldehyde/layout/menu/block.css +7 -7
  414. package/src/aldehyde/layout/menu/block.tsx +174 -174
  415. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +160 -160
  416. package/src/aldehyde/layout/menu/l2menu-quick-bar.tsx +175 -175
  417. package/src/aldehyde/layout/menu/menu-2layers.tsx +117 -117
  418. package/src/aldehyde/layout/menu/menu-render.tsx +168 -168
  419. package/src/aldehyde/layout/menu/message-bar.less +73 -73
  420. package/src/aldehyde/layout/menu/reset-password.tsx +255 -255
  421. package/src/aldehyde/layout/menu/user-bar.tsx +259 -259
  422. package/src/aldehyde/layout/menu/userinfo-bar.tsx +69 -69
  423. package/src/aldehyde/layout/sidebar/index.css +57 -57
  424. package/src/aldehyde/layout/sidebar/index.tsx +84 -84
  425. package/src/aldehyde/layout2/components/icon-font.tsx +7 -7
  426. package/src/aldehyde/layout2/components/screenfull-button.tsx +21 -21
  427. package/src/aldehyde/layout2/components/search-menu.tsx +85 -85
  428. package/src/aldehyde/layout2/components/system-messages.tsx +75 -75
  429. package/src/aldehyde/layout2/components/theme-button.tsx +65 -65
  430. package/src/aldehyde/layout2/components/user-button.tsx +258 -258
  431. package/src/aldehyde/layout2/components/user-notification.tsx +74 -74
  432. package/src/aldehyde/layout2/css/header.css +41 -41
  433. package/src/aldehyde/layout2/css/sider.less +17 -17
  434. package/src/aldehyde/layout2/css/tabs-layout.less +18 -18
  435. package/src/aldehyde/layout2/header.tsx +278 -278
  436. package/src/aldehyde/layout2/layout-context.tsx +95 -95
  437. package/src/aldehyde/layout2/main.tsx +30 -30
  438. package/src/aldehyde/layout2/page.tsx +315 -315
  439. package/src/aldehyde/layout2/sider.tsx +230 -230
  440. package/src/aldehyde/layout2/tabs/tabs-context.tsx +37 -37
  441. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +146 -146
  442. package/src/aldehyde/layout2/type/layout-type.ts +15 -15
  443. package/src/aldehyde/layout2/util/menu-util.tsx +125 -125
  444. package/src/aldehyde/layout3/components/tabs-layout.tsx +110 -110
  445. package/src/aldehyde/layout3/components/time.tsx +25 -25
  446. package/src/aldehyde/layout3/css/header.less +195 -195
  447. package/src/aldehyde/layout3/css/main.less +161 -161
  448. package/src/aldehyde/layout3/css/sider.less +32 -32
  449. package/src/aldehyde/layout3/css/tabs-layout.less +38 -38
  450. package/src/aldehyde/layout3/header.tsx +187 -187
  451. package/src/aldehyde/layout3/main.tsx +29 -29
  452. package/src/aldehyde/layout3/page.tsx +110 -110
  453. package/src/aldehyde/layout3/sider.tsx +198 -198
  454. package/src/aldehyde/layout4/components/tabs-layout.tsx +110 -110
  455. package/src/aldehyde/layout4/css/header.less +196 -196
  456. package/src/aldehyde/layout4/css/main.less +154 -154
  457. package/src/aldehyde/layout4/css/sider.less +37 -37
  458. package/src/aldehyde/layout4/css/tabs-layout.less +42 -42
  459. package/src/aldehyde/layout4/header.tsx +190 -190
  460. package/src/aldehyde/layout4/imgs/user.svg +26 -26
  461. package/src/aldehyde/layout4/main.tsx +29 -29
  462. package/src/aldehyde/layout4/page.tsx +125 -125
  463. package/src/aldehyde/layout4/sider.tsx +201 -201
  464. package/src/aldehyde/layout5/css/header.less +35 -35
  465. package/src/aldehyde/layout5/css/sider.less +18 -18
  466. package/src/aldehyde/layout5/header.tsx +204 -204
  467. package/src/aldehyde/layout5/page.tsx +107 -107
  468. package/src/aldehyde/layout5/sider.tsx +235 -235
  469. package/src/aldehyde/list/calendar/index.less +20 -20
  470. package/src/aldehyde/list/calendar/index.tsx +157 -157
  471. package/src/aldehyde/list/card-list/card-list-item.tsx +112 -112
  472. package/src/aldehyde/list/card-list/index.less +154 -154
  473. package/src/aldehyde/list/card-list/index.tsx +83 -83
  474. package/src/aldehyde/list/gantt/index.less +8 -8
  475. package/src/aldehyde/list/gantt/index.tsx +508 -508
  476. package/src/aldehyde/list/vertical-list/index.less +208 -208
  477. package/src/aldehyde/list/vertical-list/index.tsx +55 -55
  478. package/src/aldehyde/list/vertical-list/item.tsx +136 -136
  479. package/src/aldehyde/locale/LocaleButton.tsx +48 -48
  480. package/src/aldehyde/locale/LocaleProvider.tsx +265 -265
  481. package/src/aldehyde/locale/langMp.ts +45 -45
  482. package/src/aldehyde/locale/translate.ts +80 -80
  483. package/src/aldehyde/locale/useLocale.ts +72 -72
  484. package/src/aldehyde/login/context-setter.tsx +130 -130
  485. package/src/aldehyde/login/index.css +19 -19
  486. package/src/aldehyde/login/login.tsx +255 -255
  487. package/src/aldehyde/login/router-login.tsx +107 -107
  488. package/src/aldehyde/login/vertify/index.css +143 -143
  489. package/src/aldehyde/login/vertify/index.tsx +360 -360
  490. package/src/aldehyde/login/vertify/tool.ts +13 -13
  491. package/src/aldehyde/login2/login-page.tsx +92 -92
  492. package/src/aldehyde/login2/login.tsx +227 -227
  493. package/src/aldehyde/login3/index.less +136 -136
  494. package/src/aldehyde/login3/login-page.tsx +71 -71
  495. package/src/aldehyde/lowcode-components/act-table/index.less +26 -26
  496. package/src/aldehyde/lowcode-components/act-table/index.tsx +139 -139
  497. package/src/aldehyde/lowcode-components/assets/lowcode-constant.tsx +12 -12
  498. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +272 -272
  499. package/src/aldehyde/lowcode-components/base-button/index.less +7 -7
  500. package/src/aldehyde/lowcode-components/base-button/index.tsx +197 -197
  501. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +31 -31
  502. package/src/aldehyde/lowcode-components/base-image/index.tsx +220 -220
  503. package/src/aldehyde/lowcode-components/base-map/index.tsx +292 -292
  504. package/src/aldehyde/lowcode-components/base-radio/index.less +23 -23
  505. package/src/aldehyde/lowcode-components/base-radio/index.tsx +157 -157
  506. package/src/aldehyde/lowcode-components/base-table/index.less +61 -61
  507. package/src/aldehyde/lowcode-components/base-table/index.tsx +268 -268
  508. package/src/aldehyde/lowcode-components/base-tabs/index.less +14 -14
  509. package/src/aldehyde/lowcode-components/base-tabs/index.tsx +183 -183
  510. package/src/aldehyde/lowcode-components/base-text/index.less +19 -19
  511. package/src/aldehyde/lowcode-components/base-text/index.tsx +58 -58
  512. package/src/aldehyde/lowcode-components/border/border1/index.tsx +70 -70
  513. package/src/aldehyde/lowcode-components/border/border10/index.less +26 -26
  514. package/src/aldehyde/lowcode-components/border/border10/index.tsx +45 -45
  515. package/src/aldehyde/lowcode-components/border/border11/index.less +17 -17
  516. package/src/aldehyde/lowcode-components/border/border11/index.tsx +232 -232
  517. package/src/aldehyde/lowcode-components/border/border12/index.less +13 -13
  518. package/src/aldehyde/lowcode-components/border/border12/index.tsx +115 -115
  519. package/src/aldehyde/lowcode-components/border/border13/index.less +13 -13
  520. package/src/aldehyde/lowcode-components/border/border13/index.tsx +69 -69
  521. package/src/aldehyde/lowcode-components/border/border2/index.less +17 -17
  522. package/src/aldehyde/lowcode-components/border/border2/index.tsx +51 -51
  523. package/src/aldehyde/lowcode-components/border/border3/index.less +25 -25
  524. package/src/aldehyde/lowcode-components/border/border3/index.tsx +61 -61
  525. package/src/aldehyde/lowcode-components/border/border4/index.less +72 -72
  526. package/src/aldehyde/lowcode-components/border/border4/index.tsx +79 -79
  527. package/src/aldehyde/lowcode-components/border/border5/index.less +35 -35
  528. package/src/aldehyde/lowcode-components/border/border5/index.tsx +75 -75
  529. package/src/aldehyde/lowcode-components/border/border6/index.less +17 -17
  530. package/src/aldehyde/lowcode-components/border/border6/index.tsx +60 -60
  531. package/src/aldehyde/lowcode-components/border/border7/index.less +26 -26
  532. package/src/aldehyde/lowcode-components/border/border7/index.tsx +75 -75
  533. package/src/aldehyde/lowcode-components/border/border8/index.less +13 -13
  534. package/src/aldehyde/lowcode-components/border/border8/index.tsx +84 -84
  535. package/src/aldehyde/lowcode-components/border/border9/index.less +13 -13
  536. package/src/aldehyde/lowcode-components/border/border9/index.tsx +154 -154
  537. package/src/aldehyde/lowcode-components/capsule-bar-chart/index.tsx +290 -290
  538. package/src/aldehyde/lowcode-components/carousel/index.tsx +218 -218
  539. package/src/aldehyde/lowcode-components/circular-progress-chart/index.tsx +263 -263
  540. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +442 -442
  541. package/src/aldehyde/lowcode-components/column-chart/index.tsx +349 -297
  542. package/src/aldehyde/lowcode-components/data-number/index.less +10 -10
  543. package/src/aldehyde/lowcode-components/data-number/index.tsx +219 -219
  544. package/src/aldehyde/lowcode-components/data.d.ts +19 -19
  545. package/src/aldehyde/lowcode-components/date-time/index.less +4 -4
  546. package/src/aldehyde/lowcode-components/date-time/index.tsx +64 -64
  547. package/src/aldehyde/lowcode-components/decoration/decoration1/index.less +7 -7
  548. package/src/aldehyde/lowcode-components/decoration/decoration1/index.tsx +153 -153
  549. package/src/aldehyde/lowcode-components/decoration/decoration10/index.less +5 -5
  550. package/src/aldehyde/lowcode-components/decoration/decoration10/index.tsx +89 -89
  551. package/src/aldehyde/lowcode-components/decoration/decoration11/index.less +5 -5
  552. package/src/aldehyde/lowcode-components/decoration/decoration11/index.tsx +133 -133
  553. package/src/aldehyde/lowcode-components/decoration/decoration2/index.less +6 -6
  554. package/src/aldehyde/lowcode-components/decoration/decoration2/index.tsx +61 -61
  555. package/src/aldehyde/lowcode-components/decoration/decoration3/index.less +7 -7
  556. package/src/aldehyde/lowcode-components/decoration/decoration3/index.tsx +87 -87
  557. package/src/aldehyde/lowcode-components/decoration/decoration4/index.less +29 -29
  558. package/src/aldehyde/lowcode-components/decoration/decoration4/index.tsx +53 -53
  559. package/src/aldehyde/lowcode-components/decoration/decoration5/index.less +3 -3
  560. package/src/aldehyde/lowcode-components/decoration/decoration5/index.tsx +116 -116
  561. package/src/aldehyde/lowcode-components/decoration/decoration6/index.less +7 -7
  562. package/src/aldehyde/lowcode-components/decoration/decoration6/index.tsx +121 -121
  563. package/src/aldehyde/lowcode-components/decoration/decoration7/index.less +4 -4
  564. package/src/aldehyde/lowcode-components/decoration/decoration7/index.tsx +70 -70
  565. package/src/aldehyde/lowcode-components/decoration/decoration8/index.less +14 -14
  566. package/src/aldehyde/lowcode-components/decoration/decoration8/index.tsx +122 -122
  567. package/src/aldehyde/lowcode-components/decoration/decoration9/index.less +4 -4
  568. package/src/aldehyde/lowcode-components/decoration/decoration9/index.tsx +196 -196
  569. package/src/aldehyde/lowcode-components/effectScatter-map/index.tsx +315 -315
  570. package/src/aldehyde/lowcode-components/effectScatter-map-3d/index.tsx +419 -419
  571. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +49 -49
  572. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -53
  573. package/src/aldehyde/lowcode-components/gauge-chart/index.tsx +254 -254
  574. package/src/aldehyde/lowcode-components/index.ts +130 -130
  575. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +356 -304
  576. package/src/aldehyde/lowcode-components/line-chart/index.tsx +346 -294
  577. package/src/aldehyde/lowcode-components/liquid-chart/index.tsx +250 -250
  578. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -64
  579. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -77
  580. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +36 -36
  581. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +478 -478
  582. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +91 -91
  583. package/src/aldehyde/lowcode-components/lowcode-view/component/component-controller.ts +153 -153
  584. package/src/aldehyde/lowcode-components/lowcode-view/component/component-definition.ts +23 -23
  585. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  586. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/controller.ts +36 -36
  587. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/definition.ts +53 -53
  588. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/index.tsx +15 -15
  589. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +98 -98
  590. package/src/aldehyde/lowcode-components/lowcode-view/component/loading.tsx +20 -20
  591. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  592. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +121 -121
  593. package/src/aldehyde/lowcode-components/lowcode-view/component/util.ts +27 -27
  594. package/src/aldehyde/lowcode-components/lowcode-view/index.less +19 -19
  595. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +279 -277
  596. package/src/aldehyde/lowcode-components/lowcode-view/interface.ts +189 -189
  597. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +353 -353
  598. package/src/aldehyde/lowcode-components/placeholder-component/index.tsx +81 -81
  599. package/src/aldehyde/lowcode-components/progress-chart/index.tsx +295 -295
  600. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +322 -322
  601. package/src/aldehyde/lowcode-components/search-form/index.less +25 -25
  602. package/src/aldehyde/lowcode-components/search-form/index.tsx +121 -121
  603. package/src/aldehyde/lowcode-components/stroke-animation/index.tsx +219 -219
  604. package/src/aldehyde/lowcode-components/text-scroller/index.less +28 -28
  605. package/src/aldehyde/lowcode-components/text-scroller/index.tsx +173 -173
  606. package/src/aldehyde/module/block-menu-tree-drawer.tsx +118 -118
  607. package/src/aldehyde/module/criteria-page.tsx1 +175 -175
  608. package/src/aldehyde/module/draggable-modal.tsx +66 -66
  609. package/src/aldehyde/module/dtmpl-edit-card.tsx +479 -477
  610. package/src/aldehyde/module/dtmpl-edit-drawer.tsx +24 -23
  611. package/src/aldehyde/module/dtmpl-edit-modal.tsx +26 -25
  612. package/src/aldehyde/module/dtmpl-edit-page.tsx +600 -597
  613. package/src/aldehyde/module/dtmpl-editor.tsx +165 -165
  614. package/src/aldehyde/module/dtmpl-view-card.tsx +64 -64
  615. package/src/aldehyde/module/dtmpl-view-drawer.tsx +71 -71
  616. package/src/aldehyde/module/dtmpl-view-modal.tsx +56 -56
  617. package/src/aldehyde/module/embed-dtmpl-edit-page.tsx +137 -137
  618. package/src/aldehyde/module/index.less +4 -4
  619. package/src/aldehyde/module/ltmpl-drawer.tsx +60 -60
  620. package/src/aldehyde/module/ltmpl-modal.tsx +63 -63
  621. package/src/aldehyde/module/ltmpl-table.tsx +388 -379
  622. package/src/aldehyde/module/ttmpl-tree.tsx +47 -47
  623. package/src/aldehyde/routable/dtmpl-route.tsx +173 -173
  624. package/src/aldehyde/routable/import-route.tsx +35 -35
  625. package/src/aldehyde/routable/index.less +25 -25
  626. package/src/aldehyde/routable/ltmpl-route.tsx +544 -539
  627. package/src/aldehyde/routable/splitview-ltmpl-route.tsx +382 -377
  628. package/src/aldehyde/routable/ttmpl-route.tsx +93 -93
  629. package/src/aldehyde/routable/withroute.tsx +36 -36
  630. package/src/aldehyde/sso-Login/index.tsx +73 -73
  631. package/src/aldehyde/sso-Login/service/index.js +16 -16
  632. package/src/aldehyde/sso-Login/service/login.js +75 -75
  633. package/src/aldehyde/table/act-table.tsx +1846 -1844
  634. package/src/aldehyde/table/column/column-builder.tsx +882 -876
  635. package/src/aldehyde/table/column/column-selector.tsx +130 -130
  636. package/src/aldehyde/table/column/index.less +85 -85
  637. package/src/aldehyde/table/column/summary-builder.tsx +712 -712
  638. package/src/aldehyde/table/column/theme-color-getter.tsx +25 -25
  639. package/src/aldehyde/table/control-table-x-axis-wrapper.tsx +80 -80
  640. package/src/aldehyde/table/index.css +211 -211
  641. package/src/aldehyde/table/l2-act-table.tsx +91 -91
  642. package/src/aldehyde/table/modal-select-table.tsx +308 -308
  643. package/src/aldehyde/table/page-chart.less +9 -9
  644. package/src/aldehyde/table/page-chart.tsx +196 -196
  645. package/src/aldehyde/table/page-config-button.tsx +203 -203
  646. package/src/aldehyde/table/pagination.css +14 -14
  647. package/src/aldehyde/table/pagination.tsx +81 -81
  648. package/src/aldehyde/table/query-table.tsx +668 -668
  649. package/src/aldehyde/table/relation-table.tsx +1078 -1078
  650. package/src/aldehyde/table/report-table.tsx +125 -125
  651. package/src/aldehyde/table/resizable-table.tsx +97 -97
  652. package/src/aldehyde/table/row-table.tsx +22 -22
  653. package/src/aldehyde/table/select-table.tsx +559 -559
  654. package/src/aldehyde/table/selected-rows-card.tsx +78 -78
  655. package/src/aldehyde/table/stat/restat.tsx +122 -122
  656. package/src/aldehyde/table/table-util.tsx +25 -25
  657. package/src/aldehyde/tmpl/control-type-supportor.tsx +154 -154
  658. package/src/aldehyde/tmpl/hc-data-source.tsx +574 -574
  659. package/src/aldehyde/tmpl/hcservice-v3.tsx +1590 -1590
  660. package/src/aldehyde/tmpl/interface.tsx +939 -936
  661. package/src/aldehyde/tmpl/model-struc-v3.tsx +111 -111
  662. package/src/aldehyde/tmpl/superagent.js +146 -146
  663. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +585 -585
  664. package/src/aldehyde/tmpl/web-socket.ts +366 -366
  665. package/src/aldehyde/tree/act-tree.tsx +217 -217
  666. package/src/aldehyde/tree/block-menu-auth-tree.tsx +189 -189
  667. package/src/aldehyde/tree/index.css +22 -22
  668. package/src/aldehyde/tree/navigation-tree.tsx +39 -39
  669. package/src/aldehyde/tree/tmpl-tree.tsx +751 -751
  670. package/src/aldehyde/tree/tree-node.tsx +73 -73
  671. package/src/aldehyde/tree/tree-utils.tsx +317 -317
  672. package/src/aldehyde/units/EncryptUtils.js +37 -37
  673. package/src/aldehyde/units/image.d.ts +7 -7
  674. package/src/aldehyde/units/index.tsx +1367 -1367
  675. package/src/aldehyde/units/storage.js +2 -2
  676. package/src/aldehyde/utils/dsu.ts +27 -27
  677. package/src/aldehyde/welcome/HCWelcome.js +404 -404
  678. package/src/aldehyde/welcome/HCWelcome1.js +259 -259
  679. package/src/aldehyde/welcome/components/menu-card.less +96 -96
  680. package/src/aldehyde/welcome/components/menu-card.tsx +70 -70
  681. package/src/aldehyde/welcome/components/page-card.less +49 -49
  682. package/src/aldehyde/welcome/components/page-card.tsx +97 -97
  683. package/src/aldehyde/welcome/components/quick-entrance.less +120 -120
  684. package/src/aldehyde/welcome/components/quick-entrance.tsx +80 -80
  685. package/src/aldehyde/welcome/components/user-menus.less +192 -192
  686. package/src/aldehyde/welcome/components/user-menus.tsx +279 -279
  687. package/src/aldehyde/welcome/components/workbench.less +118 -118
  688. package/src/aldehyde/welcome/components/workbench.tsx +146 -146
  689. package/src/aldehyde/welcome/index.css +13 -13
@@ -1,877 +1,883 @@
1
- import React from "react";
2
- import { ActionRenderProps, ColumnConfig, DtmplData, LtmplConfig, FieldConfig, CustomButton, CQueryConfig } from "../../tmpl/interface";
3
- import TableUnits from "../table-util";
4
- import SupportInputTypes from "../../tmpl/control-type-supportor";
5
- import { Button, Popconfirm, Popover, Space, Tooltip, Form as AntdForm, theme } from "antd";
6
- import { SortableHandle } from "react-sortable-hoc";
7
- import {
8
- AlignLeftOutlined, CopyOutlined, DeleteOutlined,
9
- EllipsisOutlined,
10
- EyeInvisibleOutlined,
11
- EyeOutlined,
12
- FormOutlined,
13
- KeyOutlined,
14
- MenuOutlined, QuestionCircleOutlined, PlaySquareOutlined,
15
- SettingOutlined, UpSquareFilled, DownSquareFilled
16
- } from "@ant-design/icons";
17
- import ActionUtils from "../../controls/action/utils";
18
- import ViewButton from "../../detail/button/view-button";
19
- import EditButton from "../../detail/button/edit-button";
20
- import InlineEditButton from "../../detail/button/inline-edit-button";
21
- import HcserviceV3 from "../../tmpl/hcservice-v3";
22
- import Action from "../../controls/action";
23
- import CquickButton from "../../controls/cquery/cquick-button";
24
- import { ViewControl } from "../../index";
25
- import NewinFileView from "../../controls/file-view/newin-file-view";
26
- import { EntryControl } from "../../index";
27
- import TmplConfigAnalysis from "../../tmpl/tmpl-config-analysis";
28
- import Icon from "../../icon/aliIcon";
29
- import SelectCodeExport from "../../controls/file-export/select-code-export";
30
- import "./index.less";
31
-
32
- const FormItem = AntdForm.Item;
33
-
34
- // 负责提取 token
35
- const ThemeToken = (props) => {
36
- const { token } = theme.useToken();
37
- return props.children(token); // 使用 render props 模式
38
- };
39
-
40
- interface ColumnBuilderProps extends ActionRenderProps {
41
- ltmplConfig: LtmplConfig,
42
- hiddenColIds?: string[],
43
- hiddenRowCodes?: string[],
44
- sortedColConfigs?: ColumnConfig[],
45
- unHiden?: () => any,
46
- onHide?: (code: string) => any,
47
- operatable?: boolean,
48
- mainCode?: string,
49
- criteriaData?: object,
50
- actTableDoSearch?: (data: object) => void,
51
- columnResize?: { [key: string]: number }
52
- }
53
-
54
- interface ReportColumnBuilderProps {
55
- columnConfigs: ColumnConfig[],
56
- hiddenColIds?: string[],
57
- translate: (...strs: string[]) => string;
58
- leftFixedCols: number,
59
- hiddenRowCodes?: string[],
60
- unHiden?: () => any,
61
- onHide?: (code: string) => any,
62
- }
63
-
64
-
65
- export default {
66
-
67
- buildTableColumns(props: ColumnBuilderProps) {
68
- const {
69
- ltmplConfig,
70
- hiddenColIds,
71
- hiddenRowCodes,
72
- sortedColConfigs, unHiden,
73
- onHide, translate,
74
- sortColumns, serverKey,
75
- editings, mainCode, criteriaData, actTableDoSearch, showView,
76
- columnResize
77
- } = props;
78
-
79
- const { primaryColumn, secondColumn, primaryColumnLabel } = ltmplConfig.extDisplayConfig || {};
80
-
81
- let tableColumns = [];
82
- let s = 0;
83
- let colConfigs = sortedColConfigs ? sortedColConfigs : ltmplConfig.columns;
84
- let buttons = ltmplConfig.buttons || [];
85
-
86
- let currentDataColIndex = 0;
87
-
88
- colConfigs.forEach((item) => {
89
- let column = {};
90
- if (hiddenColIds && hiddenColIds.includes(item.originalId)) {
91
- return
92
- } else {
93
- if (item.columnGroupName) { // 表头分组功能实现
94
- const groupIndex = tableColumns.findIndex(r => r.children?.length && r.title === item.columnGroupName);
95
- if (groupIndex !== -1) {
96
- tableColumns[groupIndex].children.push(column);
97
- } else {
98
- tableColumns.push({ title: item.columnGroupName, align: "center", children: [column] });
99
- }
100
- } else {
101
- tableColumns.push(column);
102
- }
103
- }
104
- let title1 = translate("${" + item.title + "}");
105
- column["title"] = item.tip ? <>{title1}<Tooltip placement="top" title={item.tip}>
106
- <Button type={'text'} size={'small'} disabled={true} icon={<QuestionCircleOutlined />} /></Tooltip> </> : title1;
107
- column["dataIndex"] = item.id;
108
- column["key"] = item.id;
109
- if (item["colWidth"]) column["width"] = item["colWidth"];
110
- if (item["statColType"]) column["statColType"] = item["statColType"];
111
- if (item["aggFunc"]) column["cal"] = item["aggFunc"];
112
- if (item["order"]) column["order"] = Number(item["order"]);
113
- // column['ellipsis']= true;
114
- s++;
115
- let itemType = SupportInputTypes.getSupportControlType(item);
116
- if (s < 12 && item.title != "操作" && item.title != "序号") {
117
- if (hiddenColIds.includes("10000")) {
118
- const order = this.handleColumnOrder(column["dataIndex"], sortColumns);
119
- if (item.sortable) {
120
- TableUnits.sort(column, itemType, order);
121
- } else if (item.pageSortable) {
122
- column["sorter"] = (a, b) => {
123
- let aVal = a[column["dataIndex"]];
124
- let bVal = b[column["dataIndex"]];
125
- if (aVal?.includes["@R@"]) aVal = aVal.split("@R@")[1];
126
- if (bVal?.includes["@R@"]) bVal = bVal.split("@R@")[1];
127
- // 判断是否为字符串数字
128
- const numA = Number(aVal);
129
- const numB = Number(bVal);
130
- const isNumeric = aVal && bVal && !isNaN(numA) && !isNaN(numB);
131
- return isNumeric ? numA - numB : aVal.localeCompare(bVal);
132
- };
133
- column["showSorterTooltip"] = false;
134
- column["sortIcon"] = ({ sortOrder }) =>
135
- <ThemeToken>
136
- {(token) => <span className="pageSortable" >
137
- <UpSquareFilled className="ascend" style={sortOrder === 'ascend' ? { color: token.colorPrimary } : {}} />
138
- <DownSquareFilled className="descend" style={sortOrder === 'descend' ? { color: token.colorPrimary } : {}} />
139
- </span>}
140
- </ThemeToken>
141
- }
142
- }
143
- }
144
- //特殊列处理
145
- //序号
146
- if (item.title === "序号") {
147
- column["width"] = item.colWidth ? item.colWidth : 50;
148
- column["title"] = translate("${序号}");
149
- column["align"] = item.valueAlign ? item.valueAlign : "center";
150
- column["render"] = (text, record, index) => <label>{index + 1}</label>;
151
- item["sorter"] = undefined;
152
- } else if (item.id == "10000") {
153
- this.setSortProps(column, item, translate);
154
- } else if (item.id == "20000") {
155
- this.setHiddenRecordOpt(column, hiddenRowCodes, unHiden, onHide, translate);
156
- } else if (item.title === "操作" && props.operatable) {
157
- column["操作"] = "1";
158
- column["fixed"] = "right";
159
- column["align"] = "left";
160
- column["width"] = item.colWidth ? item.colWidth : 160;
161
- column["className"] = "opsColumn";
162
- column["title"] = <>{translate("${操作}")}</>;
163
- column["render"] = (text, record) => this.renderAction(props, record);
164
- } else {
165
- currentDataColIndex++;
166
- column["className"] = "opsColumn";
167
- // column["title"] = item.tip? <>{title1}<Tooltip placement="top" title={item.tip}>
168
- // <Button icon={<QuestionCircleOutlined />} /></Tooltip> </>: title1;
169
- column["width"] = item.colWidth ? item.colWidth : 160;
170
- column["ellipsis"] = { showTitle: true };
171
- column["align"] = item.valueAlign ? item.valueAlign : "left";
172
- if (
173
- ltmplConfig.leftFixedCols &&
174
- ltmplConfig.leftFixedCols >= currentDataColIndex
175
- ) {
176
- column["fixed"] = "left";
177
- } else {
178
- column["fixed"] = item.colFixed
179
- ? item.colFixed == "right"
180
- ? "right"
181
- : "left"
182
- : false;
183
- }
184
- column["render"] = (text, record) => {
185
- let detailParams = undefined;
186
- if (showView && primaryColumn?.id === item.id) { // 首字段增加主题色显示/查看详情功能
187
- if (buttons.includes("detail")) {
188
- const classView = ltmplConfig.classViewConfigs.find(r => ActionUtils.isShow(r.preposes, [record], undefined));
189
- if (classView) {
190
- detailParams = { code: record.code, dtmplSourceId: classView.id };
191
- } else {
192
- const isdetail = ActionUtils.isShow(ltmplConfig.buttonViewAction?.preposes, [record], undefined);
193
- detailParams = isdetail ? { code: record.code } : undefined;
194
- }
195
- } else if (buttons.includes("customDetail")) {
196
- detailParams = { code: record.code, toCustomPage: true };
197
- }
198
- }
199
-
200
- // 首字段渲染
201
- const renderPrimaryColumn = <div className="column-table-primary">
202
- <div className="primary-column" onClick={() => detailParams && showView(detailParams)}>
203
- <ViewControl
204
- serverKey={serverKey}
205
- fieldConfig={item}
206
- value={record[item.id]}
207
- holderType="table"
208
- />
209
- </div>
210
- {primaryColumnLabel?.id ?
211
- <div className="primary-column-label" >
212
- <ViewControl
213
- serverKey={serverKey}
214
- fieldConfig={primaryColumnLabel}
215
- value={record[primaryColumnLabel.id]}
216
- holderType="table"
217
- />
218
- </div> :
219
- ""}
220
- {/* 首字段操作按钮 */}
221
- {this.renderColumnAction(props, record, "primary")}
222
- </div>;
223
- // 次字段渲染
224
- const renderSecondColumn = <div className="column-table-second">
225
- <ViewControl
226
- serverKey={serverKey}
227
- fieldConfig={item}
228
- value={record[item.id]}
229
- holderType="table"
230
- />
231
- {this.renderColumnAction(props, record, "secondary")}
232
- </div>;
233
-
234
- return (editings.includes(record.code) || buttons.includes("multiRowEdit") ?
235
- <FormItem style={{ margin: 0 }}
236
- name={record.code + "_" + item.id}
237
- key={record.code + "_" + item.id}
238
- rules={TmplConfigAnalysis.getRules(item, translate)}
239
- initialValue={record[item.id]}>
240
- <EntryControl
241
- serverKey={serverKey}
242
- fieldConfig={{ ...item }}
243
- value={record[item.id]}
244
- editStatus={record.editStatus}
245
- />
246
- </FormItem> :
247
- <div className={record['dataType'] ? record['dataType'] === "小计" ? "xiaoji" : 'heji' : ""}>
248
- {primaryColumn?.id === item.id ? renderPrimaryColumn : secondColumn?.id === item.id ? renderSecondColumn :
249
- <ViewControl
250
- serverKey={serverKey}
251
- fieldConfig={item}
252
- value={record[item.id]}
253
- holderType="table"
254
- />
255
- }
256
- </div>
257
- );
258
- };
259
- }
260
- // 表头列搜索
261
- if (item.appendCriteria) {
262
- const criteria = item.appendCriteria;
263
- let searchVal = criteriaData?.[`c_${criteria.id}`];
264
- column["filterDropdown"] = ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (<div style={{ padding: 8 }} onKeyDown={(e) => e.stopPropagation()}>
265
- <EntryControl
266
- serverKey={serverKey}
267
- mainCode={mainCode}
268
- value={searchVal}
269
- fieldConfig={criteria}
270
- onChange={(val) => {
271
- const value = val?.target ? val.target.value : val;
272
- setSelectedKeys(value ? [value] : []);
273
- searchVal = value;
274
- }}
275
- />
276
- <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center", paddingTop: 8 }}>
277
- <Button type="text" size="small" onClick={() => {
278
- clearFilters();
279
- searchVal = undefined;
280
- }}>{translate("${重置}")}</Button>
281
- <Button onClick={() => {
282
- actTableDoSearch({ [`c_${criteria.id}`]: selectedKeys[0] });
283
- confirm();
284
- }} type="primary" size="small">{translate("${确定}")}</Button>
285
- </div>
286
- </div>);
287
- column["filteredValue"] = searchVal || undefined;
288
- }
289
- if (columnResize?.[item.id]) { // 本地缓存存在列宽配置
290
- column["width"] = columnResize[item.id];
291
- }
292
- });
293
- return tableColumns;
294
- },
295
-
296
- setSortProps(column: object, item: ColumnConfig, translate) {
297
- column["title"] = (
298
- <Tooltip title={translate("${拖拽排序}")}>
299
- {translate("${" + item.title + "}")}
300
- </Tooltip>
301
- );
302
- column["width"] = 40;
303
- column["dataIndex"] = item.id;
304
- column["key"] = item.id;
305
- column["className"] = "drag-visible";
306
- column["render"] = () => <DragHandle />;
307
- },
308
- setHiddenRecordOpt(column: object, hiddenRowCodes, unHiden, onHide, translate) {
309
- //隐藏
310
- column["align"] = "center";
311
- column["width"] = 40;
312
- column["title"] = (
313
- <>
314
- {hiddenRowCodes.length > 0 ? (
315
- <Tooltip title={translate("${取消隐藏}")}>
316
- <Button
317
- style={{ marginRight: "0px" }}
318
- size="small"
319
- shape={"circle"}
320
- icon={<EyeOutlined />}
321
- type={"text"}
322
- onClick={() => unHiden()}
323
- ></Button>
324
- </Tooltip>
325
- ) : (
326
- ""
327
- )}
328
- </>
329
- );
330
- column["render"] = (text, record) => (
331
- <Tooltip title={translate("${隐藏}")}>
332
- {" "}
333
- <Button
334
- style={{ marginRight: "0px" }}
335
- icon={<EyeInvisibleOutlined />}
336
- type="dashed"
337
- size="small"
338
- onClick={() => onHide(record.code)}
339
- ></Button>
340
- </Tooltip>
341
- );
342
- },
343
-
344
- buildReportTableColumns(props: ReportColumnBuilderProps) {
345
- const {
346
- columnConfigs, translate, leftFixedCols, hiddenColIds, hiddenRowCodes, unHiden, onHide
347
- } = props;
348
-
349
- let tableColumns = [];
350
- let s = 0;
351
- let colConfigs = columnConfigs;
352
-
353
- let currentDataColIndex = 0;
354
-
355
- colConfigs.forEach((item) => {
356
- if (item.hidden || (hiddenColIds && hiddenColIds.includes(item.originalId))) {
357
- return
358
- }
359
- let column = {};
360
- if (item.upperColumnTitle) {
361
- let parent;
362
- tableColumns.forEach(t => {
363
- if (t.title == item.upperColumnTitle && t.children) {
364
- parent = t;
365
- return
366
- }
367
- })
368
- if (parent) {
369
- parent.children.push(column);
370
- } else {
371
- tableColumns.push({ title: item.upperColumnTitle, children: [column] })
372
- }
373
- } else {
374
- tableColumns.push(column);
375
- }
376
-
377
- let title1 = translate("${" + item.title + "}");
378
- column["title"] = item.tip ? <>{title1}<Tooltip placement="top" title={item.tip}>
379
- <Button type={'text'} size={'small'} disabled={true} icon={<QuestionCircleOutlined />} /></Tooltip> </> : title1;
380
- column["dataIndex"] = item.id;
381
- column["key"] = item.id;
382
- if (item["colWidth"]) column["width"] = item["colWidth"];
383
- if (item["order"]) column["order"] = Number(item["order"]);
384
- // column['ellipsis']= true;
385
- s++;
386
-
387
- //特殊列处理
388
- //序号
389
- if (item.title === "序号") {
390
- column["width"] = item.colWidth ? item.colWidth : 50;
391
- column["title"] = translate("${序号}");
392
- column["align"] = item.valueAlign ? item.valueAlign : "center";
393
- column["render"] = (text, record, index) =>
394
- <label className={record['dataType'] ? record['dataType'] == "小计" ? "xiaoji" : 'heji' : ""}>{record[item.id]}</label>;
395
- item["sorter"] = undefined;
396
- } else if (item.id == "10000") {
397
- this.setSortProps(column, item, translate);
398
- } else if (item.id == "20000") {
399
- this.setHiddenRecordOpt(column, hiddenRowCodes, unHiden, onHide, translate);
400
- } else {
401
- currentDataColIndex++;
402
- column["className"] = "opsColumn";
403
- //column["title"] = translate("${" + item.title + "}");
404
- column["width"] = item.colWidth ? item.colWidth : 160;
405
- column["ellipsis"] = { showTitle: true };
406
- column["align"] = item.valueAlign ? item.valueAlign : "left";
407
- if (
408
- leftFixedCols &&
409
- leftFixedCols >= currentDataColIndex
410
- ) {
411
- column["fixed"] = "left";
412
- } else {
413
- column["fixed"] = item.colFixed
414
- ? item.colFixed == "right"
415
- ? "right"
416
- : "left"
417
- : false;
418
- }
419
- column["render"] = (text, record) => {
420
- return (
421
- <div className={record['dataType'] ? record['dataType'] == "小计" ? "xiaoji" : 'heji' : ""}>
422
- <ViewControl
423
- // serverKey={serverKey}
424
- fieldConfig={item}
425
- value={record[item.id]}
426
- holderType={"table"}
427
- /></div>
428
- );
429
- };
430
- }
431
- });
432
-
433
- // console.log("columns", tableColumns);
434
-
435
- return tableColumns;
436
- },
437
-
438
- handleColumnOrder(columnId, sortColumns) {
439
- //const sortColumns = this.props.criteriaData["sortColIds"];
440
-
441
- if (!Array.isArray(sortColumns)) return undefined;
442
-
443
- for (const column of sortColumns) {
444
- const [key, sort] = column.split("_");
445
-
446
- if (key === columnId) {
447
- if (sort === "asc") return "ascend";
448
- if (sort === "desc") return "descend";
449
- continue;
450
- }
451
- }
452
- return undefined;
453
- },
454
- renderColumnAction(props: ActionRenderProps, record: DtmplData, type: "primary" | "secondary") { // 主列/次列悬浮按钮渲染
455
- const { ltmplConfig, serverKey, doRowAction, doRAction, doCustomButton, translate, readOnly } = props;
456
- const { primaryColumnButtons, secondColumnButtons } = ltmplConfig;
457
- const temButtons = type === "primary" ? primaryColumnButtons : secondColumnButtons;
458
- if (readOnly || !temButtons?.length) {
459
- return null;
460
- }
461
- const actionButtons: any[] = temButtons.map(item => {
462
- switch (item.functionType) {
463
- case "action": // 操作按钮
464
- if (ActionUtils.isShow(item.preposes, [record], undefined)) {
465
- return <Action
466
- serverKey={serverKey}
467
- iconType={"icon"}
468
- key={item.id}
469
- data={[record]}
470
- actionConfig={item}
471
- doAction={doRowAction}
472
- buttonSize={"small"}
473
- serial={1}
474
- />;
475
- } else {
476
- return undefined;
477
- }
478
- case "raction": // 关系按钮
479
- if (ActionUtils.isShow(item?.preposes, [record], undefined)) {
480
- return <Button
481
- key={item.id}
482
- size="small"
483
- type="dashed"
484
- onClick={() => doRAction(item.id, record.code)}
485
- >
486
- {item.icon ?
487
- <Tooltip placement="top" title={translate("${" + item.title + "}")}>
488
- <Icon type={item.icon} />
489
- </Tooltip>
490
- : translate("${" + item.title + "}")}
491
- </Button>;
492
- } else {
493
- return undefined;
494
- }
495
- case "customButton": // 自由按钮
496
- if (ActionUtils.isShow(item.preposes, [record], undefined)) {
497
- return <Button
498
- key={item.id}
499
- size="small"
500
- type={item.buttonType || "dashed"}
501
- onClick={() => doCustomButton(item as unknown as CustomButton, [record])}
502
- >
503
- {item.icon ?
504
- <Tooltip placement="top" title={translate("${" + item.title + "}")}>
505
- <Icon type={item.icon} />
506
- </Tooltip>
507
- : translate("${" + item.title + "}")}
508
- </Button>
509
- } else {
510
- return undefined;
511
- };
512
- case "fileExport": // 文件导出
513
- if (ActionUtils.isShow(item.preposes, [record], undefined)) {
514
- return <SelectCodeExport
515
- serverKey={serverKey}
516
- hiddenType="disabled"
517
- codes={[record.code]}
518
- key={item.id}
519
- fileExport={item}
520
- disabled={false}
521
- />;
522
- } else {
523
- return undefined;
524
- }
525
- case "customExport": // 自定义导出
526
- return undefined;
527
- case "cQuery": // 关联查询
528
- if (ActionUtils.isShow(item.preposes, [record], undefined)) {
529
- const config: CQueryConfig = item;
530
- return <CquickButton
531
- serverKey={serverKey}
532
- key={config.id}
533
- size={"small"}
534
- pageType={"drawer"}
535
- cQueryConfig={config}
536
- mainCode={config.mainCodeColId ? record[config.mainCodeColId] : record.code}
537
- />;
538
- } else {
539
- return undefined;
540
- }
541
- default:
542
- return undefined;
543
- }
544
- }).filter(Boolean);
545
- return actionButtons?.length ? <div className="column-action"><Space wrap size={4}>{actionButtons}</Space></div> : undefined;
546
- },
547
- renderAction(props: ActionRenderProps, record: DtmplData) { // 操作列按钮渲染
548
- const { ltmplConfig, showView,
549
- doEdit,
550
- doRAction,
551
- customEditable,
552
- serverKey,
553
- readOnly,
554
- sourceId, translate, doCustomButton, doRowJump, blockMenuTreeDrawerOpen,
555
- doRowAction, doDeleteByCode, editRowEdit, editings, cancelRowEdit, saveRowData, doDelModalOpen,
556
- doView2D, doEdit2D
557
- } = props;
558
- const { buttons, builtInButtons, defShowRowActionCount, strongDeleteConfirmText, edit2DBtnTitle, view2DBtnTitle, deleteBtnTitle } = ltmplConfig;
559
-
560
- let actionButtons: any[] = [];
561
-
562
- const isShowDetail = buttons.includes("detail") && showView && ActionUtils.isShow(ltmplConfig.buttonViewAction?.preposes, [record], undefined);
563
- const isShowCustomDetail = buttons.includes("customDetail") && showView && ActionUtils.isShow(ltmplConfig.buttonViewAction?.preposes, [record], undefined);
564
-
565
- if (isShowCustomDetail) { // 自定义详情
566
- actionButtons.push(<Button
567
- size="small"
568
- type="primary"
569
- icon={<AlignLeftOutlined />}
570
- onClick={() => showView({ code: record.code, toCustomPage: true, })}
571
- />)
572
- }
573
-
574
- if (isShowDetail) { // 默认详情
575
- actionButtons.push(<ViewButton
576
- showView={showView}
577
- data={record}
578
- ltmplConfig={ltmplConfig}
579
- buttonType={isShowCustomDetail ? "default" : "primary"} />);
580
- }
581
-
582
- if (buttons.includes("dtmplEdit") && doEdit && !readOnly) {
583
- (
584
- actionButtons.push(<EditButton
585
- doEdit={doEdit}
586
- data={record}
587
- ltmplConfig={ltmplConfig}
588
- ></EditButton>)
589
- )
590
- };
591
-
592
- // 2D图编辑
593
- if (buttons.includes("edit2D") && doEdit2D && !readOnly) {
594
- actionButtons.push((!edit2DBtnTitle || edit2DBtnTitle?.length < 4) ? <Button size="small" onClick={() => doEdit2D(record.code)}>{edit2DBtnTitle || <SettingOutlined />}</Button> :
595
- <Tooltip title={edit2DBtnTitle}><Button size="small" onClick={() => doEdit2D(record.code)} icon={<SettingOutlined />} /></Tooltip>)
596
- }
597
-
598
- // 2D图查看
599
- if (buttons.includes("view2D") && doView2D && !readOnly) {
600
- actionButtons.push((!view2DBtnTitle || view2DBtnTitle?.length < 4) ? <Button size="small" onClick={() => doView2D(record.code)}>{ltmplConfig.view2DBtnTitle || <PlaySquareOutlined />}</Button> :
601
- <Tooltip title={edit2DBtnTitle}><Button size="small" onClick={() => doView2D(record.code)} icon={<PlaySquareOutlined />} /></Tooltip>)
602
- }
603
-
604
- // 行内编辑
605
- if (buttons.includes("rowEdit") && !buttons.includes("multiRowEdit")) {
606
- actionButtons.push(<InlineEditButton
607
- editings={editings}
608
- editRowEdit={editRowEdit}
609
- cancelRowEdit={cancelRowEdit}
610
- saveRowData={saveRowData}
611
- data={record}
612
- />);
613
- }
614
-
615
- if (builtInButtons?.includes("blockAuthMenuTree") && !readOnly) {
616
- actionButtons.push(<Button
617
- size="small"
618
- type="dashed"
619
- icon={
620
- <KeyOutlined
621
- rotate={180}
622
- style={{ color: "#f5222d", marginRight: "4px" }}
623
- />
624
- }
625
- onClick={() => blockMenuTreeDrawerOpen(record)
626
- }
627
- ></Button>)
628
- }
629
-
630
- if ((buttons.includes("dtmplCustomEdit") || customEditable) &&
631
- doEdit &&
632
- !readOnly &&
633
- ActionUtils.isShow(
634
- ltmplConfig.buttonEditAction?.preposes,
635
- [record],
636
- undefined
637
- )) {
638
- actionButtons.push(<Button
639
- size="small"
640
- type="dashed"
641
- icon={<FormOutlined />}
642
- onClick={() =>
643
- doEdit({
644
- code: record.code,
645
- mode: "update",
646
- toCustomPage: true,
647
- })
648
- }
649
- ></Button>)
650
- }
651
- if (buttons.includes("copy") && doEdit && !readOnly) {
652
- actionButtons.push(<Tooltip title={translate("${复制}")}>
653
- <Button
654
- size="small"
655
- type="dashed"
656
- icon={<CopyOutlined />}
657
- onClick={async () => {
658
- //先复制
659
- let toCustomPage = false;
660
- if (buttons.includes("dtmplCustomEdit") || customEditable) {
661
- toCustomPage = true;
662
- }
663
- let code = await HcserviceV3.doCopy(
664
- serverKey,
665
- sourceId,
666
- record.code
667
- );
668
- if (code) {
669
- doEdit({ code, mode: "update", toCustomPage });
670
- }
671
- }}
672
- ></Button>
673
- </Tooltip>)
674
- }
675
-
676
- if (ltmplConfig.rowCustomButtons) {
677
- ltmplConfig.rowCustomButtons.map((customButton) => {
678
- if (ActionUtils.isShow(
679
- customButton.preposes,
680
- [record],
681
- undefined
682
- )) {
683
- actionButtons.push(
684
- <Button
685
- key={customButton.id}
686
- size="small"
687
- type={
688
- customButton.buttonType
689
- ? customButton.buttonType
690
- : "dashed"
691
- }
692
- onClick={() =>
693
- doCustomButton(customButton, [record])
694
- }
695
- >
696
- {customButton.icon ?
697
- <Tooltip placement="top" title={translate("${" + customButton.title + "}")}>
698
- <Icon type={customButton.icon}></Icon>
699
- </Tooltip>
700
- : translate("${" + customButton.title + "}")}
701
- </Button>
702
- )
703
- };
704
- })
705
- }
706
- if (ltmplConfig.ractions && !readOnly) {
707
- ltmplConfig.ractions.map((raction) => {
708
- if (ActionUtils.isShow(
709
- raction?.preposes,
710
- [record],
711
- undefined
712
- )) {
713
- actionButtons.push(
714
- <Button
715
- key={raction.id}
716
- size="small"
717
- type="dashed"
718
- onClick={() => doRAction(raction.id, record.code)}
719
- >
720
- {raction.icon ?
721
- <Tooltip placement="top" title={translate("${" + raction.title + "}")}>
722
- <Icon type={raction.icon}></Icon>
723
- </Tooltip>
724
- : translate("${" + raction.title + "}")}
725
- </Button>
726
- );
727
- }
728
- })
729
- }
730
-
731
- if (ltmplConfig.rowActions &&
732
- !readOnly &&
733
- ltmplConfig.rowActions.length > 0) {
734
- ltmplConfig.rowActions.map((action) => {
735
- actionButtons.push(
736
- <Action
737
- serverKey={serverKey}
738
- iconType={"icon"}
739
- key={action.id}
740
- data={[record]}
741
- actionConfig={action}
742
- doAction={doRowAction}
743
- buttonSize={"small"}
744
- serial={1}
745
- ></Action>
746
- );
747
- })
748
- }
749
-
750
- if (ltmplConfig.rowJumps &&
751
- ltmplConfig.rowJumps.length > 0 &&
752
- !readOnly) {
753
- ltmplConfig.rowJumps.map((jump) => {
754
- if (ActionUtils.isShow(
755
- jump.preposes,
756
- [record],
757
- undefined
758
- )) {
759
- actionButtons.push(
760
- <Button
761
- key={jump.id}
762
- size="small"
763
- type="dashed"
764
- onClick={() => doRowJump(jump, record)}
765
- >
766
- {jump.icon ?
767
- <Tooltip placement="top" title={translate("${" + jump.title + "}")}>
768
- <Icon type={jump.icon}></Icon>
769
- </Tooltip>
770
- : translate("${" + jump.title + "}")}
771
- </Button>
772
- )
773
- };
774
- })
775
- }
776
- if (ltmplConfig.rowCQuerys &&
777
- ltmplConfig.rowCQuerys.length > 0 &&
778
- !readOnly
779
- ) {
780
- ltmplConfig.rowCQuerys.map((cquery) => {
781
- if (ActionUtils.isShow(
782
- cquery.preposes,
783
- [record],
784
- undefined
785
- )) {
786
- actionButtons.push(
787
- <CquickButton
788
- serverKey={serverKey}
789
- key={cquery.id}
790
- size={"small"}
791
- pageType={"drawer"}
792
- cQueryConfig={cquery}
793
- mainCode={
794
- cquery.mainCodeColId
795
- ? record[cquery.mainCodeColId]
796
- : record.code
797
- }
798
- />
799
- )
800
- };
801
- })
802
- }
803
- if (ltmplConfig.rowFileButtons &&
804
- ltmplConfig.rowFileButtons.length > 0) {
805
- ltmplConfig.rowFileButtons.map((openFileButton) => {
806
- let v = record[openFileButton.fieldId];
807
- if (v) {
808
- if (v instanceof Array) {
809
- v = v[0];
810
- }
811
- if (v.includes("@R@") > 0) {
812
- v = v.split("@R@")[1];
813
- }
814
- actionButtons.push(
815
- <NewinFileView
816
- title={openFileButton.title}
817
- filePath={HcserviceV3.toFilePath(v, serverKey)}
818
- serverKey={serverKey}
819
- key={openFileButton.id}
820
- //size={"small"}
821
- />
822
- );
823
- }
824
- })
825
- }
826
- if (buttons.includes("singleDelete") &&
827
- !readOnly &&
828
- ActionUtils.isShow(
829
- ltmplConfig.buttonDeleteAction?.preposes,
830
- [record],
831
- undefined
832
- )) {
833
- actionButtons.push(
834
- strongDeleteConfirmText ?
835
- ((!deleteBtnTitle || deleteBtnTitle?.length < 4) ?
836
- <Button size="small" type="dashed" danger onClick={() => doDelModalOpen(record)}>
837
- {deleteBtnTitle || <DeleteOutlined />}
838
- </Button> : <Tooltip title={deleteBtnTitle}>
839
- <Button size="small" type="dashed" danger onClick={() => doDelModalOpen(record)} icon={<DeleteOutlined />} />
840
- </Tooltip>)
841
- :
842
- <Popconfirm
843
- placement="rightBottom"
844
- title={translate("${确定要[删除]此数据吗}?")}
845
- onConfirm={() => doDeleteByCode(record)}
846
- okText={translate("${确定}")}
847
- cancelText={translate("${取消}")}
848
- okType={"danger"}
849
- >
850
- {(!deleteBtnTitle || deleteBtnTitle?.length < 4) ?
851
- <Button size="small" type="dashed" danger >{deleteBtnTitle || <DeleteOutlined />}</Button> :
852
- <Tooltip title={deleteBtnTitle}><Button size="small" type="dashed" danger icon={<DeleteOutlined />} /></Tooltip>}
853
- </Popconfirm>
854
- )
855
- }
856
- let showButtons = [];
857
- if (defShowRowActionCount <= 0 || defShowRowActionCount >= actionButtons.length) {
858
- showButtons = actionButtons
859
- } else {
860
- showButtons = actionButtons.slice(0, defShowRowActionCount)
861
- showButtons.push(
862
- <Popover content={<Space wrap>
863
- {actionButtons.slice(defShowRowActionCount, actionButtons.length)}
864
- </Space>} title={"更多操作"} trigger="hover">
865
- <Button size={"small"} icon={<EllipsisOutlined />} shape="circle" ></Button>
866
- </Popover>
867
- );
868
- }
869
- return <Space size={[0, 4]} wrap>
870
- {showButtons}
871
- </Space>
872
- }
873
-
874
- }
875
- const DragHandle = SortableHandle(() => (
876
- <MenuOutlined style={{ cursor: "grab", color: "#999" }} />
1
+ import React from "react";
2
+ import { ActionRenderProps, ColumnConfig, DtmplData, LtmplConfig, FieldConfig, CustomButton, CQueryConfig } from "../../tmpl/interface";
3
+ import TableUnits from "../table-util";
4
+ import SupportInputTypes from "../../tmpl/control-type-supportor";
5
+ import { Button, Popconfirm, Popover, Space, Tooltip, Form as AntdForm, theme, message } from "antd";
6
+ import { SortableHandle } from "react-sortable-hoc";
7
+ import {
8
+ AlignLeftOutlined, CopyOutlined, DeleteOutlined,
9
+ EllipsisOutlined,
10
+ EyeInvisibleOutlined,
11
+ EyeOutlined,
12
+ FormOutlined,
13
+ KeyOutlined,
14
+ MenuOutlined, QuestionCircleOutlined, PlaySquareOutlined,
15
+ SettingOutlined, UpSquareFilled, DownSquareFilled
16
+ } from "@ant-design/icons";
17
+ import ActionUtils from "../../controls/action/utils";
18
+ import ViewButton from "../../detail/button/view-button";
19
+ import EditButton from "../../detail/button/edit-button";
20
+ import InlineEditButton from "../../detail/button/inline-edit-button";
21
+ import HcserviceV3 from "../../tmpl/hcservice-v3";
22
+ import Action from "../../controls/action";
23
+ import CquickButton from "../../controls/cquery/cquick-button";
24
+ import { ViewControl } from "../../index";
25
+ import NewinFileView from "../../controls/file-view/newin-file-view";
26
+ import { EntryControl } from "../../index";
27
+ import TmplConfigAnalysis from "../../tmpl/tmpl-config-analysis";
28
+ import Icon from "../../icon/aliIcon";
29
+ import SelectCodeExport from "../../controls/file-export/select-code-export";
30
+ import "./index.less";
31
+
32
+ const FormItem = AntdForm.Item;
33
+
34
+ // 负责提取 token
35
+ const ThemeToken = (props) => {
36
+ const { token } = theme.useToken();
37
+ return props.children(token); // 使用 render props 模式
38
+ };
39
+
40
+ interface ColumnBuilderProps extends ActionRenderProps {
41
+ ltmplConfig: LtmplConfig,
42
+ hiddenColIds?: string[],
43
+ hiddenRowCodes?: string[],
44
+ sortedColConfigs?: ColumnConfig[],
45
+ unHiden?: () => any,
46
+ onHide?: (code: string) => any,
47
+ operatable?: boolean,
48
+ mainCode?: string,
49
+ criteriaData?: object,
50
+ actTableDoSearch?: (data: object) => void,
51
+ columnResize?: { [key: string]: number }
52
+ }
53
+
54
+ interface ReportColumnBuilderProps {
55
+ columnConfigs: ColumnConfig[],
56
+ hiddenColIds?: string[],
57
+ translate: (...strs: string[]) => string;
58
+ leftFixedCols: number,
59
+ hiddenRowCodes?: string[],
60
+ unHiden?: () => any,
61
+ onHide?: (code: string) => any,
62
+ }
63
+
64
+
65
+ export default {
66
+
67
+ buildTableColumns(props: ColumnBuilderProps) {
68
+ const {
69
+ ltmplConfig,
70
+ hiddenColIds,
71
+ hiddenRowCodes,
72
+ sortedColConfigs, unHiden,
73
+ onHide, translate,
74
+ sortColumns, serverKey,
75
+ editings, mainCode, criteriaData, actTableDoSearch, showView,
76
+ columnResize
77
+ } = props;
78
+
79
+ const { primaryColumn, secondColumn, primaryColumnLabel } = ltmplConfig.extDisplayConfig || {};
80
+
81
+ let tableColumns = [];
82
+ let s = 0;
83
+ let colConfigs = sortedColConfigs ? sortedColConfigs : ltmplConfig.columns;
84
+ let buttons = ltmplConfig.buttons || [];
85
+
86
+ let currentDataColIndex = 0;
87
+
88
+ colConfigs.forEach((item) => {
89
+ let column = {};
90
+ if (hiddenColIds && hiddenColIds.includes(item.originalId)) {
91
+ return
92
+ } else {
93
+ if (item.columnGroupName) { // 表头分组功能实现
94
+ const groupIndex = tableColumns.findIndex(r => r.children?.length && r.title === item.columnGroupName);
95
+ if (groupIndex !== -1) {
96
+ tableColumns[groupIndex].children.push(column);
97
+ } else {
98
+ tableColumns.push({ title: item.columnGroupName, align: "center", children: [column] });
99
+ }
100
+ } else {
101
+ tableColumns.push(column);
102
+ }
103
+ }
104
+ let title1 = translate("${" + item.title + "}");
105
+ column["title"] = item.tip ? <>{title1}<Tooltip placement="top" title={item.tip}>
106
+ <Button type={'text'} size={'small'} disabled={true} icon={<QuestionCircleOutlined />} /></Tooltip> </> : title1;
107
+ column["dataIndex"] = item.id;
108
+ column["key"] = item.id;
109
+ if (item["colWidth"]) column["width"] = item["colWidth"];
110
+ if (item["statColType"]) column["statColType"] = item["statColType"];
111
+ if (item["aggFunc"]) column["cal"] = item["aggFunc"];
112
+ if (item["order"]) column["order"] = Number(item["order"]);
113
+ // column['ellipsis']= true;
114
+ s++;
115
+ let itemType = SupportInputTypes.getSupportControlType(item);
116
+ if (s < 12 && item.title != "操作" && item.title != "序号") {
117
+ if (hiddenColIds.includes("10000")) {
118
+ const order = this.handleColumnOrder(column["dataIndex"], sortColumns);
119
+ if (item.sortable) {
120
+ TableUnits.sort(column, itemType, order);
121
+ } else if (item.pageSortable) {
122
+ column["sorter"] = (a, b) => {
123
+ let aVal = a[column["dataIndex"]];
124
+ let bVal = b[column["dataIndex"]];
125
+ if (aVal?.includes["@R@"]) aVal = aVal.split("@R@")[1];
126
+ if (bVal?.includes["@R@"]) bVal = bVal.split("@R@")[1];
127
+ // 判断是否为字符串数字
128
+ const numA = Number(aVal);
129
+ const numB = Number(bVal);
130
+ const isNumeric = aVal && bVal && !isNaN(numA) && !isNaN(numB);
131
+ return isNumeric ? numA - numB : aVal.localeCompare(bVal);
132
+ };
133
+ column["showSorterTooltip"] = false;
134
+ column["sortIcon"] = ({ sortOrder }) =>
135
+ <ThemeToken>
136
+ {(token) => <span className="pageSortable" >
137
+ <UpSquareFilled className="ascend" style={sortOrder === 'ascend' ? { color: token.colorPrimary } : {}} />
138
+ <DownSquareFilled className="descend" style={sortOrder === 'descend' ? { color: token.colorPrimary } : {}} />
139
+ </span>}
140
+ </ThemeToken>
141
+ }
142
+ }
143
+ }
144
+ //特殊列处理
145
+ //序号
146
+ if (item.title === "序号") {
147
+ column["width"] = item.colWidth ? item.colWidth : 50;
148
+ column["title"] = translate("${序号}");
149
+ column["align"] = item.valueAlign ? item.valueAlign : "center";
150
+ column["render"] = (text, record, index) => <label>{index + 1}</label>;
151
+ item["sorter"] = undefined;
152
+ } else if (item.id == "10000") {
153
+ this.setSortProps(column, item, translate);
154
+ } else if (item.id == "20000") {
155
+ this.setHiddenRecordOpt(column, hiddenRowCodes, unHiden, onHide, translate);
156
+ } else if (item.title === "操作" && props.operatable) {
157
+ column["操作"] = "1";
158
+ column["fixed"] = "right";
159
+ column["align"] = "left";
160
+ column["width"] = item.colWidth ? item.colWidth : 160;
161
+ column["className"] = "opsColumn";
162
+ column["title"] = <>{translate("${操作}")}</>;
163
+ column["render"] = (text, record) => this.renderAction(props, record);
164
+ } else {
165
+ currentDataColIndex++;
166
+ column["className"] = "opsColumn";
167
+ // column["title"] = item.tip? <>{title1}<Tooltip placement="top" title={item.tip}>
168
+ // <Button icon={<QuestionCircleOutlined />} /></Tooltip> </>: title1;
169
+ column["width"] = item.colWidth ? item.colWidth : 160;
170
+ column["ellipsis"] = { showTitle: true };
171
+ column["align"] = item.valueAlign ? item.valueAlign : "left";
172
+ if (
173
+ ltmplConfig.leftFixedCols &&
174
+ ltmplConfig.leftFixedCols >= currentDataColIndex
175
+ ) {
176
+ column["fixed"] = "left";
177
+ } else {
178
+ column["fixed"] = item.colFixed
179
+ ? item.colFixed == "right"
180
+ ? "right"
181
+ : "left"
182
+ : false;
183
+ }
184
+ column["render"] = (text, record) => {
185
+ let detailParams = undefined;
186
+ if (showView && primaryColumn?.id === item.id) { // 首字段增加主题色显示/查看详情功能
187
+ if (buttons.includes("detail")) {
188
+ const classView = ltmplConfig.classViewConfigs.find(r => ActionUtils.isShow(r.preposes, [record], undefined));
189
+ if (classView) {
190
+ detailParams = { code: record.code, dtmplSourceId: classView.id };
191
+ } else {
192
+ const isdetail = ActionUtils.isShow(ltmplConfig.buttonViewAction?.preposes, [record], undefined);
193
+ detailParams = isdetail ? { code: record.code } : undefined;
194
+ }
195
+ } else if (buttons.includes("customDetail")) {
196
+ detailParams = { code: record.code, toCustomPage: true };
197
+ }
198
+ }
199
+
200
+ // 首字段渲染
201
+ const renderPrimaryColumn = <div className="column-table-primary">
202
+ <div className="primary-column" onClick={() => detailParams && showView(detailParams)}>
203
+ <ViewControl
204
+ serverKey={serverKey}
205
+ fieldConfig={item}
206
+ value={record[item.id]}
207
+ holderType="table"
208
+ />
209
+ </div>
210
+ {primaryColumnLabel?.id ?
211
+ <div className="primary-column-label" >
212
+ <ViewControl
213
+ serverKey={serverKey}
214
+ fieldConfig={primaryColumnLabel}
215
+ value={record[primaryColumnLabel.id]}
216
+ holderType="table"
217
+ />
218
+ </div> :
219
+ ""}
220
+ {/* 首字段操作按钮 */}
221
+ {this.renderColumnAction(props, record, "primary")}
222
+ </div>;
223
+ // 次字段渲染
224
+ const renderSecondColumn = <div className="column-table-second">
225
+ <ViewControl
226
+ serverKey={serverKey}
227
+ fieldConfig={item}
228
+ value={record[item.id]}
229
+ holderType="table"
230
+ />
231
+ {this.renderColumnAction(props, record, "secondary")}
232
+ </div>;
233
+
234
+ return (editings.includes(record.code) || buttons.includes("multiRowEdit") ?
235
+ <FormItem style={{ margin: 0 }}
236
+ name={record.code + "_" + item.id}
237
+ key={record.code + "_" + item.id}
238
+ rules={TmplConfigAnalysis.getRules(item, translate)}
239
+ initialValue={record[item.id]}>
240
+ <EntryControl
241
+ serverKey={serverKey}
242
+ fieldConfig={{ ...item }}
243
+ value={record[item.id]}
244
+ editStatus={record.editStatus}
245
+ />
246
+ </FormItem> :
247
+ <div className={record['dataType'] ? record['dataType'] === "小计" ? "xiaoji" : 'heji' : ""}>
248
+ {primaryColumn?.id === item.id ? renderPrimaryColumn : secondColumn?.id === item.id ? renderSecondColumn :
249
+ <ViewControl
250
+ serverKey={serverKey}
251
+ fieldConfig={item}
252
+ value={record[item.id]}
253
+ holderType="table"
254
+ />
255
+ }
256
+ </div>
257
+ );
258
+ };
259
+ }
260
+ // 表头列搜索
261
+ if (item.appendCriteria) {
262
+ const criteria = item.appendCriteria;
263
+ let searchVal = criteriaData?.[`c_${criteria.id}`];
264
+ column["filterDropdown"] = ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (<div style={{ padding: 8 }} onKeyDown={(e) => e.stopPropagation()}>
265
+ <EntryControl
266
+ serverKey={serverKey}
267
+ mainCode={mainCode}
268
+ value={searchVal}
269
+ fieldConfig={criteria}
270
+ onChange={(val) => {
271
+ const value = val?.target ? val.target.value : val;
272
+ setSelectedKeys(value ? [value] : []);
273
+ searchVal = value;
274
+ }}
275
+ />
276
+ <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center", paddingTop: 8 }}>
277
+ <Button type="text" size="small" onClick={() => {
278
+ clearFilters();
279
+ searchVal = undefined;
280
+ }}>{translate("${重置}")}</Button>
281
+ <Button onClick={() => {
282
+ actTableDoSearch({ [`c_${criteria.id}`]: selectedKeys[0] });
283
+ confirm();
284
+ }} type="primary" size="small">{translate("${确定}")}</Button>
285
+ </div>
286
+ </div>);
287
+ column["filteredValue"] = searchVal || undefined;
288
+ }
289
+ if (columnResize?.[item.id]) { // 本地缓存存在列宽配置
290
+ column["width"] = columnResize[item.id];
291
+ }
292
+ });
293
+ return tableColumns;
294
+ },
295
+
296
+ setSortProps(column: object, item: ColumnConfig, translate) {
297
+ column["title"] = (
298
+ <Tooltip title={translate("${拖拽排序}")}>
299
+ {translate("${" + item.title + "}")}
300
+ </Tooltip>
301
+ );
302
+ column["width"] = 40;
303
+ column["dataIndex"] = item.id;
304
+ column["key"] = item.id;
305
+ column["className"] = "drag-visible";
306
+ column["render"] = () => <DragHandle />;
307
+ },
308
+ setHiddenRecordOpt(column: object, hiddenRowCodes, unHiden, onHide, translate) {
309
+ //隐藏
310
+ column["align"] = "center";
311
+ column["width"] = 40;
312
+ column["title"] = (
313
+ <>
314
+ {hiddenRowCodes.length > 0 ? (
315
+ <Tooltip title={translate("${取消隐藏}")}>
316
+ <Button
317
+ style={{ marginRight: "0px" }}
318
+ size="small"
319
+ shape={"circle"}
320
+ icon={<EyeOutlined />}
321
+ type={"text"}
322
+ onClick={() => unHiden()}
323
+ ></Button>
324
+ </Tooltip>
325
+ ) : (
326
+ ""
327
+ )}
328
+ </>
329
+ );
330
+ column["render"] = (text, record) => (
331
+ <Tooltip title={translate("${隐藏}")}>
332
+ {" "}
333
+ <Button
334
+ style={{ marginRight: "0px" }}
335
+ icon={<EyeInvisibleOutlined />}
336
+ type="dashed"
337
+ size="small"
338
+ onClick={() => onHide(record.code)}
339
+ ></Button>
340
+ </Tooltip>
341
+ );
342
+ },
343
+
344
+ buildReportTableColumns(props: ReportColumnBuilderProps) {
345
+ const {
346
+ columnConfigs, translate, leftFixedCols, hiddenColIds, hiddenRowCodes, unHiden, onHide
347
+ } = props;
348
+
349
+ let tableColumns = [];
350
+ let s = 0;
351
+ let colConfigs = columnConfigs;
352
+
353
+ let currentDataColIndex = 0;
354
+
355
+ colConfigs.forEach((item) => {
356
+ if (item.hidden || (hiddenColIds && hiddenColIds.includes(item.originalId))) {
357
+ return
358
+ }
359
+ let column = {};
360
+ if (item.upperColumnTitle) {
361
+ let parent;
362
+ tableColumns.forEach(t => {
363
+ if (t.title == item.upperColumnTitle && t.children) {
364
+ parent = t;
365
+ return
366
+ }
367
+ })
368
+ if (parent) {
369
+ parent.children.push(column);
370
+ } else {
371
+ tableColumns.push({ title: item.upperColumnTitle, children: [column] })
372
+ }
373
+ } else {
374
+ tableColumns.push(column);
375
+ }
376
+
377
+ let title1 = translate("${" + item.title + "}");
378
+ column["title"] = item.tip ? <>{title1}<Tooltip placement="top" title={item.tip}>
379
+ <Button type={'text'} size={'small'} disabled={true} icon={<QuestionCircleOutlined />} /></Tooltip> </> : title1;
380
+ column["dataIndex"] = item.id;
381
+ column["key"] = item.id;
382
+ if (item["colWidth"]) column["width"] = item["colWidth"];
383
+ if (item["order"]) column["order"] = Number(item["order"]);
384
+ // column['ellipsis']= true;
385
+ s++;
386
+
387
+ //特殊列处理
388
+ //序号
389
+ if (item.title === "序号") {
390
+ column["width"] = item.colWidth ? item.colWidth : 50;
391
+ column["title"] = translate("${序号}");
392
+ column["align"] = item.valueAlign ? item.valueAlign : "center";
393
+ column["render"] = (text, record, index) =>
394
+ <label className={record['dataType'] ? record['dataType'] == "小计" ? "xiaoji" : 'heji' : ""}>{record[item.id]}</label>;
395
+ item["sorter"] = undefined;
396
+ } else if (item.id == "10000") {
397
+ this.setSortProps(column, item, translate);
398
+ } else if (item.id == "20000") {
399
+ this.setHiddenRecordOpt(column, hiddenRowCodes, unHiden, onHide, translate);
400
+ } else {
401
+ currentDataColIndex++;
402
+ column["className"] = "opsColumn";
403
+ //column["title"] = translate("${" + item.title + "}");
404
+ column["width"] = item.colWidth ? item.colWidth : 160;
405
+ column["ellipsis"] = { showTitle: true };
406
+ column["align"] = item.valueAlign ? item.valueAlign : "left";
407
+ if (
408
+ leftFixedCols &&
409
+ leftFixedCols >= currentDataColIndex
410
+ ) {
411
+ column["fixed"] = "left";
412
+ } else {
413
+ column["fixed"] = item.colFixed
414
+ ? item.colFixed == "right"
415
+ ? "right"
416
+ : "left"
417
+ : false;
418
+ }
419
+ column["render"] = (text, record) => {
420
+ return (
421
+ <div className={record['dataType'] ? record['dataType'] == "小计" ? "xiaoji" : 'heji' : ""}>
422
+ <ViewControl
423
+ // serverKey={serverKey}
424
+ fieldConfig={item}
425
+ value={record[item.id]}
426
+ holderType={"table"}
427
+ /></div>
428
+ );
429
+ };
430
+ }
431
+ });
432
+
433
+ // console.log("columns", tableColumns);
434
+
435
+ return tableColumns;
436
+ },
437
+
438
+ handleColumnOrder(columnId, sortColumns) {
439
+ //const sortColumns = this.props.criteriaData["sortColIds"];
440
+
441
+ if (!Array.isArray(sortColumns)) return undefined;
442
+
443
+ for (const column of sortColumns) {
444
+ const [key, sort] = column.split("_");
445
+
446
+ if (key === columnId) {
447
+ if (sort === "asc") return "ascend";
448
+ if (sort === "desc") return "descend";
449
+ continue;
450
+ }
451
+ }
452
+ return undefined;
453
+ },
454
+ renderColumnAction(props: ActionRenderProps, record: DtmplData, type: "primary" | "secondary") { // 主列/次列悬浮按钮渲染
455
+ const { ltmplConfig, serverKey, doRowAction, doRAction, doCustomButton, translate, readOnly } = props;
456
+ const { primaryColumnButtons, secondColumnButtons } = ltmplConfig;
457
+ const temButtons = type === "primary" ? primaryColumnButtons : secondColumnButtons;
458
+ if (readOnly || !temButtons?.length) {
459
+ return null;
460
+ }
461
+ const actionButtons: any[] = temButtons.map(item => {
462
+ switch (item.functionType) {
463
+ case "action": // 操作按钮
464
+ if (ActionUtils.isShow(item.preposes, [record], undefined)) {
465
+ return <Action
466
+ serverKey={serverKey}
467
+ iconType={"icon"}
468
+ key={item.id}
469
+ data={[record]}
470
+ actionConfig={item}
471
+ doAction={doRowAction}
472
+ buttonSize={"small"}
473
+ serial={1}
474
+ />;
475
+ } else {
476
+ return undefined;
477
+ }
478
+ case "raction": // 关系按钮
479
+ if (ActionUtils.isShow(item?.preposes, [record], undefined)) {
480
+ return <Button
481
+ key={item.id}
482
+ size="small"
483
+ type="dashed"
484
+ onClick={() => doRAction(item.id, record.code)}
485
+ >
486
+ {item.icon ?
487
+ <Tooltip placement="top" title={translate("${" + item.title + "}")}>
488
+ <Icon type={item.icon} />
489
+ </Tooltip>
490
+ : translate("${" + item.title + "}")}
491
+ </Button>;
492
+ } else {
493
+ return undefined;
494
+ }
495
+ case "customButton": // 自由按钮
496
+ if (ActionUtils.isShow(item.preposes, [record], undefined)) {
497
+ return <Button
498
+ key={item.id}
499
+ size="small"
500
+ type={item.buttonType || "dashed"}
501
+ onClick={() => doCustomButton(item as unknown as CustomButton, [record])}
502
+ >
503
+ {item.icon ?
504
+ <Tooltip placement="top" title={translate("${" + item.title + "}")}>
505
+ <Icon type={item.icon} />
506
+ </Tooltip>
507
+ : translate("${" + item.title + "}")}
508
+ </Button>
509
+ } else {
510
+ return undefined;
511
+ };
512
+ case "fileExport": // 文件导出
513
+ if (ActionUtils.isShow(item.preposes, [record], undefined)) {
514
+ return <SelectCodeExport
515
+ serverKey={serverKey}
516
+ hiddenType="disabled"
517
+ codes={[record.code]}
518
+ key={item.id}
519
+ fileExport={item}
520
+ disabled={false}
521
+ />;
522
+ } else {
523
+ return undefined;
524
+ }
525
+ case "customExport": // 自定义导出
526
+ return undefined;
527
+ case "cQuery": // 关联查询
528
+ if (ActionUtils.isShow(item.preposes, [record], undefined)) {
529
+ const config: CQueryConfig = item;
530
+ return <CquickButton
531
+ serverKey={serverKey}
532
+ key={config.id}
533
+ size={"small"}
534
+ pageType={"drawer"}
535
+ cQueryConfig={config}
536
+ mainCode={config.mainCodeColId ? record[config.mainCodeColId] : record.code}
537
+ />;
538
+ } else {
539
+ return undefined;
540
+ }
541
+ default:
542
+ return undefined;
543
+ }
544
+ }).filter(Boolean);
545
+ return actionButtons?.length ? <div className="column-action"><Space wrap size={4}>{actionButtons}</Space></div> : undefined;
546
+ },
547
+ renderAction(props: ActionRenderProps, record: DtmplData) { // 操作列按钮渲染
548
+ const { ltmplConfig, showView,
549
+ doEdit,
550
+ doRAction,
551
+ customEditable,
552
+ serverKey,
553
+ readOnly,
554
+ sourceId, translate, doCustomButton, doRowJump, blockMenuTreeDrawerOpen,
555
+ doRowAction, doDeleteByCode, editRowEdit, editings, cancelRowEdit, saveRowData, doDelModalOpen,
556
+ doView2D, doEdit2D, actTableDoSearch
557
+ } = props;
558
+ const { buttons, builtInButtons, defShowRowActionCount, strongDeleteConfirmText, edit2DBtnTitle, view2DBtnTitle, deleteBtnTitle, copyMode } = ltmplConfig;
559
+ let actionButtons: any[] = [];
560
+
561
+ const isShowDetail = buttons.includes("detail") && showView && ActionUtils.isShow(ltmplConfig.buttonViewAction?.preposes, [record], undefined);
562
+ const isShowCustomDetail = buttons.includes("customDetail") && showView && ActionUtils.isShow(ltmplConfig.buttonViewAction?.preposes, [record], undefined);
563
+
564
+ if (isShowCustomDetail) { // 自定义详情
565
+ actionButtons.push(<Button
566
+ size="small"
567
+ type="primary"
568
+ icon={<AlignLeftOutlined />}
569
+ onClick={() => showView({ code: record.code, toCustomPage: true, })}
570
+ />)
571
+ }
572
+
573
+ if (isShowDetail) { // 默认详情
574
+ actionButtons.push(<ViewButton
575
+ showView={showView}
576
+ data={record}
577
+ ltmplConfig={ltmplConfig}
578
+ buttonType={isShowCustomDetail ? "default" : "primary"} />);
579
+ }
580
+
581
+ if (buttons.includes("dtmplEdit") && doEdit && !readOnly) {
582
+ (
583
+ actionButtons.push(<EditButton
584
+ doEdit={doEdit}
585
+ data={record}
586
+ ltmplConfig={ltmplConfig}
587
+ ></EditButton>)
588
+ )
589
+ };
590
+
591
+ // 2D图编辑
592
+ if (buttons.includes("edit2D") && doEdit2D && !readOnly) {
593
+ actionButtons.push((!edit2DBtnTitle || edit2DBtnTitle?.length < 4) ? <Button size="small" onClick={() => doEdit2D(record.code)}>{edit2DBtnTitle || <SettingOutlined />}</Button> :
594
+ <Tooltip title={edit2DBtnTitle}><Button size="small" onClick={() => doEdit2D(record.code)} icon={<SettingOutlined />} /></Tooltip>)
595
+ }
596
+
597
+ // 2D图查看
598
+ if (buttons.includes("view2D") && doView2D && !readOnly) {
599
+ actionButtons.push((!view2DBtnTitle || view2DBtnTitle?.length < 4) ? <Button size="small" onClick={() => doView2D(record.code)}>{ltmplConfig.view2DBtnTitle || <PlaySquareOutlined />}</Button> :
600
+ <Tooltip title={edit2DBtnTitle}><Button size="small" onClick={() => doView2D(record.code)} icon={<PlaySquareOutlined />} /></Tooltip>)
601
+ }
602
+
603
+ // 行内编辑
604
+ if (buttons.includes("rowEdit") && !buttons.includes("multiRowEdit")) {
605
+ actionButtons.push(<InlineEditButton
606
+ editings={editings}
607
+ editRowEdit={editRowEdit}
608
+ cancelRowEdit={cancelRowEdit}
609
+ saveRowData={saveRowData}
610
+ data={record}
611
+ />);
612
+ }
613
+
614
+ if (builtInButtons?.includes("blockAuthMenuTree") && !readOnly) {
615
+ actionButtons.push(<Button
616
+ size="small"
617
+ type="dashed"
618
+ icon={
619
+ <KeyOutlined
620
+ rotate={180}
621
+ style={{ color: "#f5222d", marginRight: "4px" }}
622
+ />
623
+ }
624
+ onClick={() => blockMenuTreeDrawerOpen(record)
625
+ }
626
+ ></Button>)
627
+ }
628
+
629
+ if ((buttons.includes("dtmplCustomEdit") || customEditable) &&
630
+ doEdit &&
631
+ !readOnly &&
632
+ ActionUtils.isShow(
633
+ ltmplConfig.buttonEditAction?.preposes,
634
+ [record],
635
+ undefined
636
+ )) {
637
+ actionButtons.push(<Button
638
+ size="small"
639
+ type="dashed"
640
+ icon={<FormOutlined />}
641
+ onClick={() =>
642
+ doEdit({
643
+ code: record.code,
644
+ mode: "update",
645
+ toCustomPage: true,
646
+ })
647
+ }
648
+ ></Button>)
649
+ }
650
+ if (buttons.includes("copy") && doEdit && !readOnly) {
651
+ actionButtons.push(<Tooltip title={translate("${复制}")}>
652
+ <Button
653
+ size="small"
654
+ type="dashed"
655
+ icon={<CopyOutlined />}
656
+ onClick={async () => {
657
+ //先复制
658
+ let toCustomPage = false;
659
+ if (buttons.includes("dtmplCustomEdit") || customEditable) {
660
+ toCustomPage = true;
661
+ }
662
+ if (copyMode === "editCopy") { // 修改后再复制
663
+ doEdit({ code: record.code, mode: "copy", toCustomPage });
664
+ } else {
665
+ let code = await HcserviceV3.doCopy(
666
+ serverKey,
667
+ sourceId,
668
+ record.code
669
+ ); // 复制
670
+ if (code && copyMode !== "copyOnly") { // 先复制再编辑
671
+ doEdit({ code, mode: "update", toCustomPage });
672
+ } else if (code) { // 仅复制
673
+ message.success(translate("${复制成功}"));
674
+ actTableDoSearch(null);
675
+ }
676
+ }
677
+ }}
678
+ ></Button>
679
+ </Tooltip>)
680
+ }
681
+
682
+ if (ltmplConfig.rowCustomButtons) {
683
+ ltmplConfig.rowCustomButtons.map((customButton) => {
684
+ if (ActionUtils.isShow(
685
+ customButton.preposes,
686
+ [record],
687
+ undefined
688
+ )) {
689
+ actionButtons.push(
690
+ <Button
691
+ key={customButton.id}
692
+ size="small"
693
+ type={
694
+ customButton.buttonType
695
+ ? customButton.buttonType
696
+ : "dashed"
697
+ }
698
+ onClick={() =>
699
+ doCustomButton(customButton, [record])
700
+ }
701
+ >
702
+ {customButton.icon ?
703
+ <Tooltip placement="top" title={translate("${" + customButton.title + "}")}>
704
+ <Icon type={customButton.icon}></Icon>
705
+ </Tooltip>
706
+ : translate("${" + customButton.title + "}")}
707
+ </Button>
708
+ )
709
+ };
710
+ })
711
+ }
712
+ if (ltmplConfig.ractions && !readOnly) {
713
+ ltmplConfig.ractions.map((raction) => {
714
+ if (ActionUtils.isShow(
715
+ raction?.preposes,
716
+ [record],
717
+ undefined
718
+ )) {
719
+ actionButtons.push(
720
+ <Button
721
+ key={raction.id}
722
+ size="small"
723
+ type="dashed"
724
+ onClick={() => doRAction(raction.id, record.code)}
725
+ >
726
+ {raction.icon ?
727
+ <Tooltip placement="top" title={translate("${" + raction.title + "}")}>
728
+ <Icon type={raction.icon}></Icon>
729
+ </Tooltip>
730
+ : translate("${" + raction.title + "}")}
731
+ </Button>
732
+ );
733
+ }
734
+ })
735
+ }
736
+
737
+ if (ltmplConfig.rowActions &&
738
+ !readOnly &&
739
+ ltmplConfig.rowActions.length > 0) {
740
+ ltmplConfig.rowActions.map((action) => {
741
+ actionButtons.push(
742
+ <Action
743
+ serverKey={serverKey}
744
+ iconType={"icon"}
745
+ key={action.id}
746
+ data={[record]}
747
+ actionConfig={action}
748
+ doAction={doRowAction}
749
+ buttonSize={"small"}
750
+ serial={1}
751
+ ></Action>
752
+ );
753
+ })
754
+ }
755
+
756
+ if (ltmplConfig.rowJumps &&
757
+ ltmplConfig.rowJumps.length > 0 &&
758
+ !readOnly) {
759
+ ltmplConfig.rowJumps.map((jump) => {
760
+ if (ActionUtils.isShow(
761
+ jump.preposes,
762
+ [record],
763
+ undefined
764
+ )) {
765
+ actionButtons.push(
766
+ <Button
767
+ key={jump.id}
768
+ size="small"
769
+ type="dashed"
770
+ onClick={() => doRowJump(jump, record)}
771
+ >
772
+ {jump.icon ?
773
+ <Tooltip placement="top" title={translate("${" + jump.title + "}")}>
774
+ <Icon type={jump.icon}></Icon>
775
+ </Tooltip>
776
+ : translate("${" + jump.title + "}")}
777
+ </Button>
778
+ )
779
+ };
780
+ })
781
+ }
782
+ if (ltmplConfig.rowCQuerys &&
783
+ ltmplConfig.rowCQuerys.length > 0 &&
784
+ !readOnly
785
+ ) {
786
+ ltmplConfig.rowCQuerys.map((cquery) => {
787
+ if (ActionUtils.isShow(
788
+ cquery.preposes,
789
+ [record],
790
+ undefined
791
+ )) {
792
+ actionButtons.push(
793
+ <CquickButton
794
+ serverKey={serverKey}
795
+ key={cquery.id}
796
+ size={"small"}
797
+ pageType={"drawer"}
798
+ cQueryConfig={cquery}
799
+ mainCode={
800
+ cquery.mainCodeColId
801
+ ? record[cquery.mainCodeColId]
802
+ : record.code
803
+ }
804
+ />
805
+ )
806
+ };
807
+ })
808
+ }
809
+ if (ltmplConfig.rowFileButtons &&
810
+ ltmplConfig.rowFileButtons.length > 0) {
811
+ ltmplConfig.rowFileButtons.map((openFileButton) => {
812
+ let v = record[openFileButton.fieldId];
813
+ if (v) {
814
+ if (v instanceof Array) {
815
+ v = v[0];
816
+ }
817
+ if (v.includes("@R@") > 0) {
818
+ v = v.split("@R@")[1];
819
+ }
820
+ actionButtons.push(
821
+ <NewinFileView
822
+ title={openFileButton.title}
823
+ filePath={HcserviceV3.toFilePath(v, serverKey)}
824
+ serverKey={serverKey}
825
+ key={openFileButton.id}
826
+ //size={"small"}
827
+ />
828
+ );
829
+ }
830
+ })
831
+ }
832
+ if (buttons.includes("singleDelete") &&
833
+ !readOnly &&
834
+ ActionUtils.isShow(
835
+ ltmplConfig.buttonDeleteAction?.preposes,
836
+ [record],
837
+ undefined
838
+ )) {
839
+ actionButtons.push(
840
+ strongDeleteConfirmText ?
841
+ ((!deleteBtnTitle || deleteBtnTitle?.length < 4) ?
842
+ <Button size="small" type="dashed" danger onClick={() => doDelModalOpen(record)}>
843
+ {deleteBtnTitle || <DeleteOutlined />}
844
+ </Button> : <Tooltip title={deleteBtnTitle}>
845
+ <Button size="small" type="dashed" danger onClick={() => doDelModalOpen(record)} icon={<DeleteOutlined />} />
846
+ </Tooltip>)
847
+ :
848
+ <Popconfirm
849
+ placement="rightBottom"
850
+ title={translate("${确定要[删除]此数据吗}?")}
851
+ onConfirm={() => doDeleteByCode(record)}
852
+ okText={translate("${确定}")}
853
+ cancelText={translate("${取消}")}
854
+ okType={"danger"}
855
+ >
856
+ {(!deleteBtnTitle || deleteBtnTitle?.length < 4) ?
857
+ <Button size="small" type="dashed" danger >{deleteBtnTitle || <DeleteOutlined />}</Button> :
858
+ <Tooltip title={deleteBtnTitle}><Button size="small" type="dashed" danger icon={<DeleteOutlined />} /></Tooltip>}
859
+ </Popconfirm>
860
+ )
861
+ }
862
+ let showButtons = [];
863
+ if (defShowRowActionCount <= 0 || defShowRowActionCount >= actionButtons.length) {
864
+ showButtons = actionButtons
865
+ } else {
866
+ showButtons = actionButtons.slice(0, defShowRowActionCount)
867
+ showButtons.push(
868
+ <Popover content={<Space wrap>
869
+ {actionButtons.slice(defShowRowActionCount, actionButtons.length)}
870
+ </Space>} title={"更多操作"} trigger="hover">
871
+ <Button size={"small"} icon={<EllipsisOutlined />} shape="circle" ></Button>
872
+ </Popover>
873
+ );
874
+ }
875
+ return <Space size={[0, 4]} wrap>
876
+ {showButtons}
877
+ </Space>
878
+ }
879
+
880
+ }
881
+ const DragHandle = SortableHandle(() => (
882
+ <MenuOutlined style={{ cursor: "grab", color: "#999" }} />
877
883
  ))