aldehyde 0.2.495 → 0.2.496

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