aldehyde 0.2.479 → 0.2.481

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