aldehyde 0.2.480 → 0.2.482

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 (662) 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/direct-file-view/index.d.ts.map +1 -1
  14. package/lib/controls/direct-file-view/index.js +4 -4
  15. package/lib/controls/direct-file-view/index.js.map +1 -1
  16. package/lib/controls/direct-upload/index.d.ts.map +1 -1
  17. package/lib/controls/direct-upload/index.js +3 -3
  18. package/lib/controls/direct-upload/index.js.map +1 -1
  19. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  20. package/lib/controls/entity-select/index.css +7 -7
  21. package/lib/controls/entity-select/lab-tree-select.d.ts.map +1 -1
  22. package/lib/controls/entity-select/popover-entity-select.d.ts.map +1 -1
  23. package/lib/controls/entry-control.d.ts +2 -1
  24. package/lib/controls/entry-control.d.ts.map +1 -1
  25. package/lib/controls/entry-control.js +10 -0
  26. package/lib/controls/entry-control.js.map +1 -1
  27. package/lib/controls/file-view/index.less +9 -9
  28. package/lib/controls/html-editor/index.less +67 -67
  29. package/lib/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  30. package/lib/controls/password-setter/index.css +2 -2
  31. package/lib/controls/password-setter/index.d.ts.map +1 -1
  32. package/lib/controls/qr-code/index.less +28 -28
  33. package/lib/controls/relation-existion/index.css +3 -3
  34. package/lib/controls/relation-existion/index.d.ts.map +1 -1
  35. package/lib/controls/rfield/index.css +4 -4
  36. package/lib/controls/rfield/index.d.ts.map +1 -1
  37. package/lib/controls/select/index.d.ts +8 -2
  38. package/lib/controls/select/index.d.ts.map +1 -1
  39. package/lib/controls/select/index.js +35 -13
  40. package/lib/controls/select/index.js.map +1 -1
  41. package/lib/controls/signature/index.d.ts.map +1 -1
  42. package/lib/controls/text/ellipsis-text.d.ts.map +1 -1
  43. package/lib/controls/text/index.less +7 -7
  44. package/lib/controls/upload/index.d.ts.map +1 -1
  45. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -1
  46. package/lib/controls/upload-read-excel/index.d.ts +10 -0
  47. package/lib/controls/upload-read-excel/index.d.ts.map +1 -0
  48. package/lib/controls/upload-read-excel/index.js +30 -0
  49. package/lib/controls/upload-read-excel/index.js.map +1 -0
  50. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  51. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  52. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  53. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  54. package/lib/detail/button/index.css +42 -42
  55. package/lib/detail/dtmpl.css +72 -67
  56. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  57. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  58. package/lib/detail/edit/popover-edit-card.d.ts.map +1 -1
  59. package/lib/detail/rightbar/index.css +34 -34
  60. package/lib/detail/rightbar/index.d.ts.map +1 -1
  61. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  62. package/lib/detail/view/dtmpl-view.d.ts.map +1 -1
  63. package/lib/detail/view/dtmpl-view.js +12 -2
  64. package/lib/detail/view/dtmpl-view.js.map +1 -1
  65. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  66. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  67. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  68. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -1
  69. package/lib/draw-canvas-edit/components/asset-bar/index.less +2 -2
  70. package/lib/draw-canvas-edit/components/main-header/index.d.ts.map +1 -1
  71. package/lib/draw-canvas-edit/components/main-header/index.js +32 -2
  72. package/lib/draw-canvas-edit/components/main-header/index.js.map +1 -1
  73. package/lib/draw-canvas-edit/components/render/components/index.d.ts +3 -0
  74. package/lib/draw-canvas-edit/components/render/components/index.d.ts.map +1 -0
  75. package/lib/draw-canvas-edit/components/render/components/index.js +3 -0
  76. package/lib/draw-canvas-edit/components/render/components/index.js.map +1 -0
  77. package/lib/draw-canvas-edit/components/render/components/index.less +61 -0
  78. package/lib/draw-canvas-edit/components/render/components/workstation-component.d.ts +38 -0
  79. package/lib/draw-canvas-edit/components/render/components/workstation-component.d.ts.map +1 -0
  80. package/lib/draw-canvas-edit/components/render/components/workstation-component.js +212 -0
  81. package/lib/draw-canvas-edit/components/render/components/workstation-component.js.map +1 -0
  82. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts.map +1 -1
  83. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js +19 -5
  84. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js.map +1 -1
  85. package/lib/draw-canvas-edit/components/render/index.d.ts.map +1 -1
  86. package/lib/draw-canvas-edit/components/render/index.js +15 -4
  87. package/lib/draw-canvas-edit/components/render/index.js.map +1 -1
  88. package/lib/draw-canvas-edit/components/render/tools/asset-tool.d.ts +2 -0
  89. package/lib/draw-canvas-edit/components/render/tools/asset-tool.d.ts.map +1 -1
  90. package/lib/draw-canvas-edit/components/render/tools/asset-tool.js +22 -11
  91. package/lib/draw-canvas-edit/components/render/tools/asset-tool.js.map +1 -1
  92. package/lib/draw-canvas-edit/components/render/tools/component-factory.d.ts +2 -0
  93. package/lib/draw-canvas-edit/components/render/tools/component-factory.d.ts.map +1 -1
  94. package/lib/draw-canvas-edit/components/render/tools/component-factory.js +10 -42
  95. package/lib/draw-canvas-edit/components/render/tools/component-factory.js.map +1 -1
  96. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts +1 -0
  97. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts.map +1 -1
  98. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js +35 -22
  99. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js.map +1 -1
  100. package/lib/draw-canvas-edit/components/render/types.d.ts +6 -0
  101. package/lib/draw-canvas-edit/components/render/types.d.ts.map +1 -1
  102. package/lib/draw-canvas-edit/components/render/types.js.map +1 -1
  103. package/lib/draw-canvas-edit/components/setting-form/index.d.ts.map +1 -1
  104. package/lib/draw-canvas-edit/components/setting-form/index.js +10 -0
  105. package/lib/draw-canvas-edit/components/setting-form/index.js.map +1 -1
  106. package/lib/draw-canvas-edit/index.d.ts.map +1 -1
  107. package/lib/draw-canvas-edit/index.js +5 -2
  108. package/lib/draw-canvas-edit/index.js.map +1 -1
  109. package/lib/draw-canvas-edit/index.less +48 -48
  110. package/lib/draw-canvas-view/index.less +66 -59
  111. package/lib/draw-canvas-view/view.d.ts.map +1 -1
  112. package/lib/draw-canvas-view/view.js +19 -11
  113. package/lib/draw-canvas-view/view.js.map +1 -1
  114. package/lib/export/export-frame.css +2 -2
  115. package/lib/export/export-frame.d.ts.map +1 -1
  116. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  117. package/lib/form/dtmpl-form.css +3 -3
  118. package/lib/form/dtmpl-form.d.ts.map +1 -1
  119. package/lib/form/dtmpl-form.js +12 -3
  120. package/lib/form/dtmpl-form.js.map +1 -1
  121. package/lib/form/field-group-form.d.ts.map +1 -1
  122. package/lib/form/field-group-form.js +1 -1
  123. package/lib/form/field-group-form.js.map +1 -1
  124. package/lib/form/form-Item-group.d.ts +2 -1
  125. package/lib/form/form-Item-group.d.ts.map +1 -1
  126. package/lib/form/form-Item-group.js +2 -2
  127. package/lib/form/form-Item-group.js.map +1 -1
  128. package/lib/form/index.css +12 -12
  129. package/lib/import/excel-import.d.ts.map +1 -1
  130. package/lib/import/index.css +53 -53
  131. package/lib/import/template.css +50 -50
  132. package/lib/layout/common.css +64 -64
  133. package/lib/layout/coverstyle.css +51 -51
  134. package/lib/layout/footer/index.css +5 -5
  135. package/lib/layout/header/index.css +122 -122
  136. package/lib/layout/menu/block.css +7 -7
  137. package/lib/layout/menu/block.d.ts.map +1 -1
  138. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  139. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  140. package/lib/layout/menu/message-bar.less +73 -73
  141. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  142. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  143. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  144. package/lib/layout/sidebar/index.css +57 -57
  145. package/lib/layout2/css/header.css +41 -41
  146. package/lib/layout2/css/sider.less +17 -17
  147. package/lib/layout2/css/tabs-layout.less +18 -18
  148. package/lib/layout3/css/header.less +195 -195
  149. package/lib/layout3/css/main.less +161 -161
  150. package/lib/layout3/css/sider.less +32 -32
  151. package/lib/layout3/css/tabs-layout.less +38 -38
  152. package/lib/layout4/css/header.less +196 -196
  153. package/lib/layout4/css/main.less +154 -154
  154. package/lib/layout4/css/sider.less +37 -37
  155. package/lib/layout4/css/tabs-layout.less +42 -42
  156. package/lib/layout5/css/header.less +35 -35
  157. package/lib/layout5/css/sider.less +18 -18
  158. package/lib/list/calendar/index.less +20 -20
  159. package/lib/list/card-list/card-list-item.d.ts.map +1 -1
  160. package/lib/list/card-list/card-list-item.js +3 -2
  161. package/lib/list/card-list/card-list-item.js.map +1 -1
  162. package/lib/list/card-list/index.less +154 -154
  163. package/lib/list/gantt/index.less +8 -8
  164. package/lib/list/vertical-list/index.less +208 -208
  165. package/lib/login/index.css +19 -19
  166. package/lib/login/login.d.ts.map +1 -1
  167. package/lib/login/vertify/index.css +143 -143
  168. package/lib/login3/index.less +136 -136
  169. package/lib/lowcode-components/act-table/index.less +26 -26
  170. package/lib/lowcode-components/base-button/index.less +7 -7
  171. package/lib/lowcode-components/base-map/index.js +6 -6
  172. package/lib/lowcode-components/base-radio/index.less +23 -23
  173. package/lib/lowcode-components/base-tabs/index.less +14 -14
  174. package/lib/lowcode-components/border/border10/index.less +26 -26
  175. package/lib/lowcode-components/border/border11/index.js +46 -46
  176. package/lib/lowcode-components/border/border11/index.less +17 -17
  177. package/lib/lowcode-components/border/border12/index.js +13 -13
  178. package/lib/lowcode-components/border/border12/index.less +13 -13
  179. package/lib/lowcode-components/border/border13/index.js +5 -5
  180. package/lib/lowcode-components/border/border13/index.less +13 -13
  181. package/lib/lowcode-components/border/border2/index.less +17 -17
  182. package/lib/lowcode-components/border/border3/index.less +25 -25
  183. package/lib/lowcode-components/border/border4/index.js +2 -2
  184. package/lib/lowcode-components/border/border4/index.less +72 -72
  185. package/lib/lowcode-components/border/border5/index.js +2 -2
  186. package/lib/lowcode-components/border/border5/index.less +35 -35
  187. package/lib/lowcode-components/border/border6/index.less +17 -17
  188. package/lib/lowcode-components/border/border7/index.less +26 -26
  189. package/lib/lowcode-components/border/border8/index.less +13 -13
  190. package/lib/lowcode-components/border/border9/index.js +14 -14
  191. package/lib/lowcode-components/border/border9/index.less +13 -13
  192. package/lib/lowcode-components/carousel/index.js +3 -3
  193. package/lib/lowcode-components/carousel/index.js.map +1 -1
  194. package/lib/lowcode-components/decoration/decoration1/index.less +7 -7
  195. package/lib/lowcode-components/decoration/decoration10/index.js +3 -3
  196. package/lib/lowcode-components/decoration/decoration10/index.less +5 -5
  197. package/lib/lowcode-components/decoration/decoration11/index.less +5 -5
  198. package/lib/lowcode-components/decoration/decoration2/index.less +6 -6
  199. package/lib/lowcode-components/decoration/decoration3/index.less +7 -7
  200. package/lib/lowcode-components/decoration/decoration4/index.less +29 -29
  201. package/lib/lowcode-components/decoration/decoration5/index.less +3 -3
  202. package/lib/lowcode-components/decoration/decoration6/index.less +7 -7
  203. package/lib/lowcode-components/decoration/decoration7/index.less +4 -4
  204. package/lib/lowcode-components/decoration/decoration8/index.less +14 -14
  205. package/lib/lowcode-components/decoration/decoration9/index.less +4 -4
  206. package/lib/lowcode-components/effectScatter-map/index.js +6 -6
  207. package/lib/lowcode-components/effectScatter-map-3d/index.js +6 -6
  208. package/lib/lowcode-components/lowcode-view/index.less +19 -19
  209. package/lib/lowcode-components/search-form/index.less +25 -25
  210. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  211. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  212. package/lib/module/index.less +4 -4
  213. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  214. package/lib/module/ltmpl-table.d.ts +1 -0
  215. package/lib/module/ltmpl-table.d.ts.map +1 -1
  216. package/lib/module/ltmpl-table.js +2 -2
  217. package/lib/module/ltmpl-table.js.map +1 -1
  218. package/lib/routable/index.less +25 -25
  219. package/lib/table/act-table.d.ts.map +1 -1
  220. package/lib/table/act-table.js +21 -20
  221. package/lib/table/act-table.js.map +1 -1
  222. package/lib/table/column/column-builder.d.ts.map +1 -1
  223. package/lib/table/column/column-builder.js +16 -15
  224. package/lib/table/column/column-builder.js.map +1 -1
  225. package/lib/table/column/index.less +85 -63
  226. package/lib/table/index.css +211 -211
  227. package/lib/table/modal-select-table.d.ts.map +1 -1
  228. package/lib/table/pagination.css +14 -14
  229. package/lib/table/pagination.d.ts.map +1 -1
  230. package/lib/table/query-table.js +2 -1
  231. package/lib/table/query-table.js.map +1 -1
  232. package/lib/table/relation-table.d.ts +1 -1
  233. package/lib/table/relation-table.d.ts.map +1 -1
  234. package/lib/table/relation-table.js +5 -24
  235. package/lib/table/relation-table.js.map +1 -1
  236. package/lib/table/select-table.d.ts.map +1 -1
  237. package/lib/table/select-table.js +14 -2
  238. package/lib/table/select-table.js.map +1 -1
  239. package/lib/table/selected-rows-card.d.ts.map +1 -1
  240. package/lib/table/stat/restat.d.ts.map +1 -1
  241. package/lib/tmpl/hc-data-source.d.ts +1 -0
  242. package/lib/tmpl/hc-data-source.d.ts.map +1 -1
  243. package/lib/tmpl/hc-data-source.js +9 -0
  244. package/lib/tmpl/hc-data-source.js.map +1 -1
  245. package/lib/tmpl/interface.d.ts +5 -0
  246. package/lib/tmpl/interface.d.ts.map +1 -1
  247. package/lib/tmpl/interface.js.map +1 -1
  248. package/lib/tree/act-tree.d.ts.map +1 -1
  249. package/lib/tree/block-menu-auth-tree.d.ts.map +1 -1
  250. package/lib/tree/index.css +22 -22
  251. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  252. package/lib/welcome/components/menu-card.less +96 -96
  253. package/lib/welcome/components/page-card.less +49 -49
  254. package/lib/welcome/components/quick-entrance.less +120 -120
  255. package/lib/welcome/components/user-menus.less +192 -192
  256. package/lib/welcome/components/workbench.less +118 -118
  257. package/lib/welcome/index.css +13 -13
  258. package/package.json +224 -223
  259. package/src/aldehyde/controls/2dEditor/2dEditor/index.less +5 -5
  260. package/src/aldehyde/controls/2dEditor/2dEditor/index.tsx +270 -270
  261. package/src/aldehyde/controls/2dEditor/2dView/index.less +8 -8
  262. package/src/aldehyde/controls/2dEditor/2dView/index.tsx +110 -110
  263. package/src/aldehyde/controls/2dEditor/components/card.tsx +256 -256
  264. package/src/aldehyde/controls/2dEditor/components/component.less +83 -83
  265. package/src/aldehyde/controls/2dEditor/components/data.d.ts +32 -32
  266. package/src/aldehyde/controls/2dEditor/components/hotspot.tsx +80 -80
  267. package/src/aldehyde/controls/2dEditor/components/html-box.tsx +101 -101
  268. package/src/aldehyde/controls/2dEditor/components/image.tsx +99 -99
  269. package/src/aldehyde/controls/2dEditor/components/line.tsx +73 -73
  270. package/src/aldehyde/controls/action/index.css +8 -8
  271. package/src/aldehyde/controls/action/index.tsx +406 -406
  272. package/src/aldehyde/controls/action/utils.tsx +306 -306
  273. package/src/aldehyde/controls/auto-complete/index.tsx +82 -82
  274. package/src/aldehyde/controls/cascader/index.tsx +112 -112
  275. package/src/aldehyde/controls/chemstruc/graph.tsx +185 -185
  276. package/src/aldehyde/controls/chemstruc/index.css +28 -28
  277. package/src/aldehyde/controls/code-editor/sql-code-editor.tsx +73 -73
  278. package/src/aldehyde/controls/collapse-card/index.css +8 -8
  279. package/src/aldehyde/controls/collapse-card/index.tsx +109 -109
  280. package/src/aldehyde/controls/color-picker/index.tsx +21 -21
  281. package/src/aldehyde/controls/counting-tag/index.tsx +53 -53
  282. package/src/aldehyde/controls/cquery/cquick-button.tsx +145 -145
  283. package/src/aldehyde/controls/date-picker/index.tsx +199 -199
  284. package/src/aldehyde/controls/direct-file-view/drawer-file-view.tsx +54 -54
  285. package/src/aldehyde/controls/direct-file-view/index.tsx +146 -145
  286. package/src/aldehyde/controls/direct-upload/index.tsx +140 -139
  287. package/src/aldehyde/controls/entity-select/entity-select.tsx +791 -791
  288. package/src/aldehyde/controls/entity-select/index.css +7 -7
  289. package/src/aldehyde/controls/entity-select/lab-tree-select.tsx +154 -154
  290. package/src/aldehyde/controls/entity-select/popover-entity-select.tsx +205 -205
  291. package/src/aldehyde/controls/entry-control.tsx +428 -418
  292. package/src/aldehyde/controls/enum-badge/index.tsx +42 -42
  293. package/src/aldehyde/controls/enum-tag/index.tsx +45 -45
  294. package/src/aldehyde/controls/field-history/index.tsx +81 -81
  295. package/src/aldehyde/controls/file-export/select-code-export.tsx +40 -40
  296. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +117 -117
  297. package/src/aldehyde/controls/file-view/index.less +9 -9
  298. package/src/aldehyde/controls/file-view/index.tsx +148 -148
  299. package/src/aldehyde/controls/file-view/multi-file-view.tsx +39 -39
  300. package/src/aldehyde/controls/file-view/newin-file-view.tsx +40 -40
  301. package/src/aldehyde/controls/html-editor/draft.tsx +136 -136
  302. package/src/aldehyde/controls/html-editor/index.less +67 -67
  303. package/src/aldehyde/controls/icon-selector/app-icon-selector.tsx +68 -68
  304. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  305. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.json +240 -240
  306. package/src/aldehyde/controls/icon-selector/pc-icon-selector.tsx +68 -68
  307. package/src/aldehyde/controls/input-number/index.tsx +148 -148
  308. package/src/aldehyde/controls/input-range/index.tsx +59 -59
  309. package/src/aldehyde/controls/password-setter/index.css +2 -2
  310. package/src/aldehyde/controls/password-setter/index.js +88 -88
  311. package/src/aldehyde/controls/progress/index.tsx +74 -74
  312. package/src/aldehyde/controls/qr-code/index.less +28 -28
  313. package/src/aldehyde/controls/qr-code/index.tsx +40 -40
  314. package/src/aldehyde/controls/relation-existion/index.css +3 -3
  315. package/src/aldehyde/controls/relation-existion/index.tsx +144 -144
  316. package/src/aldehyde/controls/rfield/index.css +4 -4
  317. package/src/aldehyde/controls/rfield/index.tsx +225 -225
  318. package/src/aldehyde/controls/select/index.tsx +227 -216
  319. package/src/aldehyde/controls/signature/index.tsx +226 -226
  320. package/src/aldehyde/controls/single-checkbox/index.tsx +18 -18
  321. package/src/aldehyde/controls/steps/index.tsx +59 -59
  322. package/src/aldehyde/controls/text/ellipsis-text.tsx +98 -98
  323. package/src/aldehyde/controls/text/index.less +7 -7
  324. package/src/aldehyde/controls/tree-select/navigation-tree.tsx +122 -122
  325. package/src/aldehyde/controls/tree-select/tree-entity-select.tsx +121 -121
  326. package/src/aldehyde/controls/upload/index.tsx +128 -128
  327. package/src/aldehyde/controls/upload/mult-file-upload.tsx +240 -240
  328. package/src/aldehyde/controls/upload-read-excel/index.tsx +44 -0
  329. package/src/aldehyde/controls/view-control.tsx +289 -289
  330. package/src/aldehyde/custom-page/custom-detail-modal-page.tsx +69 -69
  331. package/src/aldehyde/custom-page/custom-page-router.tsx +64 -64
  332. package/src/aldehyde/custom-page/def-custom-page.tsx +17 -17
  333. package/src/aldehyde/custom-page/dtmpl-custom-edit-modal-page.tsx +88 -88
  334. package/src/aldehyde/detail/button/bottom-submit-button-bar.tsx +91 -91
  335. package/src/aldehyde/detail/button/cquery-button-bar.tsx +144 -144
  336. package/src/aldehyde/detail/button/edit-button.tsx +61 -61
  337. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +186 -186
  338. package/src/aldehyde/detail/button/index.css +42 -42
  339. package/src/aldehyde/detail/button/inline-edit-button.tsx +40 -40
  340. package/src/aldehyde/detail/button/submit-button-bar.tsx +57 -57
  341. package/src/aldehyde/detail/button/view-button.tsx +64 -64
  342. package/src/aldehyde/detail/dtmpl.css +72 -67
  343. package/src/aldehyde/detail/edit/dtmpl-edit.tsx +279 -279
  344. package/src/aldehyde/detail/edit/fields-edit-card.tsx +145 -145
  345. package/src/aldehyde/detail/edit/modal-row-edit.tsx +95 -95
  346. package/src/aldehyde/detail/edit/popover-edit-card.tsx +167 -167
  347. package/src/aldehyde/detail/edit/popover-editor.tsx +70 -70
  348. package/src/aldehyde/detail/edit/post-result/index.tsx +86 -86
  349. package/src/aldehyde/detail/rightbar/index.css +34 -34
  350. package/src/aldehyde/detail/rightbar/index.tsx +92 -92
  351. package/src/aldehyde/detail/tooltipbar/index.tsx +32 -32
  352. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +288 -288
  353. package/src/aldehyde/detail/view/dtmpl-view.tsx +334 -314
  354. package/src/aldehyde/detail/view/field-view-group.tsx +88 -88
  355. package/src/aldehyde/detail/view/modal-dtmpl-view.tsx +73 -73
  356. package/src/aldehyde/detail/view/snapshot-timeline.tsx +231 -231
  357. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +304 -304
  358. package/src/aldehyde/detail/view/view-compare-panel.tsx +57 -57
  359. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +2 -2
  360. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +33 -2
  361. package/src/aldehyde/draw-canvas-edit/components/render/components/index.less +61 -0
  362. package/src/aldehyde/draw-canvas-edit/components/render/components/index.ts +3 -0
  363. package/src/aldehyde/draw-canvas-edit/components/render/components/workstation-component.tsx +220 -0
  364. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +176 -176
  365. package/src/aldehyde/draw-canvas-edit/components/render/draws/contextmenu-draw.ts +329 -329
  366. package/src/aldehyde/draw-canvas-edit/components/render/graphs/bezier.ts +542 -542
  367. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +72 -72
  368. package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +408 -396
  369. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +821 -808
  370. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +21 -7
  371. package/src/aldehyde/draw-canvas-edit/components/render/tools/attract-tool.ts +457 -457
  372. package/src/aldehyde/draw-canvas-edit/components/render/tools/component-factory.ts +270 -302
  373. package/src/aldehyde/draw-canvas-edit/components/render/tools/copy-tool.ts +244 -244
  374. package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +588 -576
  375. package/src/aldehyde/draw-canvas-edit/components/render/tools/index.ts +10 -10
  376. package/src/aldehyde/draw-canvas-edit/components/render/tools/position-tool.ts +191 -191
  377. package/src/aldehyde/draw-canvas-edit/components/render/tools/selection-tool.ts +140 -140
  378. package/src/aldehyde/draw-canvas-edit/components/render/types.ts +297 -291
  379. package/src/aldehyde/draw-canvas-edit/components/setting-form/index.tsx +303 -291
  380. package/src/aldehyde/draw-canvas-edit/constant.ts +5 -5
  381. package/src/aldehyde/draw-canvas-edit/index.less +48 -48
  382. package/src/aldehyde/draw-canvas-edit/index.tsx +204 -201
  383. package/src/aldehyde/draw-canvas-view/index.less +66 -59
  384. package/src/aldehyde/draw-canvas-view/index.tsx +49 -49
  385. package/src/aldehyde/draw-canvas-view/view.tsx +20 -11
  386. package/src/aldehyde/export/export-frame.css +2 -2
  387. package/src/aldehyde/export/export-frame.tsx +301 -301
  388. package/src/aldehyde/export/select-code-export-frame.tsx +212 -212
  389. package/src/aldehyde/form/criteria-form.tsx +604 -604
  390. package/src/aldehyde/form/dtmpl-form.css +3 -3
  391. package/src/aldehyde/form/dtmpl-form.tsx +571 -552
  392. package/src/aldehyde/form/field-group-form.tsx +103 -102
  393. package/src/aldehyde/form/fields-form.tsx +45 -45
  394. package/src/aldehyde/form/form-Item-group.tsx +246 -245
  395. package/src/aldehyde/form/index.css +12 -12
  396. package/src/aldehyde/hooks/use-match-route/index.tsx +62 -62
  397. package/src/aldehyde/hooks/use-tabs/index.tsx +139 -139
  398. package/src/aldehyde/hooks/useVarCssColor.ts +6 -6
  399. package/src/aldehyde/icon/aliIcon.tsx +9 -9
  400. package/src/aldehyde/icon/index.tsx +28 -28
  401. package/src/aldehyde/import/excel-import.tsx +450 -450
  402. package/src/aldehyde/import/index.css +53 -53
  403. package/src/aldehyde/import/template.css +50 -50
  404. package/src/aldehyde/index.tsx +220 -220
  405. package/src/aldehyde/layout/MainPage.tsx +334 -334
  406. package/src/aldehyde/layout/common.css +64 -64
  407. package/src/aldehyde/layout/coverstyle.css +51 -51
  408. package/src/aldehyde/layout/footer/index.css +5 -5
  409. package/src/aldehyde/layout/footer/index.js +17 -17
  410. package/src/aldehyde/layout/header/index.css +122 -122
  411. package/src/aldehyde/layout/header/index.tsx +152 -152
  412. package/src/aldehyde/layout/menu/block.css +7 -7
  413. package/src/aldehyde/layout/menu/block.tsx +174 -174
  414. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +160 -160
  415. package/src/aldehyde/layout/menu/l2menu-quick-bar.tsx +175 -175
  416. package/src/aldehyde/layout/menu/menu-2layers.tsx +117 -117
  417. package/src/aldehyde/layout/menu/menu-render.tsx +168 -168
  418. package/src/aldehyde/layout/menu/message-bar.less +73 -73
  419. package/src/aldehyde/layout/menu/reset-password.tsx +255 -255
  420. package/src/aldehyde/layout/menu/user-bar.tsx +259 -259
  421. package/src/aldehyde/layout/menu/userinfo-bar.tsx +69 -69
  422. package/src/aldehyde/layout/sidebar/index.css +57 -57
  423. package/src/aldehyde/layout/sidebar/index.tsx +84 -84
  424. package/src/aldehyde/layout2/components/icon-font.tsx +7 -7
  425. package/src/aldehyde/layout2/components/screenfull-button.tsx +21 -21
  426. package/src/aldehyde/layout2/components/search-menu.tsx +85 -85
  427. package/src/aldehyde/layout2/components/system-messages.tsx +75 -75
  428. package/src/aldehyde/layout2/components/theme-button.tsx +65 -65
  429. package/src/aldehyde/layout2/components/user-button.tsx +258 -258
  430. package/src/aldehyde/layout2/components/user-notification.tsx +74 -74
  431. package/src/aldehyde/layout2/css/header.css +41 -41
  432. package/src/aldehyde/layout2/css/sider.less +17 -17
  433. package/src/aldehyde/layout2/css/tabs-layout.less +18 -18
  434. package/src/aldehyde/layout2/header.tsx +278 -278
  435. package/src/aldehyde/layout2/layout-context.tsx +95 -95
  436. package/src/aldehyde/layout2/main.tsx +30 -30
  437. package/src/aldehyde/layout2/page.tsx +315 -315
  438. package/src/aldehyde/layout2/sider.tsx +230 -230
  439. package/src/aldehyde/layout2/tabs/tabs-context.tsx +37 -37
  440. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +146 -146
  441. package/src/aldehyde/layout2/type/layout-type.ts +15 -15
  442. package/src/aldehyde/layout2/util/menu-util.tsx +125 -125
  443. package/src/aldehyde/layout3/components/tabs-layout.tsx +110 -110
  444. package/src/aldehyde/layout3/components/time.tsx +25 -25
  445. package/src/aldehyde/layout3/css/header.less +195 -195
  446. package/src/aldehyde/layout3/css/main.less +161 -161
  447. package/src/aldehyde/layout3/css/sider.less +32 -32
  448. package/src/aldehyde/layout3/css/tabs-layout.less +38 -38
  449. package/src/aldehyde/layout3/header.tsx +187 -187
  450. package/src/aldehyde/layout3/main.tsx +29 -29
  451. package/src/aldehyde/layout3/page.tsx +110 -110
  452. package/src/aldehyde/layout3/sider.tsx +198 -198
  453. package/src/aldehyde/layout4/components/tabs-layout.tsx +110 -110
  454. package/src/aldehyde/layout4/css/header.less +196 -196
  455. package/src/aldehyde/layout4/css/main.less +154 -154
  456. package/src/aldehyde/layout4/css/sider.less +37 -37
  457. package/src/aldehyde/layout4/css/tabs-layout.less +42 -42
  458. package/src/aldehyde/layout4/header.tsx +190 -190
  459. package/src/aldehyde/layout4/main.tsx +29 -29
  460. package/src/aldehyde/layout4/page.tsx +125 -125
  461. package/src/aldehyde/layout4/sider.tsx +201 -201
  462. package/src/aldehyde/layout5/css/header.less +35 -35
  463. package/src/aldehyde/layout5/css/sider.less +18 -18
  464. package/src/aldehyde/layout5/header.tsx +204 -204
  465. package/src/aldehyde/layout5/page.tsx +107 -107
  466. package/src/aldehyde/layout5/sider.tsx +235 -235
  467. package/src/aldehyde/list/calendar/index.less +20 -20
  468. package/src/aldehyde/list/calendar/index.tsx +157 -157
  469. package/src/aldehyde/list/card-list/card-list-item.tsx +112 -111
  470. package/src/aldehyde/list/card-list/index.less +154 -154
  471. package/src/aldehyde/list/card-list/index.tsx +83 -83
  472. package/src/aldehyde/list/gantt/index.less +8 -8
  473. package/src/aldehyde/list/gantt/index.tsx +508 -508
  474. package/src/aldehyde/list/vertical-list/index.less +208 -208
  475. package/src/aldehyde/list/vertical-list/index.tsx +55 -55
  476. package/src/aldehyde/list/vertical-list/item.tsx +136 -136
  477. package/src/aldehyde/locale/LocaleButton.tsx +48 -48
  478. package/src/aldehyde/locale/LocaleProvider.tsx +265 -265
  479. package/src/aldehyde/locale/langMp.ts +45 -45
  480. package/src/aldehyde/locale/translate.ts +80 -80
  481. package/src/aldehyde/locale/useLocale.ts +72 -72
  482. package/src/aldehyde/login/context-setter.tsx +130 -130
  483. package/src/aldehyde/login/index.css +19 -19
  484. package/src/aldehyde/login/login.tsx +255 -255
  485. package/src/aldehyde/login/router-login.tsx +107 -107
  486. package/src/aldehyde/login/vertify/index.css +143 -143
  487. package/src/aldehyde/login/vertify/index.tsx +360 -360
  488. package/src/aldehyde/login/vertify/tool.ts +13 -13
  489. package/src/aldehyde/login2/login-page.tsx +92 -92
  490. package/src/aldehyde/login2/login.tsx +226 -226
  491. package/src/aldehyde/login3/index.less +136 -136
  492. package/src/aldehyde/login3/login-page.tsx +71 -71
  493. package/src/aldehyde/lowcode-components/act-table/index.less +26 -26
  494. package/src/aldehyde/lowcode-components/act-table/index.tsx +139 -139
  495. package/src/aldehyde/lowcode-components/assets/lowcode-constant.tsx +12 -12
  496. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +268 -268
  497. package/src/aldehyde/lowcode-components/base-button/index.less +7 -7
  498. package/src/aldehyde/lowcode-components/base-button/index.tsx +197 -197
  499. package/src/aldehyde/lowcode-components/base-image/index.tsx +220 -220
  500. package/src/aldehyde/lowcode-components/base-map/index.tsx +292 -292
  501. package/src/aldehyde/lowcode-components/base-radio/index.less +23 -23
  502. package/src/aldehyde/lowcode-components/base-radio/index.tsx +157 -157
  503. package/src/aldehyde/lowcode-components/base-table/index.tsx +268 -268
  504. package/src/aldehyde/lowcode-components/base-tabs/index.less +14 -14
  505. package/src/aldehyde/lowcode-components/base-tabs/index.tsx +183 -183
  506. package/src/aldehyde/lowcode-components/base-text/index.tsx +58 -58
  507. package/src/aldehyde/lowcode-components/border/border1/index.tsx +70 -70
  508. package/src/aldehyde/lowcode-components/border/border10/index.less +26 -26
  509. package/src/aldehyde/lowcode-components/border/border10/index.tsx +45 -45
  510. package/src/aldehyde/lowcode-components/border/border11/index.less +17 -17
  511. package/src/aldehyde/lowcode-components/border/border11/index.tsx +232 -232
  512. package/src/aldehyde/lowcode-components/border/border12/index.less +13 -13
  513. package/src/aldehyde/lowcode-components/border/border12/index.tsx +115 -115
  514. package/src/aldehyde/lowcode-components/border/border13/index.less +13 -13
  515. package/src/aldehyde/lowcode-components/border/border13/index.tsx +69 -69
  516. package/src/aldehyde/lowcode-components/border/border2/index.less +17 -17
  517. package/src/aldehyde/lowcode-components/border/border2/index.tsx +51 -51
  518. package/src/aldehyde/lowcode-components/border/border3/index.less +25 -25
  519. package/src/aldehyde/lowcode-components/border/border3/index.tsx +61 -61
  520. package/src/aldehyde/lowcode-components/border/border4/index.less +72 -72
  521. package/src/aldehyde/lowcode-components/border/border4/index.tsx +79 -79
  522. package/src/aldehyde/lowcode-components/border/border5/index.less +35 -35
  523. package/src/aldehyde/lowcode-components/border/border5/index.tsx +75 -75
  524. package/src/aldehyde/lowcode-components/border/border6/index.less +17 -17
  525. package/src/aldehyde/lowcode-components/border/border6/index.tsx +60 -60
  526. package/src/aldehyde/lowcode-components/border/border7/index.less +26 -26
  527. package/src/aldehyde/lowcode-components/border/border7/index.tsx +75 -75
  528. package/src/aldehyde/lowcode-components/border/border8/index.less +13 -13
  529. package/src/aldehyde/lowcode-components/border/border8/index.tsx +84 -84
  530. package/src/aldehyde/lowcode-components/border/border9/index.less +13 -13
  531. package/src/aldehyde/lowcode-components/border/border9/index.tsx +154 -154
  532. package/src/aldehyde/lowcode-components/capsule-bar-chart/index.tsx +290 -290
  533. package/src/aldehyde/lowcode-components/carousel/index.tsx +218 -218
  534. package/src/aldehyde/lowcode-components/circular-progress-chart/index.tsx +263 -263
  535. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +438 -438
  536. package/src/aldehyde/lowcode-components/column-chart/index.tsx +293 -293
  537. package/src/aldehyde/lowcode-components/data-number/index.tsx +219 -219
  538. package/src/aldehyde/lowcode-components/data.d.ts +19 -18
  539. package/src/aldehyde/lowcode-components/decoration/decoration1/index.less +7 -7
  540. package/src/aldehyde/lowcode-components/decoration/decoration1/index.tsx +153 -153
  541. package/src/aldehyde/lowcode-components/decoration/decoration10/index.less +5 -5
  542. package/src/aldehyde/lowcode-components/decoration/decoration10/index.tsx +89 -89
  543. package/src/aldehyde/lowcode-components/decoration/decoration11/index.less +5 -5
  544. package/src/aldehyde/lowcode-components/decoration/decoration11/index.tsx +133 -133
  545. package/src/aldehyde/lowcode-components/decoration/decoration2/index.less +6 -6
  546. package/src/aldehyde/lowcode-components/decoration/decoration2/index.tsx +61 -61
  547. package/src/aldehyde/lowcode-components/decoration/decoration3/index.less +7 -7
  548. package/src/aldehyde/lowcode-components/decoration/decoration3/index.tsx +87 -87
  549. package/src/aldehyde/lowcode-components/decoration/decoration4/index.less +29 -29
  550. package/src/aldehyde/lowcode-components/decoration/decoration4/index.tsx +53 -53
  551. package/src/aldehyde/lowcode-components/decoration/decoration5/index.less +3 -3
  552. package/src/aldehyde/lowcode-components/decoration/decoration5/index.tsx +116 -116
  553. package/src/aldehyde/lowcode-components/decoration/decoration6/index.less +7 -7
  554. package/src/aldehyde/lowcode-components/decoration/decoration6/index.tsx +121 -121
  555. package/src/aldehyde/lowcode-components/decoration/decoration7/index.less +4 -4
  556. package/src/aldehyde/lowcode-components/decoration/decoration7/index.tsx +70 -70
  557. package/src/aldehyde/lowcode-components/decoration/decoration8/index.less +14 -14
  558. package/src/aldehyde/lowcode-components/decoration/decoration8/index.tsx +122 -122
  559. package/src/aldehyde/lowcode-components/decoration/decoration9/index.less +4 -4
  560. package/src/aldehyde/lowcode-components/decoration/decoration9/index.tsx +196 -196
  561. package/src/aldehyde/lowcode-components/effectScatter-map/index.tsx +315 -315
  562. package/src/aldehyde/lowcode-components/effectScatter-map-3d/index.tsx +419 -419
  563. package/src/aldehyde/lowcode-components/gauge-chart/index.tsx +254 -254
  564. package/src/aldehyde/lowcode-components/index.ts +130 -130
  565. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +300 -300
  566. package/src/aldehyde/lowcode-components/line-chart/index.tsx +290 -290
  567. package/src/aldehyde/lowcode-components/liquid-chart/index.tsx +250 -250
  568. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +478 -478
  569. package/src/aldehyde/lowcode-components/lowcode-view/component/component-controller.ts +153 -153
  570. package/src/aldehyde/lowcode-components/lowcode-view/component/component-definition.ts +23 -23
  571. package/src/aldehyde/lowcode-components/lowcode-view/component/loading.tsx +20 -20
  572. package/src/aldehyde/lowcode-components/lowcode-view/component/util.ts +27 -27
  573. package/src/aldehyde/lowcode-components/lowcode-view/index.less +19 -19
  574. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +277 -277
  575. package/src/aldehyde/lowcode-components/lowcode-view/interface.ts +189 -189
  576. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +349 -349
  577. package/src/aldehyde/lowcode-components/progress-chart/index.tsx +295 -295
  578. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +322 -322
  579. package/src/aldehyde/lowcode-components/search-form/index.less +25 -25
  580. package/src/aldehyde/lowcode-components/search-form/index.tsx +121 -121
  581. package/src/aldehyde/lowcode-components/stroke-animation/index.tsx +219 -219
  582. package/src/aldehyde/module/block-menu-tree-drawer.tsx +118 -118
  583. package/src/aldehyde/module/criteria-page.tsx1 +175 -175
  584. package/src/aldehyde/module/draggable-modal.tsx +66 -66
  585. package/src/aldehyde/module/dtmpl-edit-card.tsx +437 -437
  586. package/src/aldehyde/module/dtmpl-edit-drawer.tsx +23 -23
  587. package/src/aldehyde/module/dtmpl-edit-modal.tsx +25 -25
  588. package/src/aldehyde/module/dtmpl-edit-page.tsx +558 -558
  589. package/src/aldehyde/module/dtmpl-editor.tsx +165 -165
  590. package/src/aldehyde/module/dtmpl-view-card.tsx +64 -64
  591. package/src/aldehyde/module/dtmpl-view-drawer.tsx +71 -71
  592. package/src/aldehyde/module/dtmpl-view-modal.tsx +56 -56
  593. package/src/aldehyde/module/embed-dtmpl-edit-page.tsx +137 -137
  594. package/src/aldehyde/module/index.less +4 -4
  595. package/src/aldehyde/module/ltmpl-drawer.tsx +60 -60
  596. package/src/aldehyde/module/ltmpl-modal.tsx +63 -63
  597. package/src/aldehyde/module/ltmpl-table.tsx +379 -378
  598. package/src/aldehyde/module/ttmpl-tree.tsx +47 -47
  599. package/src/aldehyde/routable/dtmpl-route.tsx +173 -173
  600. package/src/aldehyde/routable/import-route.tsx +35 -35
  601. package/src/aldehyde/routable/index.less +25 -25
  602. package/src/aldehyde/routable/ltmpl-route.tsx +539 -539
  603. package/src/aldehyde/routable/splitview-ltmpl-route.tsx +377 -377
  604. package/src/aldehyde/routable/ttmpl-route.tsx +93 -93
  605. package/src/aldehyde/routable/withroute.tsx +36 -36
  606. package/src/aldehyde/sso-Login/index.tsx +73 -73
  607. package/src/aldehyde/sso-Login/service/index.js +16 -16
  608. package/src/aldehyde/sso-Login/service/login.js +75 -75
  609. package/src/aldehyde/table/act-table.tsx +1830 -1831
  610. package/src/aldehyde/table/column/column-builder.tsx +865 -864
  611. package/src/aldehyde/table/column/column-selector.tsx +130 -130
  612. package/src/aldehyde/table/column/index.less +85 -63
  613. package/src/aldehyde/table/column/summary-builder.tsx +712 -712
  614. package/src/aldehyde/table/column/theme-color-getter.tsx +25 -25
  615. package/src/aldehyde/table/control-table-x-axis-wrapper.tsx +80 -80
  616. package/src/aldehyde/table/index.css +211 -211
  617. package/src/aldehyde/table/l2-act-table.tsx +91 -91
  618. package/src/aldehyde/table/modal-select-table.tsx +308 -308
  619. package/src/aldehyde/table/page-config-button.tsx +203 -203
  620. package/src/aldehyde/table/pagination.css +14 -14
  621. package/src/aldehyde/table/pagination.tsx +81 -81
  622. package/src/aldehyde/table/query-table.tsx +658 -658
  623. package/src/aldehyde/table/relation-table.tsx +1078 -1093
  624. package/src/aldehyde/table/report-table.tsx +125 -125
  625. package/src/aldehyde/table/resizable-table.tsx +97 -97
  626. package/src/aldehyde/table/select-table.tsx +559 -548
  627. package/src/aldehyde/table/selected-rows-card.tsx +78 -78
  628. package/src/aldehyde/table/stat/restat.tsx +122 -122
  629. package/src/aldehyde/table/table-util.tsx +25 -25
  630. package/src/aldehyde/tmpl/control-type-supportor.tsx +154 -154
  631. package/src/aldehyde/tmpl/hc-data-source.tsx +574 -566
  632. package/src/aldehyde/tmpl/hcservice-v3.tsx +1590 -1590
  633. package/src/aldehyde/tmpl/interface.tsx +924 -919
  634. package/src/aldehyde/tmpl/model-struc-v3.tsx +111 -111
  635. package/src/aldehyde/tmpl/superagent.js +146 -146
  636. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +585 -585
  637. package/src/aldehyde/tmpl/web-socket.ts +366 -366
  638. package/src/aldehyde/tree/act-tree.tsx +217 -217
  639. package/src/aldehyde/tree/block-menu-auth-tree.tsx +189 -189
  640. package/src/aldehyde/tree/index.css +22 -22
  641. package/src/aldehyde/tree/navigation-tree.tsx +39 -39
  642. package/src/aldehyde/tree/tmpl-tree.tsx +751 -751
  643. package/src/aldehyde/tree/tree-node.tsx +73 -73
  644. package/src/aldehyde/tree/tree-utils.tsx +317 -317
  645. package/src/aldehyde/units/EncryptUtils.js +37 -37
  646. package/src/aldehyde/units/image.d.ts +7 -7
  647. package/src/aldehyde/units/index.tsx +1367 -1367
  648. package/src/aldehyde/units/storage.js +2 -2
  649. package/src/aldehyde/utils/dsu.ts +27 -27
  650. package/src/aldehyde/welcome/HCWelcome.js +404 -404
  651. package/src/aldehyde/welcome/HCWelcome1.js +259 -259
  652. package/src/aldehyde/welcome/components/menu-card.less +96 -96
  653. package/src/aldehyde/welcome/components/menu-card.tsx +70 -70
  654. package/src/aldehyde/welcome/components/page-card.less +49 -49
  655. package/src/aldehyde/welcome/components/page-card.tsx +97 -97
  656. package/src/aldehyde/welcome/components/quick-entrance.less +120 -120
  657. package/src/aldehyde/welcome/components/quick-entrance.tsx +80 -80
  658. package/src/aldehyde/welcome/components/user-menus.less +192 -192
  659. package/src/aldehyde/welcome/components/user-menus.tsx +279 -279
  660. package/src/aldehyde/welcome/components/workbench.less +118 -118
  661. package/src/aldehyde/welcome/components/workbench.tsx +146 -146
  662. package/src/aldehyde/welcome/index.css +13 -13
