aldehyde 0.2.494 → 0.2.496

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