@@ -1,1367 +1,1367 @@
1
- // import React from 'react'
2
- import {
3
- CriteriaConfig, CustomButtonConfig,
4
- DtmplConfig,
5
- DtmplData,
6
- DtmplFormProps,
7
- EnumItem,
8
- LtmplConfig,
9
- SelectConfig,
10
- ThemeConfig
11
- } from "../tmpl/interface";
12
- import dayjs from "dayjs";
13
- import TmplConfigAnalysis from "../tmpl/tmpl-config-analysis";
14
- import { ProgramConfig } from "../index";
15
- import { CriteriaFormProps } from "../form/criteria-form";
16
- import ControlTypeSupportor from "../tmpl/control-type-supportor";
17
- import HcserviceV3 from "../tmpl/hcservice-v3";
18
- import { UserInfo } from "../tmpl/interface";
19
-
20
- let storageKeyPrefix = undefined;
21
-
22
- const CUSTOM_PAGE_MAP = {};
23
-
24
- let MENU_MAP = {};
25
-
26
- let MENU_ID_ICON_MAP = {};
27
-
28
- const CustomButtonConfig_Map = {}
29
-
30
- const CUSTOM_VIEW_CONTROL_MAP = {};
31
-
32
- const AppDtmplConfigFuncMap = {};
33
-
34
- const AppCtmplConfigFuncMap = {};
35
-
36
- const CUSTOM_EDIT_CONTROL_MAP = {};
37
-
38
- let currentUser = undefined;
39
-
40
- const extendServerMap = {};
41
-
42
- let antdUseToken = undefined;
43
-
44
- const CUSTOM_COMPONENT_MAP = {};
45
-
46
- // 主题url vx替换正则
47
- const regexTheme = /(?<=#\/)vx/g;
48
-
49
- let themeConfig: ThemeConfig = undefined; // 系统配置主题等
50
-
51
- const pageConfigCommons = {}; // 用户页面自定义配置
52
-
53
- let components2DMap = {}; // 2D图形组件
54
-
55
- // let siderCollapsed:boolean = true;
56
-
57
- export default {
58
- setAntdUseToken(antdUseToken_) {
59
- antdUseToken = antdUseToken_;
60
- },
61
- getAntdUseToken() {
62
- return antdUseToken;
63
- },
64
-
65
- //静态补充
66
- setAppDtmplConfigFunc(
67
- key: string,
68
- func: (dtmplConfig: DtmplConfig, dtmplData: DtmplData) => DtmplConfig
69
- ) {
70
- AppDtmplConfigFuncMap[key] = func;
71
- },
72
-
73
-
74
- setMenuIconMap(menuIconMap) {
75
- MENU_ID_ICON_MAP = menuIconMap;
76
- },
77
- mapMenuIcon(menuId) {
78
- return MENU_ID_ICON_MAP[menuId];
79
- },
80
-
81
- setMenuMap(menuMap) {
82
- MENU_MAP = menuMap;
83
- },
84
- mapMenu(menuId) {
85
- if (menuId == 'home') {
86
- return "首页"
87
- }
88
- return MENU_MAP[menuId];
89
- },
90
-
91
-
92
- getAppDtmplConfig(
93
- dtmplConfig: DtmplConfig,
94
- dtmplData: DtmplData,
95
- props: DtmplFormProps
96
- ) {
97
- if (dtmplConfig) {
98
- if (AppDtmplConfigFuncMap[dtmplConfig.id]) {
99
- return AppDtmplConfigFuncMap[dtmplConfig.id](
100
- dtmplConfig,
101
- dtmplData,
102
- props
103
- );
104
- } else {
105
- //用内置的
106
- return TmplConfigAnalysis.buildInDtmplConfig(
107
- dtmplConfig,
108
- dtmplData,
109
- props
110
- );
111
- }
112
- }
113
- return dtmplConfig;
114
- },
115
-
116
- setCustomButtonConfig(
117
- key: string,
118
- config: CustomButtonConfig
119
- ) {
120
- CustomButtonConfig_Map[key] = config;
121
- },
122
-
123
- getCustomButtonConfig(
124
- key: string
125
- ) {
126
- return CustomButtonConfig_Map[key];
127
- },
128
-
129
- setAppCtmplConfigFunc(
130
- key: string,
131
- func: (ltmplConfig: SelectConfig, data: Object) => SelectConfig
132
- ) {
133
- AppCtmplConfigFuncMap[key] = func;
134
- },
135
-
136
- getAppCtmplConfig(
137
- ltmplConfig: SelectConfig,
138
- criteriaData: Object,
139
- props: CriteriaFormProps
140
- ) {
141
- if (ltmplConfig) {
142
- if (AppCtmplConfigFuncMap[ltmplConfig.id]) {
143
- return AppCtmplConfigFuncMap[ltmplConfig.id](
144
- ltmplConfig,
145
- criteriaData,
146
- props
147
- );
148
- } else {
149
- //用内置的
150
- return TmplConfigAnalysis.buildInCtmplConfig(
151
- ltmplConfig,
152
- criteriaData,
153
- props
154
- );
155
- }
156
- }
157
- return ltmplConfig;
158
- },
159
-
160
- isDynamicDtmplConfig(dtmplConfig: DtmplConfig) {
161
- if (dtmplConfig && AppDtmplConfigFuncMap[dtmplConfig.id]) {
162
- return true;
163
- }
164
- return false;
165
- },
166
-
167
- setCustomPage(key_: string, name: object) {
168
- let key = key_;
169
- if (!key) {
170
- return;
171
- }
172
- if (!key.startsWith("/")) {
173
- key = "/" + key;
174
- }
175
- CUSTOM_PAGE_MAP[key] = name;
176
- },
177
- setCustomControl(key_: string, view: object, edit: object) {
178
- let key = key_;
179
- if (!key.startsWith("/")) {
180
- key = "/" + key;
181
- }
182
- CUSTOM_VIEW_CONTROL_MAP[key] = view;
183
- CUSTOM_EDIT_CONTROL_MAP[key] = edit;
184
- },
185
- getCustomViewControl(key: string) {
186
- if (!key) {
187
- return null;
188
- }
189
- if (!key.startsWith("/")) {
190
- return CUSTOM_VIEW_CONTROL_MAP["/" + key];
191
- } else {
192
- return CUSTOM_VIEW_CONTROL_MAP[key];
193
- }
194
- },
195
- getCustomEditControl(key: string) {
196
- if (!key) {
197
- return null;
198
- }
199
- if (!key.startsWith("/")) {
200
- return CUSTOM_EDIT_CONTROL_MAP["/" + key];
201
- } else {
202
- return CUSTOM_EDIT_CONTROL_MAP[key];
203
- }
204
- },
205
- getCustomPage(key: string) {
206
- if (!key) {
207
- return null;
208
- }
209
- if (!key.startsWith("/")) {
210
- return CUSTOM_PAGE_MAP["/" + key];
211
- } else {
212
- return CUSTOM_PAGE_MAP[key];
213
- }
214
- },
215
- setProgramCode(programCode_: string, key?: string) {
216
- if (programCode_) {
217
- if (key) {
218
- window.localStorage.setItem(key + "programCode", programCode_);
219
- } else {
220
- window.localStorage.setItem("programCode", programCode_);
221
- window.sessionStorage.setItem("programCode", programCode_);
222
- }
223
- }
224
- },
225
- setSessionProgramCode(programCode_: string) {
226
- if (programCode_) {
227
- window.sessionStorage.setItem("programCode", programCode_);
228
- }
229
- },
230
- programCode(key?: string) {
231
- let programCode = null;
232
- if (key) {
233
- programCode = window.localStorage.getItem(key + "programCode");
234
- if (!programCode && key === "localDevopsServer") { // 2D图图片上传模型,配置为空则使用默认值
235
- programCode = "282877560559017986";
236
- }
237
- } else {
238
- programCode = window.sessionStorage.getItem("programCode");
239
- }
240
-
241
- if (!programCode) {
242
- programCode = window.localStorage.getItem("programCode");
243
- this.setSessionProgramCode(programCode);
244
- }
245
- return programCode;
246
- },
247
- setApplicationCode(applicationCode_: string, key?: string) {
248
- if (applicationCode_) {
249
- if (key) {
250
- window.localStorage.setItem(key + "applicationCode", applicationCode_);
251
- } else {
252
- window.localStorage.setItem("applicationCode", applicationCode_);
253
- window.sessionStorage.setItem("applicationCode", applicationCode_);
254
- }
255
- }
256
- },
257
- setSessionApplicationCode(applicationCode_: string) {
258
- if (applicationCode_) {
259
- window.sessionStorage.setItem("applicationCode", applicationCode_);
260
- }
261
- },
262
- applicationCode(key?: string) {
263
- let applicationCode = null;
264
- if (key) {
265
- applicationCode = window.localStorage.getItem(key + "applicationCode");
266
- } else {
267
- applicationCode = window.sessionStorage.getItem("applicationCode");
268
- }
269
-
270
- if (!applicationCode) {
271
- applicationCode = window.localStorage.getItem("applicationCode");
272
- this.setSessionProgramCode(applicationCode);
273
- }
274
- return applicationCode;
275
- },
276
- setHydrocarbonServer(url: string, key?: string) {
277
- if (key) {
278
- window.localStorage.setItem(key + "hydrocarbonServer", url);
279
- } else if (this.programCode()) {
280
- window.localStorage.setItem(
281
- this.programCode() + "hydrocarbonServer",
282
- url
283
- );
284
- } else {
285
- window.localStorage.setItem("hydrocarbonServer", url);
286
- }
287
- },
288
- setProgramName_Logo(logo1: string) {
289
- if (this.programCode()) {
290
- window.localStorage.setItem(
291
- this.programCode() + "programName_Logo",
292
- logo1
293
- );
294
- } else {
295
- window.localStorage.setItem("programName_Logo", logo1);
296
- }
297
- },
298
- api(key?: string) {
299
- let appi = null;
300
- if (key) {
301
- appi = window.localStorage.getItem(key + "hydrocarbonServer");
302
- } else {
303
- appi = window.localStorage.getItem(
304
- this.programCode() + "hydrocarbonServer"
305
- );
306
- }
307
- if (!appi) {
308
- appi = window.localStorage.getItem("hydrocarbonServer");
309
- }
310
-
311
- if (!appi) {
312
- let url = new URL(window.location.href);
313
- let pathname = null;
314
- if (url.pathname.indexOf("/kuangkie") > 0) {
315
- pathname = url.pathname.split("/kuangkie")[0];
316
- }
317
- appi = this.joinPath(url.origin, pathname);
318
- } else if (appi == "/") {
319
- //以当前为主
320
- let url = new URL(window.location.href);
321
- let pathname = url.pathname.split("/kuangkie")[0];
322
- appi = this.joinPath(url.origin, pathname);
323
- } else if (appi.startsWith("/-")) {
324
- let url = new URL(window.location.href);
325
- let afterOrigin = url.href.replace(`${url.origin}/`, '').split("/");
326
- let num = appi.match(/-/g)?.length || 0;
327
- let pathname = afterOrigin.slice(0, num).join("/");
328
- appi = this.joinPath(url.origin, pathname);
329
- } else if (!appi.startsWith("http")) {
330
- appi = this.joinPath(new URL(window.location.href).origin, appi);
331
- }
332
- return appi;
333
- },
334
- hydrocarbonToken(programCode_?: string, applicationCode_?: string) {
335
- let programCode = programCode_ ? programCode_ : this.programCode();
336
- let applicationCode = applicationCode_ || this.applicationCode() || "";
337
- let hydrocarbonToken = window.sessionStorage.getItem(
338
- programCode + applicationCode + "hydrocarbonToken"
339
- );
340
- if (!hydrocarbonToken) {
341
- hydrocarbonToken = window.sessionStorage.getItem("hydrocarbonToken");
342
- }
343
- if (!hydrocarbonToken) {
344
- hydrocarbonToken = window.localStorage.getItem(
345
- programCode + applicationCode + "hydrocarbonToken"
346
- );
347
- if (!hydrocarbonToken) {
348
- hydrocarbonToken = window.localStorage.getItem("hydrocarbonToken");
349
- }
350
- if (hydrocarbonToken) {
351
- this.setSessionHydrocarbonToken(hydrocarbonToken, programCode, applicationCode);
352
- }
353
- }
354
- return hydrocarbonToken;
355
- },
356
- setServerHydrocarbonToken(serverkey: string, token: string) {
357
- if (serverkey && token) {
358
- window.sessionStorage.setItem(serverkey + "hydrocarbonToken", token);
359
- }
360
- this.setHydrocarbonToken(token, serverkey);
361
- },
362
- serverHydrocarbonToken(serverKey: string) {
363
- let hydrocarbonToken = window.sessionStorage.getItem(serverKey + "hydrocarbonToken");
364
- if (!hydrocarbonToken) {
365
- hydrocarbonToken = window.localStorage.getItem(serverKey + "hydrocarbonToken");
366
- }
367
- if (!serverKey || !hydrocarbonToken) { // serverKey不存在
368
- hydrocarbonToken = this.hydrocarbonToken();
369
- }
370
- return hydrocarbonToken;
371
- },
372
- putExtendServers(extendServers) {
373
- for (let es of extendServers) {
374
- extendServerMap[es.key] = es;
375
- if (es.key && es["hydrocarbonServer"]) {
376
- ProgramConfig.setProgramCode(es["programCode"], es.key);
377
- ProgramConfig.setHydrocarbonServer(es["hydrocarbonServer"], es.key);
378
- }
379
- }
380
- },
381
- getExtendServers(serverKey) {
382
- return extendServerMap[serverKey];
383
- },
384
- setHydrocarbonToken(token: string, serverkey?: string) {
385
- let programCode = this.programCode(serverkey);
386
- let applicationCode = this.applicationCode(serverkey);
387
- this.setLocalHydrocarbonToken(token, programCode, applicationCode);
388
- this.setSessionHydrocarbonToken(token, programCode, applicationCode);
389
- },
390
- setLocalHydrocarbonToken(token: string, programCode_?: string, applicationCode_?: string) {
391
- if (!programCode_) {
392
- // if(!window.localStorage.getItem('hydrocarbonToken')){
393
- window.localStorage.setItem("hydrocarbonToken", token);
394
- //}
395
- }
396
- let programCode = programCode_ ? programCode_ : this.programCode();
397
- let applicationCode = applicationCode_ || this.applicationCode() || "";
398
- if (programCode) {
399
- window.localStorage.setItem(programCode + applicationCode + "hydrocarbonToken", token);
400
- //初次设为默认
401
- if (!window.localStorage.getItem("hydrocarbonToken")) {
402
- window.localStorage.setItem("hydrocarbonToken", token);
403
- }
404
- }
405
- // else{
406
- // window.localStorage.setItem('hydrocarbonToken',token);
407
- // }
408
- },
409
- setSessionHydrocarbonToken(token: string, programCode_?: string, applicationCode_?: string) {
410
- if (!programCode_) {
411
- //初次设为默认
412
- //if(!window.sessionStorage.getItem('hydrocarbonToken')){
413
- window.sessionStorage.setItem("hydrocarbonToken", token);
414
- // }
415
- }
416
- let programCode = programCode_ ? programCode_ : this.programCode();
417
- let applicationCode = applicationCode_ || this.applicationCode() || "";
418
- if (programCode) {
419
- window.sessionStorage.setItem(programCode + applicationCode + "hydrocarbonToken", token);
420
- if (!window.sessionStorage.getItem("hydrocarbonToken")) {
421
- window.sessionStorage.setItem("hydrocarbonToken", token);
422
- }
423
- }
424
- // else{
425
- // window.sessionStorage.setItem('hydrocarbonToken',token) ;
426
- // }
427
- },
428
- setProgramName(programName_: string) {
429
- if (this.programCode()) {
430
- window.localStorage.setItem(
431
- this.programCode() + "programName",
432
- programName_
433
- );
434
- } else {
435
- window.localStorage.setItem("programName", programName_);
436
- }
437
- },
438
- programName() {
439
- if (this.programCode()) {
440
- return window.localStorage.getItem(this.programCode() + "programName");
441
- } else {
442
- return window.localStorage.getItem("programName");
443
- }
444
- },
445
- setProgramName_sub(programName_sub_: string) {
446
- if (this.programCode()) {
447
- window.localStorage.setItem(
448
- this.programCode() + "programName_sub",
449
- programName_sub_
450
- );
451
- } else {
452
- window.localStorage.setItem("programName_sub", programName_sub_);
453
- }
454
- },
455
- programName_sub() {
456
- if (this.programCode()) {
457
- return window.localStorage.getItem(
458
- this.programCode() + "programName_sub"
459
- );
460
- } else {
461
- return window.localStorage.getItem("programName_sub");
462
- }
463
- },
464
- setProgramName_NavLeft(programName_NavLeft_: string) {
465
- if (this.programCode()) {
466
- window.localStorage.setItem(
467
- this.programCode() + "programName_NavLeft",
468
- programName_NavLeft_
469
- );
470
- } else {
471
- window.localStorage.setItem("programName_NavLeft", programName_NavLeft_);
472
- }
473
- },
474
- programName_NavLeft() {
475
- let result;
476
- if (this.programCode()) {
477
- result = window.localStorage.getItem(
478
- this.programCode() + "programName_NavLeft"
479
- );
480
- }
481
- if (!result) {
482
- result = window.localStorage.getItem("programName_NavLeft");
483
- }
484
- return result ? result : "管理平台";
485
- },
486
- programName_Logo() {
487
- let item = null;
488
- if (this.programCode()) {
489
- item = window.localStorage.getItem(
490
- this.programCode() + "programName_Logo"
491
- );
492
- }
493
- if (!item) {
494
- item = window.localStorage.getItem("programName_Logo");
495
- }
496
- return item && item == "undefined" ? null : item;
497
- },
498
-
499
- setThemes(themes: string[]) {
500
- const themesStr = themes?.length ? themes.join(",") : "";
501
- if (this.programCode()) {
502
- window.localStorage.setItem(
503
- this.programCode() + "themes",
504
- themesStr
505
- );
506
- } else {
507
- window.localStorage.setItem("themes", themesStr);
508
- }
509
- },
510
-
511
- themes() {
512
- let themes = "";
513
- if (this.programCode()) {
514
- themes = window.localStorage.getItem(
515
- this.programCode() + "themes"
516
- );
517
- } else {
518
- themes = window.localStorage.getItem("themes");
519
- }
520
-
521
- return themes ? themes.split(",") : [];
522
- },
523
-
524
- setDefaultTheme(theme: string) {
525
- let key = "defaultTheme";
526
- if (this.programCode()) {
527
- key = this.programCode() + "defaultTheme";
528
- }
529
- if (!theme) {
530
- window.localStorage.removeItem(key);
531
- return;
532
- }
533
- window.localStorage.setItem(key, theme);
534
- },
535
-
536
- getDefaultTheme() {
537
- let theme = "";
538
- if (this.programCode()) {
539
- theme = window.localStorage.getItem(
540
- this.programCode() + "defaultTheme"
541
- );
542
- } else {
543
- theme = window.localStorage.getItem("defaultTheme");
544
- }
545
- return theme || "v2";
546
- },
547
-
548
- formateDate(time) {
549
- if (!time) return "";
550
- return dayjs(new Date(time)).format("YYYY-MM-DD HH:mm:ss");
551
- //let str=date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();
552
- // return str;
553
- },
554
- dateToString(date) {
555
- //日期转字符串
556
- //console.log(date)
557
- let year = date.getFullYear();
558
- let month = (date.getMonth() + 1).toString();
559
- let day = date.getDate().toString();
560
- if (month.length === 1) {
561
- month = "0" + month;
562
- }
563
- if (day.length === 1) {
564
- day = "0" + day;
565
- }
566
- const dateTime = year + "-" + month + "-" + day;
567
- return dateTime;
568
- },
569
- pagination(data, callback) {
570
- const page = {
571
- onchange: (current) => {
572
- callback(current);
573
- },
574
- current: data.pageInfo.pageNo,
575
- pageSize: data.pageInfo.pageSize,
576
- total: data.pageInfo.count,
577
- showTotal: () => {
578
- return `共${data.pageInfo.count}条`;
579
- },
580
- showQuickIumper: true,
581
- };
582
- return page;
583
- },
584
- // getRadioList(data) {
585
- // if (!data) {
586
- // return [];
587
- // }
588
- // const options = []
589
- // data.map((item) => {
590
- // options.push(<Radio value={item.id} key={item.id}>{item.name}</Radio>)
591
- // return false
592
- // })
593
- // return options
594
- // },
595
- // downloadFile_(url) {
596
- // try {
597
- // let elemIF = document.createElement("iframe");
598
- // //elemIF.src = url;
599
- // elemIF.src = "javascript: '<script>location.href=\"" + url + "\"</script>'"
600
- // elemIF.style.display = "none";
601
- // document.body.appendChild(elemIF);
602
- // } catch (e) {
603
- // message.error(e)
604
- // }
605
- // },
606
- openFile(url, fileName, toolbar) {
607
- try {
608
- let a = document.createElement("a");
609
- a.href = url + toolbar;
610
- a.target = "_blank";
611
- document.body.appendChild(a);
612
- a.click();
613
- document.body.removeChild(a);
614
- } catch (e) {
615
- console.log(e);
616
- }
617
- },
618
- toLogin() {
619
- let programCode = this.programCode();
620
- let applicationCode = this.applicationCode();
621
- const version = localStorage.getItem("version");
622
- const themes = this.getAllThemes();
623
- const loginPath = themes[version]?.loginPath || "login2";
624
- if (programCode && programCode != "null" && programCode != "undefined") {
625
- window.location.hash = applicationCode && applicationCode != "null" && applicationCode != "undefined" ? `#/${loginPath}/${programCode}/${applicationCode}` : `#/${loginPath}/${programCode}`;
626
- } else {
627
- window.location.hash = `#/${loginPath}`;
628
- }
629
- },
630
- logout() { // 退出登录,清除数据缓存
631
- currentUser = undefined;
632
- },
633
- async downloadFile(url, fileName) {
634
- try {
635
- // 检查是否跨域
636
- if (new URL(url).origin !== window.location.origin) {
637
- // 跨域资源使用Fetch API方式
638
- const response = await fetch(url);
639
- const blob = await response.blob();
640
- const blobUrl = window.URL.createObjectURL(blob);
641
- let a = document.createElement('a');
642
- a.href = blobUrl;
643
- a.download = fileName;
644
- document.body.appendChild(a);
645
- a.click();
646
- // 清理
647
- window.URL.revokeObjectURL(blobUrl);
648
- document.body.removeChild(a);
649
- } else {
650
- let a = document.createElement("a");
651
- a.download = fileName;
652
- a.href = url;
653
- //a.target= "_blank";
654
- document.body.appendChild(a);
655
- a.click();
656
- document.body.removeChild(a);
657
- }
658
- } catch (e) {
659
- console.log(e);
660
- }
661
- },
662
- downloadFile_old(url) {
663
- try {
664
- let a = document.createElement("form");
665
- a.action = url;
666
- //a.target= "_blank";
667
- document.body.appendChild(a);
668
- a.submit();
669
- document.body.removeChild(a);
670
- } catch (e) {
671
- console.log(e);
672
- }
673
- },
674
- //随机数
675
- getRandomNum(n) {
676
- let rnd = "";
677
- let f = Math.floor(Math.random() * 10);
678
- rnd += f == 0 ? "1" : f + "";
679
- for (let i = 1; i < n; i++) {
680
- rnd += Math.floor(Math.random() * 10);
681
- }
682
- return rnd;
683
- },
684
- /**
685
- * 获得用于在本地持久缓存的数据的Key前缀
686
- * 当前返回的值是第一次访问当前方法时的所在页面链接的pathname
687
- * 表示在不同的pathname下,永久缓存的数据将互不干扰
688
- * @returns {undefined}
689
- */
690
- getStorageKeyPrefix() {
691
- if (storageKeyPrefix === undefined) {
692
- storageKeyPrefix = window.location.pathname || "";
693
- }
694
- return storageKeyPrefix;
695
- },
696
-
697
- getLongTextStyle(value) {
698
- if (!value) {
699
- return {};
700
- }
701
- let style = {
702
- minWidth: "normal",
703
- maxWidth: "1000px",
704
- display: "block",
705
- // textAlign: 'left',
706
- whiteSpace: "normal",
707
- lineHeight: "20px",
708
- };
709
- let min_value_length =
710
- value.length > 200
711
- ? "350px"
712
- : value.length > 150
713
- ? "300px"
714
- : value.length > 100
715
- ? "250px"
716
- : value.length > 50
717
- ? "200px"
718
- : value.length >= 20
719
- ? "160px"
720
- : "80px";
721
- //let min_value_length = value.length > 20 ? '160px' : '80px';
722
- style.minWidth = min_value_length;
723
- return style;
724
- },
725
-
726
- setLocalStorge(key, value, min = 60) {
727
- if (key) {
728
- key = this.getStorageKeyPrefix() + key;
729
- }
730
- // 设置过期原则
731
- if (!value) {
732
- localStorage.removeItem(key);
733
- } else {
734
- const Min = min || 60;
735
- const exp = new Date();
736
- const expireAddTime = Min * 60 * 1000;
737
- localStorage.setItem(
738
- key,
739
- JSON.stringify({
740
- value,
741
- expireAddTime,
742
- expires: exp.getTime() + expireAddTime,
743
- })
744
- );
745
- }
746
- },
747
- getLocalStorge(name) {
748
- if (name) {
749
- name = this.getStorageKeyPrefix() + name;
750
- }
751
- try {
752
- let o = JSON.parse(localStorage[name]);
753
- if (!o || o.expires < Date.now()) {
754
- return null;
755
- } else {
756
- o.expires = Date.now() + o.expireAddTime;
757
- localStorage.setItem(name, JSON.stringify(o));
758
- return o.value;
759
- }
760
- } catch (e) {
761
- // 兼容其他localstorage
762
- return localStorage[name];
763
- } finally {
764
- }
765
- },
766
- getAnoHydrocarbonToken() {
767
- let token = this.getLocalStorge("anoHydrocarbonToken");
768
- if (!token) {
769
- token = "tmpl" + this.getRandomNum(6);
770
- this.setLocalStorge("anoHydrocarbonToken", token);
771
- }
772
- return token;
773
- },
774
- transQueryParamsToStr(data, isPrefix = false, excudekeys = []) {
775
- let prefix = isPrefix ? "?" : "";
776
- let _result = [];
777
- let paramKeys = [];
778
- //寻找参数
779
- for (let key in data) {
780
- if (excudekeys.indexOf(key) >= 0) {
781
- continue;
782
- }
783
- let value = data[key];
784
- // 去掉为空的参数
785
- if ([undefined, null].includes(value)) {
786
- value = "";
787
- continue;
788
- } else {
789
- paramKeys.push(key);
790
- }
791
- }
792
- //排序
793
- paramKeys.sort();
794
- for (let key of paramKeys) {
795
- let value = data[key];
796
- let str = encodeURIComponent(key);
797
- if (!value) {
798
- } else if (key === "sortColIds") {
799
- value.forEach((_value) => {
800
- _result.push(str + "[]=" + encodeURIComponent(_value));
801
- });
802
- } else if (value && value.constructor === Array) {
803
- value.forEach((_value) => {
804
- _result.push(str + "[]=" + encodeURIComponent(_value));
805
- });
806
- } else {
807
- _result.push(str + "=" + encodeURIComponent(value));
808
- }
809
- }
810
- return _result.length ? prefix + _result.join("&") : "";
811
- },
812
- getItemType(name_: string, value: string, ltmplConfig: LtmplConfig) {
813
- let name = name_;
814
- if (!value || !ltmplConfig) {
815
- return null;
816
- }
817
-
818
- if (name.startsWith("c_")) {
819
- name = name.substring(2);
820
- }
821
- let cs: CriteriaConfig[] = [];
822
- if (ltmplConfig.criteria) {
823
- cs.push(...ltmplConfig.criteria);
824
- }
825
- if (ltmplConfig.updrillButtonConfigs) {
826
- cs.push(...ltmplConfig.updrillButtonConfigs);
827
- }
828
- if (ltmplConfig.innerParams) {
829
- cs.push(...ltmplConfig.innerParams);
830
- }
831
- if (ltmplConfig.drillingParams) {
832
- cs.push(...ltmplConfig.drillingParams);
833
- }
834
-
835
- for (let c of cs) {
836
- if (c.id == name) {
837
- return ControlTypeSupportor.getControlType(c, value);
838
- }
839
- }
840
- return null;
841
- },
842
- transQueryStrToParams(str, ltmplConfig: LtmplConfig) {
843
- let obj = {};
844
- const arr1 = str.split("?");
845
-
846
- if (arr1 && arr1.length == 2) {
847
- const arr2 = arr1[1].split("&");
848
- for (let i = 0; i < arr2.length; i++) {
849
- if (arr2[i].indexOf("[]=") > 0) {
850
- const res = arr2[i].split("[]=");
851
- const name = res[0];
852
- if (!obj[name]) {
853
- obj[name] = [];
854
- }
855
- let pvalue = decodeURIComponent(res[1]);
856
- obj[name].push(
857
- this.configParamTrans(
858
- pvalue,
859
- this.getItemType(name, pvalue, ltmplConfig)
860
- )
861
- );
862
- } else {
863
- const res = arr2[i].split("=");
864
- const name = res[0];
865
- if (name) {
866
- let pvalue = decodeURIComponent(res[1]);
867
- obj[name] =
868
- this.configParamTrans(
869
- pvalue,
870
- this.getItemType(name, pvalue, ltmplConfig)
871
- );
872
- }
873
- }
874
- }
875
- }
876
- return obj;
877
- },
878
- isConfigDefaultValue(defaultValue) {
879
- if (!defaultValue) {
880
- return false;
881
- }
882
- return defaultValue.startsWith("$$current");
883
- },
884
- configParamTrans(value: string, itemType: string) {
885
- if (value && value.startsWith && value.startsWith("$$current")) {
886
- return TmplConfigAnalysis.current(value, this.getDayjsFormat(itemType));
887
- } else if (value?.startsWith && value.startsWith("$$user.")) { // 默认值根据用户配置
888
- let userInfo: UserInfo = this.getCurrentUserInfo();
889
- if (!userInfo) {
890
- return null;
891
- }
892
- if (value?.startsWith && value.startsWith("$$user.code")) {
893
- return userInfo.id + "@R@";
894
- } else {
895
- return userInfo?.extInfo?.fieldMap?.[value.split("user.")[1]] || null;
896
- }
897
- } else {
898
- return value;
899
- }
900
-
901
- },
902
-
903
- uniq(array, gWord) {
904
- const res = [];
905
- array.map((item) => {
906
- let flag = true;
907
- res.map((it) => {
908
- if (item[gWord] === it[gWord]) {
909
- flag = false;
910
- }
911
- return false;
912
- });
913
- if (flag) {
914
- res.push(item);
915
- }
916
- return false;
917
- });
918
- return res;
919
- },
920
- deepCopy(obj) {
921
- var result = Array.isArray(obj) ? [] : {};
922
- for (var key in obj) {
923
- if (obj.hasOwnProperty(key)) {
924
- if (typeof obj[key] === "object") {
925
- result[key] = this.deepCopy(obj[key]); //递归复制
926
- } else {
927
- result[key] = obj[key];
928
- }
929
- }
930
- }
931
- return result;
932
- },
933
- // forPic(fieldMap) { //原始数据的图片url转化为图片
934
- // for (let i in fieldMap) {
935
- // if (fieldMap[i] && fieldMap[i].includes("download-files")) {
936
- // const url = this.api() + fieldMap[i]
937
- // fieldMap[i] = <img
938
- // style={{width: 55}}
939
- // src={url}
940
- // alt=""/>
941
- // }
942
- // }
943
- // return fieldMap
944
- // },
945
- getFileUrl(file) {
946
- if (!file) {
947
- return file;
948
- } else if (file.constructor === String) {
949
- return file;
950
- } else if (file.constructor === Object) {
951
- if (file.props.children.props) {
952
- const { href } = file.props.children.props;
953
- return href;
954
- } else if (file.props.owlner) {
955
- return file.props.owlner;
956
- } else {
957
- return file;
958
- }
959
- } else {
960
- return file;
961
- }
962
- },
963
-
964
- getOptionColor(options: EnumItem[], value) {
965
- if (!value) {
966
- return null;
967
- }
968
- let color;
969
- if (options) {
970
- options.forEach((option) => {
971
- if (option.value === value) {
972
- if (option.color) {
973
- color = option.color;
974
- }
975
- return;
976
- }
977
- });
978
- }
979
- return color;
980
- },
981
-
982
- getFieldItemType(item) {
983
- return item.extType
984
- ? item.extType
985
- : item.msExtType
986
- ? item.msExtType
987
- : item.msType
988
- ? item.msType
989
- : item.type;
990
- },
991
- isEmpty(obj) {
992
- if (!obj) {
993
- return true;
994
- }
995
- for (let key in obj) {
996
- return false; //非空
997
- }
998
- return true;
999
- },
1000
- getDayjsFormat(itemType) {
1001
- let format = "YYYY-MM-DD HH:mm:ss";
1002
-
1003
- switch (itemType) {
1004
- case "daterange-YY":
1005
- case "date-YY":
1006
- format = "YYYY";
1007
- break;
1008
- case "date-M1":
1009
- case "daterange-M1":
1010
- format = "YYYY-MM";
1011
- break;
1012
- case "date":
1013
- case "daterange":
1014
- format = "YYYY-MM-DD";
1015
- break;
1016
- case "datetime-HH":
1017
- case "datetimerange-HH":
1018
- format = "YYYY-MM-DD HH";
1019
- break;
1020
- case "datetime-mm":
1021
- case "datetimerange-mm":
1022
- format = "YYYY-MM-DD HH:mm";
1023
- break;
1024
- case "datetime":
1025
- case "datetimerange":
1026
- format = "YYYY-MM-DD HH:mm:ss";
1027
- break;
1028
- case "timestamp":
1029
- format = "YYYY-MM-DD HH:mm:ss SSS";
1030
- break;
1031
- case "time-HH":
1032
- case "timerange-HH":
1033
- case "timerange-HH-unorder":
1034
- format = "HH";
1035
- break;
1036
- case "time-mm":
1037
- case "timerange-mm":
1038
- case "timerange-mm-unorder":
1039
- format = "HH:mm";
1040
- break;
1041
- case "time":
1042
- case "timerange":
1043
- case "timerange-unorder":
1044
- format = "HH:mm:ss";
1045
- break;
1046
- }
1047
-
1048
- return format;
1049
- },
1050
- getDateTimeFormat(itemType) {
1051
- let format = "";
1052
- switch (itemType) {
1053
- case "time-HH":
1054
- case "timerange-HH":
1055
- case "datetime-HH":
1056
- case "datetimerange-HH":
1057
- return "HH";
1058
- case "time-mm":
1059
- case "timerange-mm":
1060
- case "datetime-mm":
1061
- case "datetimerange-mm":
1062
- return "HH:mm";
1063
- case "timestamp":
1064
- case "time":
1065
- case "timerange":
1066
- case "datetime":
1067
- case "datetimerange":
1068
- return "HH:mm:ss";
1069
- default:
1070
- return "";
1071
- }
1072
-
1073
- return format;
1074
- },
1075
- // getSelectOptions(data: EnumItem[]) {
1076
- //
1077
- // if (!data) {
1078
- // return [];
1079
- // }
1080
- // const options = []
1081
- // data.map((item) => {
1082
- // options.push(<Option value={item.value} key={item.title}>{item.title}</Option>)
1083
- // return false
1084
- // })
1085
- // return options
1086
- // },
1087
- // getSelectListOfStrList(data) {
1088
- //
1089
- // if (!data) {
1090
- // return [];
1091
- // }
1092
- // const options = []
1093
- // data.map((item) => {
1094
- // options.push(<Option value={item} key={item}>{item}</Option>)
1095
- // return false
1096
- // })
1097
- // return options
1098
- // },
1099
- // getSelectOptionsOfMstrucId(mstrucId: string) {
1100
- // return this.getSelectOptions(HCDataSource.getEnums(mstrucId));
1101
- // },
1102
- concatValue(value1, vaule2) {
1103
- let newValue = undefined;
1104
- if (value1) {
1105
- newValue = value1 + "~";
1106
- } else {
1107
- newValue = "~";
1108
- }
1109
-
1110
- if (vaule2) {
1111
- newValue = newValue + vaule2;
1112
- }
1113
- return newValue;
1114
- },
1115
- splitValue(value) {
1116
- let valueBegin, valueEnd;
1117
- if (value) {
1118
- if (value.toString().indexOf("~") >= 0) {
1119
- let splitValue: string[] = value.split("~");
1120
- valueBegin = splitValue[0] ? splitValue[0] : undefined;
1121
- valueEnd = splitValue[1] ? splitValue[1] : undefined;
1122
- } else {
1123
- valueBegin = value;
1124
- }
1125
- }
1126
-
1127
- return { valueBegin, valueEnd };
1128
- },
1129
- str2UTF8(str) {
1130
- var bytes = new Array();
1131
- var len, c;
1132
- len = str.length;
1133
- for (var i = 0; i < len; i++) {
1134
- c = str.charCodeAt(i);
1135
- if (c >= 0x010000 && c <= 0x10ffff) {
1136
- bytes.push(((c >> 18) & 0x07) | 0xf0);
1137
- bytes.push(((c >> 12) & 0x3f) | 0x80);
1138
- bytes.push(((c >> 6) & 0x3f) | 0x80);
1139
- bytes.push((c & 0x3f) | 0x80);
1140
- } else if (c >= 0x000800 && c <= 0x00ffff) {
1141
- bytes.push(((c >> 12) & 0x0f) | 0xe0);
1142
- bytes.push(((c >> 6) & 0x3f) | 0x80);
1143
- bytes.push((c & 0x3f) | 0x80);
1144
- } else if (c >= 0x000080 && c <= 0x0007ff) {
1145
- bytes.push(((c >> 6) & 0x1f) | 0xc0);
1146
- bytes.push((c & 0x3f) | 0x80);
1147
- } else {
1148
- bytes.push(c & 0xff);
1149
- }
1150
- }
1151
- return bytes;
1152
- },
1153
- joinPath(path1, path2) {
1154
- let path = path1;
1155
- if (!path.endsWith("/") && !path.endsWith("\\")) {
1156
- path = path + "/";
1157
- }
1158
- if (path2) {
1159
- if (path2.startsWith("/") || path.startsWith("\\")) {
1160
- path = path + path2.slice(1);
1161
- } else {
1162
- path = path + path2;
1163
- }
1164
- }
1165
- return path;
1166
- },
1167
- // getRouteProgramCode(pathProps){
1168
- // if (pathProps && pathProps.match && pathProps.match.params) {
1169
- // const {programCode} = pathProps.match.params;
1170
- // return programCode;
1171
- // }
1172
- // },
1173
- setProgramCode4RoutePath(pathParams) {
1174
- const { programCode, applicationCode } = pathParams;
1175
- this.setProgramCode(programCode);
1176
- this.setApplicationCode(applicationCode);
1177
- },
1178
- setSessionProgramCode4RoutePath(pathParams) {
1179
- const { programCode, applicationCode } = pathParams;
1180
- this.setSessionProgramCode(programCode);
1181
- this.setSessionApplicationCode(applicationCode);
1182
- },
1183
- getReactKey() {
1184
- return new Date().getTime().toString();
1185
- },
1186
- async getUserInfo(programCode?: string, token?: string, applicationCode?: string) {
1187
- if (currentUser?.name) {
1188
- return currentUser;
1189
- }
1190
- let user = await HcserviceV3.getUser(programCode, token, applicationCode);
1191
- if (user?.orgGtmplSourceId && !["null"].includes(user.orgGtmplSourceId)) {
1192
- const { ltmplConfig } = await HcserviceV3.requestLtmplConfig(null, user.orgGtmplSourceId) || {};
1193
- const { entities } = await HcserviceV3.requestLtmplQueryTop(null, user.orgGtmplSourceId, { top: 1 }) || {};
1194
- const primaryColumnId = ltmplConfig?.extDisplayConfig?.primaryColumn?.id; // 首字段
1195
- const mainPictureId = ltmplConfig?.extDisplayConfig?.mainPicture?.id; // 主图字段
1196
- const orgName = entities?.[0]?.fieldMap?.[primaryColumnId];
1197
- const homeImg = entities?.[0]?.fieldMap?.[mainPictureId];
1198
- user = { ...user, orgName, homeImg }
1199
- }
1200
- currentUser = user;
1201
- return currentUser;
1202
- },
1203
- getCurrentUserInfo() {
1204
- return currentUser;
1205
- },
1206
- // 低代码拖拽页面-自定义组件
1207
- setCustomComponent(key_: string, name: object) {
1208
- let key = key_;
1209
- if (!key) {
1210
- return;
1211
- }
1212
- CUSTOM_COMPONENT_MAP[key] = name;
1213
- },
1214
- getCustomComponent(key: string) {
1215
- if (!key) {
1216
- return null;
1217
- }
1218
- return CUSTOM_COMPONENT_MAP[key];
1219
- },
1220
- getAllThemes() { // 主题风格-路径配置
1221
- const themes = {
1222
- v2: { path: "v2", loginPath: "login2" },
1223
- v3: { path: "v3", loginPath: "login3" },
1224
- v4: { path: "v4", loginPath: "login4" },
1225
- v5: { path: "v5", loginPath: "login2" },
1226
- };
1227
- return themes;
1228
- },
1229
- toDefaultTheme(defTheme?: string) {
1230
- const temTheme = defTheme || ProgramConfig.getDefaultTheme();
1231
- let hash = window.location.hash;
1232
- if (regexTheme.test(hash)) {
1233
- hash = hash.replace(regexTheme, `${temTheme}/home`);
1234
- window.location.hash = hash;
1235
- } else {
1236
- const localVersion = localStorage.getItem("version");
1237
- if (!localVersion) {
1238
- window.location.hash = `#/${temTheme}/home`;
1239
- }
1240
- }
1241
- },
1242
- async getThemeConfig(serverKey?: string) {
1243
- if (themeConfig) {
1244
- return themeConfig;
1245
- }
1246
- const programCode = this.programCode();
1247
- const applicationCode = this.applicationCode();
1248
- const server = this.api(serverKey);
1249
- const { themeConfig: temConfig } = await HcserviceV3.getThemeConfig(serverKey, programCode) || {};
1250
- const loginMainPicture = temConfig?.loginMainPicture ? this.joinPath(server, `/v3/theme-files/${temConfig?.loginMainPicture}?@programToken=${programCode}&@applicationToken=${applicationCode}`) : null;
1251
- const programIcon = temConfig?.programIcon ? this.joinPath(server, `/v3/theme-files/${temConfig?.programIcon}?@programToken=${programCode}&@applicationToken=${applicationCode}`) : null;
1252
- themeConfig = { ...temConfig, loginMainPicture, programIcon };
1253
- return themeConfig;
1254
- },
1255
- getThemeConfigInfo() {
1256
- return themeConfig;
1257
- },
1258
- coverUserPageConfig(setting: { [key: string]: any }) { // 页面配置覆盖
1259
- const currentUser = this.getCurrentUserInfo();
1260
- if (!setting || !currentUser) return;
1261
- const programCode = this.programCode();
1262
- const applicationCode = this.applicationCode();
1263
- const localKey = `${currentUser.id}-${programCode}${applicationCode ? `-${applicationCode}` : ""}-userPageConfig`;
1264
- localStorage.setItem(localKey, JSON.stringify(setting));
1265
- },
1266
- setUserPageConfig(key: string, setting: { [key: string]: any }) { // 页面配置(视图、列、分页等)存本地
1267
- const currentUser = this.getCurrentUserInfo();
1268
- if (!key || !setting || !currentUser) return;
1269
- const programCode = this.programCode();
1270
- const applicationCode = this.applicationCode();
1271
- const localKey = `${currentUser.id}-${programCode}${applicationCode ? `-${applicationCode}` : ""}-userPageConfig`;
1272
- const userPageConfig = localStorage.getItem(localKey) || "{}";
1273
- let config = {};
1274
- try {
1275
- config = JSON.parse(userPageConfig);
1276
- } catch {
1277
- config = {};
1278
- }
1279
- config[key] = { ...(config[key] || {}), ...setting };
1280
- localStorage.setItem(localKey, JSON.stringify(config));
1281
- return config[key];
1282
- },
1283
- async getUserPageConfig(key: string) { // 获取当前页面配置本地缓存
1284
- const currentUser = await this.getUserInfo();
1285
- if (!key || !currentUser) return;
1286
- const programCode = this.programCode();
1287
- const applicationCode = this.applicationCode();
1288
- const localKey = `${currentUser.id}-${programCode}${applicationCode ? `-${applicationCode}` : ""}-userPageConfig`;
1289
- const userPageConfig = localStorage.getItem(localKey) || "{}";
1290
- try {
1291
- const config = JSON.parse(userPageConfig);
1292
- return config[key];
1293
- } catch {
1294
- return;
1295
- }
1296
- },
1297
- resetUserPageConfig(key: string) { // 重置当前页面配置本地缓存
1298
- const currentUser = this.getCurrentUserInfo();
1299
- if (!key || !currentUser) return;
1300
- const programCode = this.programCode();
1301
- const applicationCode = this.applicationCode();
1302
- const localKey = `${currentUser.id}-${programCode}${applicationCode ? `-${applicationCode}` : ""}-userPageConfig`;
1303
- const userPageConfig = localStorage.getItem(localKey) || "{}";
1304
- try {
1305
- const config = JSON.parse(userPageConfig);
1306
- config[key] = undefined;
1307
- localStorage.setItem(localKey, JSON.stringify(config));
1308
- } catch {
1309
- return;
1310
- }
1311
- },
1312
- async getPageConfigCommon(menuCode: string, type?: "default" | "refresh") {
1313
- // type == refresh 请求新数据,不使用缓存
1314
- if ((!type || type === "default") && pageConfigCommons[menuCode]) {
1315
- return pageConfigCommons[menuCode];
1316
- }
1317
- const configs = await HcserviceV3.getPageConfigCommon(menuCode);
1318
- pageConfigCommons[menuCode] = configs;
1319
- return configs;
1320
- },
1321
- async getPageConfigDefault() { // 拉取用户默认配置
1322
- const configs = await HcserviceV3.getPageConfigDefault();
1323
- const defUserPageConfig = configs.reduce((total, cur) => {
1324
- total[cur.menuCode] = cur.content ? JSON.parse(cur.content) : undefined;
1325
- return total;
1326
- }, {});
1327
- this.coverUserPageConfig(defUserPageConfig); // 覆盖本地缓存
1328
- return configs;
1329
- },
1330
- findItemByIdIterative(tree: any[], value: string | number, key = "id") { // 查找树级数组中的指定项
1331
- if (!tree?.length) {
1332
- return undefined;
1333
- }
1334
- // 使用一个栈来存储待遍历的节点
1335
- const stack = [...tree];
1336
- while (stack.length > 0) {
1337
- const node = stack.pop();
1338
- if (node[key] === value) {
1339
- return node;
1340
- }
1341
- if (node.children && node.children.length > 0) {
1342
- stack.push(...node.children);
1343
- }
1344
- }
1345
- return undefined;
1346
- },
1347
- async get2DComponent(groups: string[]) { // 获取2D组件数据
1348
- const temGroups = groups.filter(r => !components2DMap[r]);
1349
- if (!temGroups?.length) {
1350
- return components2DMap;
1351
- }
1352
- const res = await HcserviceV3.get2DComponent(temGroups);
1353
- const temObj = Object.keys(res).reduce((total, next) => {
1354
- total[next] = res[next] || [];
1355
- return total;
1356
- }, {});
1357
- components2DMap = { ...components2DMap, ...temObj };
1358
- return components2DMap;
1359
- },
1360
- get2DComponentByType(type: string) { // 获取指定类型组件
1361
- if (!type) {
1362
- return;
1363
- }
1364
- const item = Object.values(components2DMap).flat(Infinity).find((r: any) => r.type === type);
1365
- return item;
1366
- }
1367
- };
1
+ // import React from 'react'
2
+ import {
3
+ CriteriaConfig, CustomButtonConfig,
4
+ DtmplConfig,
5
+ DtmplData,
6
+ DtmplFormProps,
7
+ EnumItem,
8
+ LtmplConfig,
9
+ SelectConfig,
10
+ ThemeConfig
11
+ } from "../tmpl/interface";
12
+ import dayjs from "dayjs";
13
+ import TmplConfigAnalysis from "../tmpl/tmpl-config-analysis";
14
+ import { ProgramConfig } from "../index";
15
+ import { CriteriaFormProps } from "../form/criteria-form";
16
+ import ControlTypeSupportor from "../tmpl/control-type-supportor";
17
+ import HcserviceV3 from "../tmpl/hcservice-v3";
18
+ import { UserInfo } from "../tmpl/interface";
19
+
20
+ let storageKeyPrefix = undefined;
21
+
22
+ const CUSTOM_PAGE_MAP = {};
23
+
24
+ let MENU_MAP = {};
25
+
26
+ let MENU_ID_ICON_MAP = {};
27
+
28
+ const CustomButtonConfig_Map = {}
29
+
30
+ const CUSTOM_VIEW_CONTROL_MAP = {};
31
+
32
+ const AppDtmplConfigFuncMap = {};
33
+
34
+ const AppCtmplConfigFuncMap = {};
35
+
36
+ const CUSTOM_EDIT_CONTROL_MAP = {};
37
+
38
+ let currentUser = undefined;
39
+
40
+ const extendServerMap = {};
41
+
42
+ let antdUseToken = undefined;
43
+
44
+ const CUSTOM_COMPONENT_MAP = {};
45
+
46
+ // 主题url vx替换正则
47
+ const regexTheme = /(?<=#\/)vx/g;
48
+
49
+ let themeConfig: ThemeConfig = undefined; // 系统配置主题等
50
+
51
+ const pageConfigCommons = {}; // 用户页面自定义配置
52
+
53
+ let components2DMap = {}; // 2D图形组件
54
+
55
+ // let siderCollapsed:boolean = true;
56
+
57
+ export default {
58
+ setAntdUseToken(antdUseToken_) {
59
+ antdUseToken = antdUseToken_;
60
+ },
61
+ getAntdUseToken() {
62
+ return antdUseToken;
63
+ },
64
+
65
+ //静态补充
66
+ setAppDtmplConfigFunc(
67
+ key: string,
68
+ func: (dtmplConfig: DtmplConfig, dtmplData: DtmplData) => DtmplConfig
69
+ ) {
70
+ AppDtmplConfigFuncMap[key] = func;
71
+ },
72
+
73
+
74
+ setMenuIconMap(menuIconMap) {
75
+ MENU_ID_ICON_MAP = menuIconMap;
76
+ },
77
+ mapMenuIcon(menuId) {
78
+ return MENU_ID_ICON_MAP[menuId];
79
+ },
80
+
81
+ setMenuMap(menuMap) {
82
+ MENU_MAP = menuMap;
83
+ },
84
+ mapMenu(menuId) {
85
+ if (menuId == 'home') {
86
+ return "首页"
87
+ }
88
+ return MENU_MAP[menuId];
89
+ },
90
+
91
+
92
+ getAppDtmplConfig(
93
+ dtmplConfig: DtmplConfig,
94
+ dtmplData: DtmplData,
95
+ props: DtmplFormProps
96
+ ) {
97
+ if (dtmplConfig) {
98
+ if (AppDtmplConfigFuncMap[dtmplConfig.id]) {
99
+ return AppDtmplConfigFuncMap[dtmplConfig.id](
100
+ dtmplConfig,
101
+ dtmplData,
102
+ props
103
+ );
104
+ } else {
105
+ //用内置的
106
+ return TmplConfigAnalysis.buildInDtmplConfig(
107
+ dtmplConfig,
108
+ dtmplData,
109
+ props
110
+ );
111
+ }
112
+ }
113
+ return dtmplConfig;
114
+ },
115
+
116
+ setCustomButtonConfig(
117
+ key: string,
118
+ config: CustomButtonConfig
119
+ ) {
120
+ CustomButtonConfig_Map[key] = config;
121
+ },
122
+
123
+ getCustomButtonConfig(
124
+ key: string
125
+ ) {
126
+ return CustomButtonConfig_Map[key];
127
+ },
128
+
129
+ setAppCtmplConfigFunc(
130
+ key: string,
131
+ func: (ltmplConfig: SelectConfig, data: Object) => SelectConfig
132
+ ) {
133
+ AppCtmplConfigFuncMap[key] = func;
134
+ },
135
+
136
+ getAppCtmplConfig(
137
+ ltmplConfig: SelectConfig,
138
+ criteriaData: Object,
139
+ props: CriteriaFormProps
140
+ ) {
141
+ if (ltmplConfig) {
142
+ if (AppCtmplConfigFuncMap[ltmplConfig.id]) {
143
+ return AppCtmplConfigFuncMap[ltmplConfig.id](
144
+ ltmplConfig,
145
+ criteriaData,
146
+ props
147
+ );
148
+ } else {
149
+ //用内置的
150
+ return TmplConfigAnalysis.buildInCtmplConfig(
151
+ ltmplConfig,
152
+ criteriaData,
153
+ props
154
+ );
155
+ }
156
+ }
157
+ return ltmplConfig;
158
+ },
159
+
160
+ isDynamicDtmplConfig(dtmplConfig: DtmplConfig) {
161
+ if (dtmplConfig && AppDtmplConfigFuncMap[dtmplConfig.id]) {
162
+ return true;
163
+ }
164
+ return false;
165
+ },
166
+
167
+ setCustomPage(key_: string, name: object) {
168
+ let key = key_;
169
+ if (!key) {
170
+ return;
171
+ }
172
+ if (!key.startsWith("/")) {
173
+ key = "/" + key;
174
+ }
175
+ CUSTOM_PAGE_MAP[key] = name;
176
+ },
177
+ setCustomControl(key_: string, view: object, edit: object) {
178
+ let key = key_;
179
+ if (!key.startsWith("/")) {
180
+ key = "/" + key;
181
+ }
182
+ CUSTOM_VIEW_CONTROL_MAP[key] = view;
183
+ CUSTOM_EDIT_CONTROL_MAP[key] = edit;
184
+ },
185
+ getCustomViewControl(key: string) {
186
+ if (!key) {
187
+ return null;
188
+ }
189
+ if (!key.startsWith("/")) {
190
+ return CUSTOM_VIEW_CONTROL_MAP["/" + key];
191
+ } else {
192
+ return CUSTOM_VIEW_CONTROL_MAP[key];
193
+ }
194
+ },
195
+ getCustomEditControl(key: string) {
196
+ if (!key) {
197
+ return null;
198
+ }
199
+ if (!key.startsWith("/")) {
200
+ return CUSTOM_EDIT_CONTROL_MAP["/" + key];
201
+ } else {
202
+ return CUSTOM_EDIT_CONTROL_MAP[key];
203
+ }
204
+ },
205
+ getCustomPage(key: string) {
206
+ if (!key) {
207
+ return null;
208
+ }
209
+ if (!key.startsWith("/")) {
210
+ return CUSTOM_PAGE_MAP["/" + key];
211
+ } else {
212
+ return CUSTOM_PAGE_MAP[key];
213
+ }
214
+ },
215
+ setProgramCode(programCode_: string, key?: string) {
216
+ if (programCode_) {
217
+ if (key) {
218
+ window.localStorage.setItem(key + "programCode", programCode_);
219
+ } else {
220
+ window.localStorage.setItem("programCode", programCode_);
221
+ window.sessionStorage.setItem("programCode", programCode_);
222
+ }
223
+ }
224
+ },
225
+ setSessionProgramCode(programCode_: string) {
226
+ if (programCode_) {
227
+ window.sessionStorage.setItem("programCode", programCode_);
228
+ }
229
+ },
230
+ programCode(key?: string) {
231
+ let programCode = null;
232
+ if (key) {
233
+ programCode = window.localStorage.getItem(key + "programCode");
234
+ if (!programCode && key === "localDevopsServer") { // 2D图图片上传模型,配置为空则使用默认值
235
+ programCode = "282877560559017986";
236
+ }
237
+ } else {
238
+ programCode = window.sessionStorage.getItem("programCode");
239
+ }
240
+
241
+ if (!programCode) {
242
+ programCode = window.localStorage.getItem("programCode");
243
+ this.setSessionProgramCode(programCode);
244
+ }
245
+ return programCode;
246
+ },
247
+ setApplicationCode(applicationCode_: string, key?: string) {
248
+ if (applicationCode_) {
249
+ if (key) {
250
+ window.localStorage.setItem(key + "applicationCode", applicationCode_);
251
+ } else {
252
+ window.localStorage.setItem("applicationCode", applicationCode_);
253
+ window.sessionStorage.setItem("applicationCode", applicationCode_);
254
+ }
255
+ }
256
+ },
257
+ setSessionApplicationCode(applicationCode_: string) {
258
+ if (applicationCode_) {
259
+ window.sessionStorage.setItem("applicationCode", applicationCode_);
260
+ }
261
+ },
262
+ applicationCode(key?: string) {
263
+ let applicationCode = null;
264
+ if (key) {
265
+ applicationCode = window.localStorage.getItem(key + "applicationCode");
266
+ } else {
267
+ applicationCode = window.sessionStorage.getItem("applicationCode");
268
+ }
269
+
270
+ if (!applicationCode) {
271
+ applicationCode = window.localStorage.getItem("applicationCode");
272
+ this.setSessionProgramCode(applicationCode);
273
+ }
274
+ return applicationCode;
275
+ },
276
+ setHydrocarbonServer(url: string, key?: string) {
277
+ if (key) {
278
+ window.localStorage.setItem(key + "hydrocarbonServer", url);
279
+ } else if (this.programCode()) {
280
+ window.localStorage.setItem(
281
+ this.programCode() + "hydrocarbonServer",
282
+ url
283
+ );
284
+ } else {
285
+ window.localStorage.setItem("hydrocarbonServer", url);
286
+ }
287
+ },
288
+ setProgramName_Logo(logo1: string) {
289
+ if (this.programCode()) {
290
+ window.localStorage.setItem(
291
+ this.programCode() + "programName_Logo",
292
+ logo1
293
+ );
294
+ } else {
295
+ window.localStorage.setItem("programName_Logo", logo1);
296
+ }
297
+ },
298
+ api(key?: string) {
299
+ let appi = null;
300
+ if (key) {
301
+ appi = window.localStorage.getItem(key + "hydrocarbonServer");
302
+ } else {
303
+ appi = window.localStorage.getItem(
304
+ this.programCode() + "hydrocarbonServer"
305
+ );
306
+ }
307
+ if (!appi) {
308
+ appi = window.localStorage.getItem("hydrocarbonServer");
309
+ }
310
+
311
+ if (!appi) {
312
+ let url = new URL(window.location.href);
313
+ let pathname = null;
314
+ if (url.pathname.indexOf("/kuangkie") > 0) {
315
+ pathname = url.pathname.split("/kuangkie")[0];
316
+ }
317
+ appi = this.joinPath(url.origin, pathname);
318
+ } else if (appi == "/") {
319
+ //以当前为主
320
+ let url = new URL(window.location.href);
321
+ let pathname = url.pathname.split("/kuangkie")[0];
322
+ appi = this.joinPath(url.origin, pathname);
323
+ } else if (appi.startsWith("/-")) {
324
+ let url = new URL(window.location.href);
325
+ let afterOrigin = url.href.replace(`${url.origin}/`, '').split("/");
326
+ let num = appi.match(/-/g)?.length || 0;
327
+ let pathname = afterOrigin.slice(0, num).join("/");
328
+ appi = this.joinPath(url.origin, pathname);
329
+ } else if (!appi.startsWith("http")) {
330
+ appi = this.joinPath(new URL(window.location.href).origin, appi);
331
+ }
332
+ return appi;
333
+ },
334
+ hydrocarbonToken(programCode_?: string, applicationCode_?: string) {
335
+ let programCode = programCode_ ? programCode_ : this.programCode();
336
+ let applicationCode = applicationCode_ || this.applicationCode() || "";
337
+ let hydrocarbonToken = window.sessionStorage.getItem(
338
+ programCode + applicationCode + "hydrocarbonToken"
339
+ );
340
+ if (!hydrocarbonToken) {
341
+ hydrocarbonToken = window.sessionStorage.getItem("hydrocarbonToken");
342
+ }
343
+ if (!hydrocarbonToken) {
344
+ hydrocarbonToken = window.localStorage.getItem(
345
+ programCode + applicationCode + "hydrocarbonToken"
346
+ );
347
+ if (!hydrocarbonToken) {
348
+ hydrocarbonToken = window.localStorage.getItem("hydrocarbonToken");
349
+ }
350
+ if (hydrocarbonToken) {
351
+ this.setSessionHydrocarbonToken(hydrocarbonToken, programCode, applicationCode);
352
+ }
353
+ }
354
+ return hydrocarbonToken;
355
+ },
356
+ setServerHydrocarbonToken(serverkey: string, token: string) {
357
+ if (serverkey && token) {
358
+ window.sessionStorage.setItem(serverkey + "hydrocarbonToken", token);
359
+ }
360
+ this.setHydrocarbonToken(token, serverkey);
361
+ },
362
+ serverHydrocarbonToken(serverKey: string) {
363
+ let hydrocarbonToken = window.sessionStorage.getItem(serverKey + "hydrocarbonToken");
364
+ if (!hydrocarbonToken) {
365
+ hydrocarbonToken = window.localStorage.getItem(serverKey + "hydrocarbonToken");
366
+ }
367
+ if (!serverKey || !hydrocarbonToken) { // serverKey不存在
368
+ hydrocarbonToken = this.hydrocarbonToken();
369
+ }
370
+ return hydrocarbonToken;
371
+ },
372
+ putExtendServers(extendServers) {
373
+ for (let es of extendServers) {
374
+ extendServerMap[es.key] = es;
375
+ if (es.key && es["hydrocarbonServer"]) {
376
+ ProgramConfig.setProgramCode(es["programCode"], es.key);
377
+ ProgramConfig.setHydrocarbonServer(es["hydrocarbonServer"], es.key);
378
+ }
379
+ }
380
+ },
381
+ getExtendServers(serverKey) {
382
+ return extendServerMap[serverKey];
383
+ },
384
+ setHydrocarbonToken(token: string, serverkey?: string) {
385
+ let programCode = this.programCode(serverkey);
386
+ let applicationCode = this.applicationCode(serverkey);
387
+ this.setLocalHydrocarbonToken(token, programCode, applicationCode);
388
+ this.setSessionHydrocarbonToken(token, programCode, applicationCode);
389
+ },
390
+ setLocalHydrocarbonToken(token: string, programCode_?: string, applicationCode_?: string) {
391
+ if (!programCode_) {
392
+ // if(!window.localStorage.getItem('hydrocarbonToken')){
393
+ window.localStorage.setItem("hydrocarbonToken", token);
394
+ //}
395
+ }
396
+ let programCode = programCode_ ? programCode_ : this.programCode();
397
+ let applicationCode = applicationCode_ || this.applicationCode() || "";
398
+ if (programCode) {
399
+ window.localStorage.setItem(programCode + applicationCode + "hydrocarbonToken", token);
400
+ //初次设为默认
401
+ if (!window.localStorage.getItem("hydrocarbonToken")) {
402
+ window.localStorage.setItem("hydrocarbonToken", token);
403
+ }
404
+ }
405
+ // else{
406
+ // window.localStorage.setItem('hydrocarbonToken',token);
407
+ // }
408
+ },
409
+ setSessionHydrocarbonToken(token: string, programCode_?: string, applicationCode_?: string) {
410
+ if (!programCode_) {
411
+ //初次设为默认
412
+ //if(!window.sessionStorage.getItem('hydrocarbonToken')){
413
+ window.sessionStorage.setItem("hydrocarbonToken", token);
414
+ // }
415
+ }
416
+ let programCode = programCode_ ? programCode_ : this.programCode();
417
+ let applicationCode = applicationCode_ || this.applicationCode() || "";
418
+ if (programCode) {
419
+ window.sessionStorage.setItem(programCode + applicationCode + "hydrocarbonToken", token);
420
+ if (!window.sessionStorage.getItem("hydrocarbonToken")) {
421
+ window.sessionStorage.setItem("hydrocarbonToken", token);
422
+ }
423
+ }
424
+ // else{
425
+ // window.sessionStorage.setItem('hydrocarbonToken',token) ;
426
+ // }
427
+ },
428
+ setProgramName(programName_: string) {
429
+ if (this.programCode()) {
430
+ window.localStorage.setItem(
431
+ this.programCode() + "programName",
432
+ programName_
433
+ );
434
+ } else {
435
+ window.localStorage.setItem("programName", programName_);
436
+ }
437
+ },
438
+ programName() {
439
+ if (this.programCode()) {
440
+ return window.localStorage.getItem(this.programCode() + "programName");
441
+ } else {
442
+ return window.localStorage.getItem("programName");
443
+ }
444
+ },
445
+ setProgramName_sub(programName_sub_: string) {
446
+ if (this.programCode()) {
447
+ window.localStorage.setItem(
448
+ this.programCode() + "programName_sub",
449
+ programName_sub_
450
+ );
451
+ } else {
452
+ window.localStorage.setItem("programName_sub", programName_sub_);
453
+ }
454
+ },
455
+ programName_sub() {
456
+ if (this.programCode()) {
457
+ return window.localStorage.getItem(
458
+ this.programCode() + "programName_sub"
459
+ );
460
+ } else {
461
+ return window.localStorage.getItem("programName_sub");
462
+ }
463
+ },
464
+ setProgramName_NavLeft(programName_NavLeft_: string) {
465
+ if (this.programCode()) {
466
+ window.localStorage.setItem(
467
+ this.programCode() + "programName_NavLeft",
468
+ programName_NavLeft_
469
+ );
470
+ } else {
471
+ window.localStorage.setItem("programName_NavLeft", programName_NavLeft_);
472
+ }
473
+ },
474
+ programName_NavLeft() {
475
+ let result;
476
+ if (this.programCode()) {
477
+ result = window.localStorage.getItem(
478
+ this.programCode() + "programName_NavLeft"
479
+ );
480
+ }
481
+ if (!result) {
482
+ result = window.localStorage.getItem("programName_NavLeft");
483
+ }
484
+ return result ? result : "管理平台";
485
+ },
486
+ programName_Logo() {
487
+ let item = null;
488
+ if (this.programCode()) {
489
+ item = window.localStorage.getItem(
490
+ this.programCode() + "programName_Logo"
491
+ );
492
+ }
493
+ if (!item) {
494
+ item = window.localStorage.getItem("programName_Logo");
495
+ }
496
+ return item && item == "undefined" ? null : item;
497
+ },
498
+
499
+ setThemes(themes: string[]) {
500
+ const themesStr = themes?.length ? themes.join(",") : "";
501
+ if (this.programCode()) {
502
+ window.localStorage.setItem(
503
+ this.programCode() + "themes",
504
+ themesStr
505
+ );
506
+ } else {
507
+ window.localStorage.setItem("themes", themesStr);
508
+ }
509
+ },
510
+
511
+ themes() {
512
+ let themes = "";
513
+ if (this.programCode()) {
514
+ themes = window.localStorage.getItem(
515
+ this.programCode() + "themes"
516
+ );
517
+ } else {
518
+ themes = window.localStorage.getItem("themes");
519
+ }
520
+
521
+ return themes ? themes.split(",") : [];
522
+ },
523
+
524
+ setDefaultTheme(theme: string) {
525
+ let key = "defaultTheme";
526
+ if (this.programCode()) {
527
+ key = this.programCode() + "defaultTheme";
528
+ }
529
+ if (!theme) {
530
+ window.localStorage.removeItem(key);
531
+ return;
532
+ }
533
+ window.localStorage.setItem(key, theme);
534
+ },
535
+
536
+ getDefaultTheme() {
537
+ let theme = "";
538
+ if (this.programCode()) {
539
+ theme = window.localStorage.getItem(
540
+ this.programCode() + "defaultTheme"
541
+ );
542
+ } else {
543
+ theme = window.localStorage.getItem("defaultTheme");
544
+ }
545
+ return theme || "v2";
546
+ },
547
+
548
+ formateDate(time) {
549
+ if (!time) return "";
550
+ return dayjs(new Date(time)).format("YYYY-MM-DD HH:mm:ss");
551
+ //let str=date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();
552
+ // return str;
553
+ },
554
+ dateToString(date) {
555
+ //日期转字符串
556
+ //console.log(date)
557
+ let year = date.getFullYear();
558
+ let month = (date.getMonth() + 1).toString();
559
+ let day = date.getDate().toString();
560
+ if (month.length === 1) {
561
+ month = "0" + month;
562
+ }
563
+ if (day.length === 1) {
564
+ day = "0" + day;
565
+ }
566
+ const dateTime = year + "-" + month + "-" + day;
567
+ return dateTime;
568
+ },
569
+ pagination(data, callback) {
570
+ const page = {
571
+ onchange: (current) => {
572
+ callback(current);
573
+ },
574
+ current: data.pageInfo.pageNo,
575
+ pageSize: data.pageInfo.pageSize,
576
+ total: data.pageInfo.count,
577
+ showTotal: () => {
578
+ return `共${data.pageInfo.count}条`;
579
+ },
580
+ showQuickIumper: true,
581
+ };
582
+ return page;
583
+ },
584
+ // getRadioList(data) {
585
+ // if (!data) {
586
+ // return [];
587
+ // }
588
+ // const options = []
589
+ // data.map((item) => {
590
+ // options.push(<Radio value={item.id} key={item.id}>{item.name}</Radio>)
591
+ // return false
592
+ // })
593
+ // return options
594
+ // },
595
+ // downloadFile_(url) {
596
+ // try {
597
+ // let elemIF = document.createElement("iframe");
598
+ // //elemIF.src = url;
599
+ // elemIF.src = "javascript: '<script>location.href=\"" + url + "\"</script>'"
600
+ // elemIF.style.display = "none";
601
+ // document.body.appendChild(elemIF);
602
+ // } catch (e) {
603
+ // message.error(e)
604
+ // }
605
+ // },
606
+ openFile(url, fileName, toolbar) {
607
+ try {
608
+ let a = document.createElement("a");
609
+ a.href = url + toolbar;
610
+ a.target = "_blank";
611
+ document.body.appendChild(a);
612
+ a.click();
613
+ document.body.removeChild(a);
614
+ } catch (e) {
615
+ console.log(e);
616
+ }
617
+ },
618
+ toLogin() {
619
+ let programCode = this.programCode();
620
+ let applicationCode = this.applicationCode();
621
+ const version = localStorage.getItem("version");
622
+ const themes = this.getAllThemes();
623
+ const loginPath = themes[version]?.loginPath || "login2";
624
+ if (programCode && programCode != "null" && programCode != "undefined") {
625
+ window.location.hash = applicationCode && applicationCode != "null" && applicationCode != "undefined" ? `#/${loginPath}/${programCode}/${applicationCode}` : `#/${loginPath}/${programCode}`;
626
+ } else {
627
+ window.location.hash = `#/${loginPath}`;
628
+ }
629
+ },
630
+ logout() { // 退出登录,清除数据缓存
631
+ currentUser = undefined;
632
+ },
633
+ async downloadFile(url, fileName) {
634
+ try {
635
+ // 检查是否跨域
636
+ if (new URL(url).origin !== window.location.origin) {
637
+ // 跨域资源使用Fetch API方式
638
+ const response = await fetch(url);
639
+ const blob = await response.blob();
640
+ const blobUrl = window.URL.createObjectURL(blob);
641
+ let a = document.createElement('a');
642
+ a.href = blobUrl;
643
+ a.download = fileName;
644
+ document.body.appendChild(a);
645
+ a.click();
646
+ // 清理
647
+ window.URL.revokeObjectURL(blobUrl);
648
+ document.body.removeChild(a);
649
+ } else {
650
+ let a = document.createElement("a");
651
+ a.download = fileName;
652
+ a.href = url;
653
+ //a.target= "_blank";
654
+ document.body.appendChild(a);
655
+ a.click();
656
+ document.body.removeChild(a);
657
+ }
658
+ } catch (e) {
659
+ console.log(e);
660
+ }
661
+ },
662
+ downloadFile_old(url) {
663
+ try {
664
+ let a = document.createElement("form");
665
+ a.action = url;
666
+ //a.target= "_blank";
667
+ document.body.appendChild(a);
668
+ a.submit();
669
+ document.body.removeChild(a);
670
+ } catch (e) {
671
+ console.log(e);
672
+ }
673
+ },
674
+ //随机数
675
+ getRandomNum(n) {
676
+ let rnd = "";
677
+ let f = Math.floor(Math.random() * 10);
678
+ rnd += f == 0 ? "1" : f + "";
679
+ for (let i = 1; i < n; i++) {
680
+ rnd += Math.floor(Math.random() * 10);
681
+ }
682
+ return rnd;
683
+ },
684
+ /**
685
+ * 获得用于在本地持久缓存的数据的Key前缀
686
+ * 当前返回的值是第一次访问当前方法时的所在页面链接的pathname
687
+ * 表示在不同的pathname下,永久缓存的数据将互不干扰
688
+ * @returns {undefined}
689
+ */
690
+ getStorageKeyPrefix() {
691
+ if (storageKeyPrefix === undefined) {
692
+ storageKeyPrefix = window.location.pathname || "";
693
+ }
694
+ return storageKeyPrefix;
695
+ },
696
+
697
+ getLongTextStyle(value) {
698
+ if (!value) {
699
+ return {};
700
+ }
701
+ let style = {
702
+ minWidth: "normal",
703
+ maxWidth: "1000px",
704
+ display: "block",
705
+ // textAlign: 'left',
706
+ whiteSpace: "normal",
707
+ lineHeight: "20px",
708
+ };
709
+ let min_value_length =
710
+ value.length > 200
711
+ ? "350px"
712
+ : value.length > 150
713
+ ? "300px"
714
+ : value.length > 100
715
+ ? "250px"
716
+ : value.length > 50
717
+ ? "200px"
718
+ : value.length >= 20
719
+ ? "160px"
720
+ : "80px";
721
+ //let min_value_length = value.length > 20 ? '160px' : '80px';
722
+ style.minWidth = min_value_length;
723
+ return style;
724
+ },
725
+
726
+ setLocalStorge(key, value, min = 60) {
727
+ if (key) {
728
+ key = this.getStorageKeyPrefix() + key;
729
+ }
730
+ // 设置过期原则
731
+ if (!value) {
732
+ localStorage.removeItem(key);
733
+ } else {
734
+ const Min = min || 60;
735
+ const exp = new Date();
736
+ const expireAddTime = Min * 60 * 1000;
737
+ localStorage.setItem(
738
+ key,
739
+ JSON.stringify({
740
+ value,
741
+ expireAddTime,
742
+ expires: exp.getTime() + expireAddTime,
743
+ })
744
+ );
745
+ }
746
+ },
747
+ getLocalStorge(name) {
748
+ if (name) {
749
+ name = this.getStorageKeyPrefix() + name;
750
+ }
751
+ try {
752
+ let o = JSON.parse(localStorage[name]);
753
+ if (!o || o.expires < Date.now()) {
754
+ return null;
755
+ } else {
756
+ o.expires = Date.now() + o.expireAddTime;
757
+ localStorage.setItem(name, JSON.stringify(o));
758
+ return o.value;
759
+ }
760
+ } catch (e) {
761
+ // 兼容其他localstorage
762
+ return localStorage[name];
763
+ } finally {
764
+ }
765
+ },
766
+ getAnoHydrocarbonToken() {
767
+ let token = this.getLocalStorge("anoHydrocarbonToken");
768
+ if (!token) {
769
+ token = "tmpl" + this.getRandomNum(6);
770
+ this.setLocalStorge("anoHydrocarbonToken", token);
771
+ }
772
+ return token;
773
+ },
774
+ transQueryParamsToStr(data, isPrefix = false, excudekeys = []) {
775
+ let prefix = isPrefix ? "?" : "";
776
+ let _result = [];
777
+ let paramKeys = [];
778
+ //寻找参数
779
+ for (let key in data) {
780
+ if (excudekeys.indexOf(key) >= 0) {
781
+ continue;
782
+ }
783
+ let value = data[key];
784
+ // 去掉为空的参数
785
+ if ([undefined, null].includes(value)) {
786
+ value = "";
787
+ continue;
788
+ } else {
789
+ paramKeys.push(key);
790
+ }
791
+ }
792
+ //排序
793
+ paramKeys.sort();
794
+ for (let key of paramKeys) {
795
+ let value = data[key];
796
+ let str = encodeURIComponent(key);
797
+ if (!value) {
798
+ } else if (key === "sortColIds") {
799
+ value.forEach((_value) => {
800
+ _result.push(str + "[]=" + encodeURIComponent(_value));
801
+ });
802
+ } else if (value && value.constructor === Array) {
803
+ value.forEach((_value) => {
804
+ _result.push(str + "[]=" + encodeURIComponent(_value));
805
+ });
806
+ } else {
807
+ _result.push(str + "=" + encodeURIComponent(value));
808
+ }
809
+ }
810
+ return _result.length ? prefix + _result.join("&") : "";
811
+ },
812
+ getItemType(name_: string, value: string, ltmplConfig: LtmplConfig) {
813
+ let name = name_;
814
+ if (!value || !ltmplConfig) {
815
+ return null;
816
+ }
817
+
818
+ if (name.startsWith("c_")) {
819
+ name = name.substring(2);
820
+ }
821
+ let cs: CriteriaConfig[] = [];
822
+ if (ltmplConfig.criteria) {
823
+ cs.push(...ltmplConfig.criteria);
824
+ }
825
+ if (ltmplConfig.updrillButtonConfigs) {
826
+ cs.push(...ltmplConfig.updrillButtonConfigs);
827
+ }
828
+ if (ltmplConfig.innerParams) {
829
+ cs.push(...ltmplConfig.innerParams);
830
+ }
831
+ if (ltmplConfig.drillingParams) {
832
+ cs.push(...ltmplConfig.drillingParams);
833
+ }
834
+
835
+ for (let c of cs) {
836
+ if (c.id == name) {
837
+ return ControlTypeSupportor.getControlType(c, value);
838
+ }
839
+ }
840
+ return null;
841
+ },
842
+ transQueryStrToParams(str, ltmplConfig: LtmplConfig) {
843
+ let obj = {};
844
+ const arr1 = str.split("?");
845
+
846
+ if (arr1 && arr1.length == 2) {
847
+ const arr2 = arr1[1].split("&");
848
+ for (let i = 0; i < arr2.length; i++) {
849
+ if (arr2[i].indexOf("[]=") > 0) {
850
+ const res = arr2[i].split("[]=");
851
+ const name = res[0];
852
+ if (!obj[name]) {
853
+ obj[name] = [];
854
+ }
855
+ let pvalue = decodeURIComponent(res[1]);
856
+ obj[name].push(
857
+ this.configParamTrans(
858
+ pvalue,
859
+ this.getItemType(name, pvalue, ltmplConfig)
860
+ )
861
+ );
862
+ } else {
863
+ const res = arr2[i].split("=");
864
+ const name = res[0];
865
+ if (name) {
866
+ let pvalue = decodeURIComponent(res[1]);
867
+ obj[name] =
868
+ this.configParamTrans(
869
+ pvalue,
870
+ this.getItemType(name, pvalue, ltmplConfig)
871
+ );
872
+ }
873
+ }
874
+ }
875
+ }
876
+ return obj;
877
+ },
878
+ isConfigDefaultValue(defaultValue) {
879
+ if (!defaultValue) {
880
+ return false;
881
+ }
882
+ return defaultValue.startsWith("$$current");
883
+ },
884
+ configParamTrans(value: string, itemType: string) {
885
+ if (value && value.startsWith && value.startsWith("$$current")) {
886
+ return TmplConfigAnalysis.current(value, this.getDayjsFormat(itemType));
887
+ } else if (value?.startsWith && value.startsWith("$$user.")) { // 默认值根据用户配置
888
+ let userInfo: UserInfo = this.getCurrentUserInfo();
889
+ if (!userInfo) {
890
+ return null;
891
+ }
892
+ if (value?.startsWith && value.startsWith("$$user.code")) {
893
+ return userInfo.id + "@R@";
894
+ } else {
895
+ return userInfo?.extInfo?.fieldMap?.[value.split("user.")[1]] || null;
896
+ }
897
+ } else {
898
+ return value;
899
+ }
900
+
901
+ },
902
+
903
+ uniq(array, gWord) {
904
+ const res = [];
905
+ array.map((item) => {
906
+ let flag = true;
907
+ res.map((it) => {
908
+ if (item[gWord] === it[gWord]) {
909
+ flag = false;
910
+ }
911
+ return false;
912
+ });
913
+ if (flag) {
914
+ res.push(item);
915
+ }
916
+ return false;
917
+ });
918
+ return res;
919
+ },
920
+ deepCopy(obj) {
921
+ var result = Array.isArray(obj) ? [] : {};
922
+ for (var key in obj) {
923
+ if (obj.hasOwnProperty(key)) {
924
+ if (typeof obj[key] === "object") {
925
+ result[key] = this.deepCopy(obj[key]); //递归复制
926
+ } else {
927
+ result[key] = obj[key];
928
+ }
929
+ }
930
+ }
931
+ return result;
932
+ },
933
+ // forPic(fieldMap) { //原始数据的图片url转化为图片
934
+ // for (let i in fieldMap) {
935
+ // if (fieldMap[i] && fieldMap[i].includes("download-files")) {
936
+ // const url = this.api() + fieldMap[i]
937
+ // fieldMap[i] = <img
938
+ // style={{width: 55}}
939
+ // src={url}
940
+ // alt=""/>
941
+ // }
942
+ // }
943
+ // return fieldMap
944
+ // },
945
+ getFileUrl(file) {
946
+ if (!file) {
947
+ return file;
948
+ } else if (file.constructor === String) {
949
+ return file;
950
+ } else if (file.constructor === Object) {
951
+ if (file.props.children.props) {
952
+ const { href } = file.props.children.props;
953
+ return href;
954
+ } else if (file.props.owlner) {
955
+ return file.props.owlner;
956
+ } else {
957
+ return file;
958
+ }
959
+ } else {
960
+ return file;
961
+ }
962
+ },
963
+
964
+ getOptionColor(options: EnumItem[], value) {
965
+ if (!value) {
966
+ return null;
967
+ }
968
+ let color;
969
+ if (options) {
970
+ options.forEach((option) => {
971
+ if (option.value === value) {
972
+ if (option.color) {
973
+ color = option.color;
974
+ }
975
+ return;
976
+ }
977
+ });
978
+ }
979
+ return color;
980
+ },
981
+
982
+ getFieldItemType(item) {
983
+ return item.extType
984
+ ? item.extType
985
+ : item.msExtType
986
+ ? item.msExtType
987
+ : item.msType
988
+ ? item.msType
989
+ : item.type;
990
+ },
991
+ isEmpty(obj) {
992
+ if (!obj) {
993
+ return true;
994
+ }
995
+ for (let key in obj) {
996
+ return false; //非空
997
+ }
998
+ return true;
999
+ },
1000
+ getDayjsFormat(itemType) {
1001
+ let format = "YYYY-MM-DD HH:mm:ss";
1002
+
1003
+ switch (itemType) {
1004
+ case "daterange-YY":
1005
+ case "date-YY":
1006
+ format = "YYYY";
1007
+ break;
1008
+ case "date-M1":
1009
+ case "daterange-M1":
1010
+ format = "YYYY-MM";
1011
+ break;
1012
+ case "date":
1013
+ case "daterange":
1014
+ format = "YYYY-MM-DD";
1015
+ break;
1016
+ case "datetime-HH":
1017
+ case "datetimerange-HH":
1018
+ format = "YYYY-MM-DD HH";
1019
+ break;
1020
+ case "datetime-mm":
1021
+ case "datetimerange-mm":
1022
+ format = "YYYY-MM-DD HH:mm";
1023
+ break;
1024
+ case "datetime":
1025
+ case "datetimerange":
1026
+ format = "YYYY-MM-DD HH:mm:ss";
1027
+ break;
1028
+ case "timestamp":
1029
+ format = "YYYY-MM-DD HH:mm:ss SSS";
1030
+ break;
1031
+ case "time-HH":
1032
+ case "timerange-HH":
1033
+ case "timerange-HH-unorder":
1034
+ format = "HH";
1035
+ break;
1036
+ case "time-mm":
1037
+ case "timerange-mm":
1038
+ case "timerange-mm-unorder":
1039
+ format = "HH:mm";
1040
+ break;
1041
+ case "time":
1042
+ case "timerange":
1043
+ case "timerange-unorder":
1044
+ format = "HH:mm:ss";
1045
+ break;
1046
+ }
1047
+
1048
+ return format;
1049
+ },
1050
+ getDateTimeFormat(itemType) {
1051
+ let format = "";
1052
+ switch (itemType) {
1053
+ case "time-HH":
1054
+ case "timerange-HH":
1055
+ case "datetime-HH":
1056
+ case "datetimerange-HH":
1057
+ return "HH";
1058
+ case "time-mm":
1059
+ case "timerange-mm":
1060
+ case "datetime-mm":
1061
+ case "datetimerange-mm":
1062
+ return "HH:mm";
1063
+ case "timestamp":
1064
+ case "time":
1065
+ case "timerange":
1066
+ case "datetime":
1067
+ case "datetimerange":
1068
+ return "HH:mm:ss";
1069
+ default:
1070
+ return "";
1071
+ }
1072
+
1073
+ return format;
1074
+ },
1075
+ // getSelectOptions(data: EnumItem[]) {
1076
+ //
1077
+ // if (!data) {
1078
+ // return [];
1079
+ // }
1080
+ // const options = []
1081
+ // data.map((item) => {
1082
+ // options.push(<Option value={item.value} key={item.title}>{item.title}</Option>)
1083
+ // return false
1084
+ // })
1085
+ // return options
1086
+ // },
1087
+ // getSelectListOfStrList(data) {
1088
+ //
1089
+ // if (!data) {
1090
+ // return [];
1091
+ // }
1092
+ // const options = []
1093
+ // data.map((item) => {
1094
+ // options.push(<Option value={item} key={item}>{item}</Option>)
1095
+ // return false
1096
+ // })
1097
+ // return options
1098
+ // },
1099
+ // getSelectOptionsOfMstrucId(mstrucId: string) {
1100
+ // return this.getSelectOptions(HCDataSource.getEnums(mstrucId));
1101
+ // },
1102
+ concatValue(value1, vaule2) {
1103
+ let newValue = undefined;
1104
+ if (value1) {
1105
+ newValue = value1 + "~";
1106
+ } else {
1107
+ newValue = "~";
1108
+ }
1109
+
1110
+ if (vaule2) {
1111
+ newValue = newValue + vaule2;
1112
+ }
1113
+ return newValue;
1114
+ },
1115
+ splitValue(value) {
1116
+ let valueBegin, valueEnd;
1117
+ if (value) {
1118
+ if (value.toString().indexOf("~") >= 0) {
1119
+ let splitValue: string[] = value.split("~");
1120
+ valueBegin = splitValue[0] ? splitValue[0] : undefined;
1121
+ valueEnd = splitValue[1] ? splitValue[1] : undefined;
1122
+ } else {
1123
+ valueBegin = value;
1124
+ }
1125
+ }
1126
+
1127
+ return { valueBegin, valueEnd };
1128
+ },
1129
+ str2UTF8(str) {
1130
+ var bytes = new Array();
1131
+ var len, c;
1132
+ len = str.length;
1133
+ for (var i = 0; i < len; i++) {
1134
+ c = str.charCodeAt(i);
1135
+ if (c >= 0x010000 && c <= 0x10ffff) {
1136
+ bytes.push(((c >> 18) & 0x07) | 0xf0);
1137
+ bytes.push(((c >> 12) & 0x3f) | 0x80);
1138
+ bytes.push(((c >> 6) & 0x3f) | 0x80);
1139
+ bytes.push((c & 0x3f) | 0x80);
1140
+ } else if (c >= 0x000800 && c <= 0x00ffff) {
1141
+ bytes.push(((c >> 12) & 0x0f) | 0xe0);
1142
+ bytes.push(((c >> 6) & 0x3f) | 0x80);
1143
+ bytes.push((c & 0x3f) | 0x80);
1144
+ } else if (c >= 0x000080 && c <= 0x0007ff) {
1145
+ bytes.push(((c >> 6) & 0x1f) | 0xc0);
1146
+ bytes.push((c & 0x3f) | 0x80);
1147
+ } else {
1148
+ bytes.push(c & 0xff);
1149
+ }
1150
+ }
1151
+ return bytes;
1152
+ },
1153
+ joinPath(path1, path2) {
1154
+ let path = path1;
1155
+ if (!path.endsWith("/") && !path.endsWith("\\")) {
1156
+ path = path + "/";
1157
+ }
1158
+ if (path2) {
1159
+ if (path2.startsWith("/") || path.startsWith("\\")) {
1160
+ path = path + path2.slice(1);
1161
+ } else {
1162
+ path = path + path2;
1163
+ }
1164
+ }
1165
+ return path;
1166
+ },
1167
+ // getRouteProgramCode(pathProps){
1168
+ // if (pathProps && pathProps.match && pathProps.match.params) {
1169
+ // const {programCode} = pathProps.match.params;
1170
+ // return programCode;
1171
+ // }
1172
+ // },
1173
+ setProgramCode4RoutePath(pathParams) {
1174
+ const { programCode, applicationCode } = pathParams;
1175
+ this.setProgramCode(programCode);
1176
+ this.setApplicationCode(applicationCode);
1177
+ },
1178
+ setSessionProgramCode4RoutePath(pathParams) {
1179
+ const { programCode, applicationCode } = pathParams;
1180
+ this.setSessionProgramCode(programCode);
1181
+ this.setSessionApplicationCode(applicationCode);
1182
+ },
1183
+ getReactKey() {
1184
+ return new Date().getTime().toString();
1185
+ },
1186
+ async getUserInfo(programCode?: string, token?: string, applicationCode?: string) {
1187
+ if (currentUser?.name) {
1188
+ return currentUser;
1189
+ }
1190
+ let user = await HcserviceV3.getUser(programCode, token, applicationCode);
1191
+ if (user?.orgGtmplSourceId && !["null"].includes(user.orgGtmplSourceId)) {
1192
+ const { ltmplConfig } = await HcserviceV3.requestLtmplConfig(null, user.orgGtmplSourceId) || {};
1193
+ const { entities } = await HcserviceV3.requestLtmplQueryTop(null, user.orgGtmplSourceId, { top: 1 }) || {};
1194
+ const primaryColumnId = ltmplConfig?.extDisplayConfig?.primaryColumn?.id; // 首字段
1195
+ const mainPictureId = ltmplConfig?.extDisplayConfig?.mainPicture?.id; // 主图字段
1196
+ const orgName = entities?.[0]?.fieldMap?.[primaryColumnId];
1197
+ const homeImg = entities?.[0]?.fieldMap?.[mainPictureId];
1198
+ user = { ...user, orgName, homeImg }
1199
+ }
1200
+ currentUser = user;
1201
+ return currentUser;
1202
+ },
1203
+ getCurrentUserInfo() {
1204
+ return currentUser;
1205
+ },
1206
+ // 低代码拖拽页面-自定义组件
1207
+ setCustomComponent(key_: string, name: object) {
1208
+ let key = key_;
1209
+ if (!key) {
1210
+ return;
1211
+ }
1212
+ CUSTOM_COMPONENT_MAP[key] = name;
1213
+ },
1214
+ getCustomComponent(key: string) {
1215
+ if (!key) {
1216
+ return null;
1217
+ }
1218
+ return CUSTOM_COMPONENT_MAP[key];
1219
+ },
1220
+ getAllThemes() { // 主题风格-路径配置
1221
+ const themes = {
1222
+ v2: { path: "v2", loginPath: "login2" },
1223
+ v3: { path: "v3", loginPath: "login3" },
1224
+ v4: { path: "v4", loginPath: "login4" },
1225
+ v5: { path: "v5", loginPath: "login2" },
1226
+ };
1227
+ return themes;
1228
+ },
1229
+ toDefaultTheme(defTheme?: string) {
1230
+ const temTheme = defTheme || ProgramConfig.getDefaultTheme();
1231
+ let hash = window.location.hash;
1232
+ if (regexTheme.test(hash)) {
1233
+ hash = hash.replace(regexTheme, `${temTheme}/home`);
1234
+ window.location.hash = hash;
1235
+ } else {
1236
+ const localVersion = localStorage.getItem("version");
1237
+ if (!localVersion) {
1238
+ window.location.hash = `#/${temTheme}/home`;
1239
+ }
1240
+ }
1241
+ },
1242
+ async getThemeConfig(serverKey?: string) {
1243
+ if (themeConfig) {
1244
+ return themeConfig;
1245
+ }
1246
+ const programCode = this.programCode();
1247
+ const applicationCode = this.applicationCode();
1248
+ const server = this.api(serverKey);
1249
+ const { themeConfig: temConfig } = await HcserviceV3.getThemeConfig(serverKey, programCode) || {};
1250
+ const loginMainPicture = temConfig?.loginMainPicture ? this.joinPath(server, `/v3/theme-files/${temConfig?.loginMainPicture}?@programToken=${programCode}&@applicationToken=${applicationCode}`) : null;
1251
+ const programIcon = temConfig?.programIcon ? this.joinPath(server, `/v3/theme-files/${temConfig?.programIcon}?@programToken=${programCode}&@applicationToken=${applicationCode}`) : null;
1252
+ themeConfig = { ...temConfig, loginMainPicture, programIcon };
1253
+ return themeConfig;
1254
+ },
1255
+ getThemeConfigInfo() {
1256
+ return themeConfig;
1257
+ },
1258
+ coverUserPageConfig(setting: { [key: string]: any }) { // 页面配置覆盖
1259
+ const currentUser = this.getCurrentUserInfo();
1260
+ if (!setting || !currentUser) return;
1261
+ const programCode = this.programCode();
1262
+ const applicationCode = this.applicationCode();
1263
+ const localKey = `${currentUser.id}-${programCode}${applicationCode ? `-${applicationCode}` : ""}-userPageConfig`;
1264
+ localStorage.setItem(localKey, JSON.stringify(setting));
1265
+ },
1266
+ setUserPageConfig(key: string, setting: { [key: string]: any }) { // 页面配置(视图、列、分页等)存本地
1267
+ const currentUser = this.getCurrentUserInfo();
1268
+ if (!key || !setting || !currentUser) return;
1269
+ const programCode = this.programCode();
1270
+ const applicationCode = this.applicationCode();
1271
+ const localKey = `${currentUser.id}-${programCode}${applicationCode ? `-${applicationCode}` : ""}-userPageConfig`;
1272
+ const userPageConfig = localStorage.getItem(localKey) || "{}";
1273
+ let config = {};
1274
+ try {
1275
+ config = JSON.parse(userPageConfig);
1276
+ } catch {
1277
+ config = {};
1278
+ }
1279
+ config[key] = { ...(config[key] || {}), ...setting };
1280
+ localStorage.setItem(localKey, JSON.stringify(config));
1281
+ return config[key];
1282
+ },
1283
+ async getUserPageConfig(key: string) { // 获取当前页面配置本地缓存
1284
+ const currentUser = await this.getUserInfo();
1285
+ if (!key || !currentUser) return;
1286
+ const programCode = this.programCode();
1287
+ const applicationCode = this.applicationCode();
1288
+ const localKey = `${currentUser.id}-${programCode}${applicationCode ? `-${applicationCode}` : ""}-userPageConfig`;
1289
+ const userPageConfig = localStorage.getItem(localKey) || "{}";
1290
+ try {
1291
+ const config = JSON.parse(userPageConfig);
1292
+ return config[key];
1293
+ } catch {
1294
+ return;
1295
+ }
1296
+ },
1297
+ resetUserPageConfig(key: string) { // 重置当前页面配置本地缓存
1298
+ const currentUser = this.getCurrentUserInfo();
1299
+ if (!key || !currentUser) return;
1300
+ const programCode = this.programCode();
1301
+ const applicationCode = this.applicationCode();
1302
+ const localKey = `${currentUser.id}-${programCode}${applicationCode ? `-${applicationCode}` : ""}-userPageConfig`;
1303
+ const userPageConfig = localStorage.getItem(localKey) || "{}";
1304
+ try {
1305
+ const config = JSON.parse(userPageConfig);
1306
+ config[key] = undefined;
1307
+ localStorage.setItem(localKey, JSON.stringify(config));
1308
+ } catch {
1309
+ return;
1310
+ }
1311
+ },
1312
+ async getPageConfigCommon(menuCode: string, type?: "default" | "refresh") {
1313
+ // type == refresh 请求新数据,不使用缓存
1314
+ if ((!type || type === "default") && pageConfigCommons[menuCode]) {
1315
+ return pageConfigCommons[menuCode];
1316
+ }
1317
+ const configs = await HcserviceV3.getPageConfigCommon(menuCode);
1318
+ pageConfigCommons[menuCode] = configs;
1319
+ return configs;
1320
+ },
1321
+ async getPageConfigDefault() { // 拉取用户默认配置
1322
+ const configs = await HcserviceV3.getPageConfigDefault();
1323
+ const defUserPageConfig = configs.reduce((total, cur) => {
1324
+ total[cur.menuCode] = cur.content ? JSON.parse(cur.content) : undefined;
1325
+ return total;
1326
+ }, {});
1327
+ this.coverUserPageConfig(defUserPageConfig); // 覆盖本地缓存
1328
+ return configs;
1329
+ },
1330
+ findItemByIdIterative(tree: any[], value: string | number, key = "id") { // 查找树级数组中的指定项
1331
+ if (!tree?.length) {
1332
+ return undefined;
1333
+ }
1334
+ // 使用一个栈来存储待遍历的节点
1335
+ const stack = [...tree];
1336
+ while (stack.length > 0) {
1337
+ const node = stack.pop();
1338
+ if (node[key] === value) {
1339
+ return node;
1340
+ }
1341
+ if (node.children && node.children.length > 0) {
1342
+ stack.push(...node.children);
1343
+ }
1344
+ }
1345
+ return undefined;
1346
+ },
1347
+ async get2DComponent(groups: string[]) { // 获取2D组件数据
1348
+ const temGroups = groups.filter(r => !components2DMap[r]);
1349
+ if (!temGroups?.length) {
1350
+ return components2DMap;
1351
+ }
1352
+ const res = await HcserviceV3.get2DComponent(temGroups);
1353
+ const temObj = Object.keys(res).reduce((total, next) => {
1354
+ total[next] = res[next] || [];
1355
+ return total;
1356
+ }, {});
1357
+ components2DMap = { ...components2DMap, ...temObj };
1358
+ return components2DMap;
1359
+ },
1360
+ get2DComponentByType(type: string) { // 获取指定类型组件
1361
+ if (!type) {
1362
+ return;
1363
+ }
1364
+ const item = Object.values(components2DMap).flat(Infinity).find((r: any) => r.type === type);
1365
+ return item;
1366
+ }
1367
+ };