aldehyde 0.2.496 → 0.2.497

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 (585) 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.less +9 -9
  18. package/lib/controls/html-editor/index.less +67 -67
  19. package/lib/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  20. package/lib/controls/password-setter/index.css +2 -2
  21. package/lib/controls/password-setter/index.d.ts.map +1 -1
  22. package/lib/controls/qr-code/index.less +28 -28
  23. package/lib/controls/relation-existion/index.css +3 -3
  24. package/lib/controls/relation-existion/index.d.ts.map +1 -1
  25. package/lib/controls/rfield/index.css +4 -4
  26. package/lib/controls/rfield/index.d.ts.map +1 -1
  27. package/lib/controls/select/index.d.ts.map +1 -1
  28. package/lib/controls/signature/index.d.ts.map +1 -1
  29. package/lib/controls/text/ellipsis-text.d.ts.map +1 -1
  30. package/lib/controls/text/index.less +7 -7
  31. package/lib/controls/upload/index.d.ts.map +1 -1
  32. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -1
  33. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  34. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  35. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  36. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  37. package/lib/detail/button/index.css +42 -42
  38. package/lib/detail/dtmpl.css +72 -72
  39. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  40. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  41. package/lib/detail/edit/popover-edit-card.d.ts.map +1 -1
  42. package/lib/detail/rightbar/index.css +34 -34
  43. package/lib/detail/rightbar/index.d.ts.map +1 -1
  44. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  45. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  46. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  47. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  48. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -1
  49. package/lib/draw-canvas-edit/components/render/components/index.less +60 -60
  50. package/lib/draw-canvas-edit/components/render/components/workstation-component.js +6 -6
  51. package/lib/draw-canvas-edit/index.less +48 -48
  52. package/lib/draw-canvas-view/index.less +66 -66
  53. package/lib/export/export-frame.css +2 -2
  54. package/lib/export/export-frame.d.ts.map +1 -1
  55. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  56. package/lib/form/dtmpl-form.css +3 -3
  57. package/lib/form/dtmpl-form.d.ts.map +1 -1
  58. package/lib/form/field-group-form.d.ts.map +1 -1
  59. package/lib/form/form-Item-group.d.ts.map +1 -1
  60. package/lib/form/index.css +12 -12
  61. package/lib/import/excel-import.d.ts.map +1 -1
  62. package/lib/import/index.css +53 -53
  63. package/lib/import/template.css +50 -50
  64. package/lib/layout/common.css +64 -64
  65. package/lib/layout/coverstyle.css +51 -51
  66. package/lib/layout/footer/index.css +5 -5
  67. package/lib/layout/header/index.css +122 -122
  68. package/lib/layout/menu/block.css +7 -7
  69. package/lib/layout/menu/block.d.ts.map +1 -1
  70. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  71. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  72. package/lib/layout/menu/message-bar.less +73 -73
  73. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  74. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  75. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  76. package/lib/layout/sidebar/index.css +57 -57
  77. package/lib/layout2/css/header.css +41 -41
  78. package/lib/layout2/css/sider.less +17 -17
  79. package/lib/layout2/css/tabs-layout.less +18 -18
  80. package/lib/layout3/css/header.less +195 -195
  81. package/lib/layout3/css/main.less +161 -161
  82. package/lib/layout3/css/sider.less +32 -32
  83. package/lib/layout3/css/tabs-layout.less +38 -38
  84. package/lib/layout4/css/header.less +196 -196
  85. package/lib/layout4/css/main.less +154 -154
  86. package/lib/layout4/css/sider.less +37 -37
  87. package/lib/layout4/css/tabs-layout.less +42 -42
  88. package/lib/layout5/css/header.less +35 -35
  89. package/lib/layout5/css/sider.less +18 -18
  90. package/lib/list/calendar/index.less +20 -20
  91. package/lib/list/card-list/index.less +154 -154
  92. package/lib/list/gantt/index.less +8 -8
  93. package/lib/list/vertical-list/index.less +208 -208
  94. package/lib/login/index.css +19 -19
  95. package/lib/login/login.d.ts.map +1 -1
  96. package/lib/login/vertify/index.css +143 -143
  97. package/lib/login3/index.less +136 -136
  98. package/lib/lowcode-components/act-table/index.less +26 -26
  99. package/lib/lowcode-components/base-button/index.less +7 -7
  100. package/lib/lowcode-components/base-map/index.js +6 -6
  101. package/lib/lowcode-components/base-radio/index.less +23 -23
  102. package/lib/lowcode-components/base-tabs/index.less +14 -14
  103. package/lib/lowcode-components/border/border10/index.less +26 -26
  104. package/lib/lowcode-components/border/border11/index.js +46 -46
  105. package/lib/lowcode-components/border/border11/index.less +17 -17
  106. package/lib/lowcode-components/border/border12/index.js +13 -13
  107. package/lib/lowcode-components/border/border12/index.less +13 -13
  108. package/lib/lowcode-components/border/border13/index.js +5 -5
  109. package/lib/lowcode-components/border/border13/index.less +13 -13
  110. package/lib/lowcode-components/border/border2/index.less +17 -17
  111. package/lib/lowcode-components/border/border3/index.less +25 -25
  112. package/lib/lowcode-components/border/border4/index.js +2 -2
  113. package/lib/lowcode-components/border/border4/index.less +72 -72
  114. package/lib/lowcode-components/border/border5/index.js +2 -2
  115. package/lib/lowcode-components/border/border5/index.less +35 -35
  116. package/lib/lowcode-components/border/border6/index.less +17 -17
  117. package/lib/lowcode-components/border/border7/index.less +26 -26
  118. package/lib/lowcode-components/border/border8/index.less +13 -13
  119. package/lib/lowcode-components/border/border9/index.js +14 -14
  120. package/lib/lowcode-components/border/border9/index.less +13 -13
  121. package/lib/lowcode-components/column-3d-chart/index.d.ts.map +1 -1
  122. package/lib/lowcode-components/column-3d-chart/index.js +2 -1
  123. package/lib/lowcode-components/column-3d-chart/index.js.map +1 -1
  124. package/lib/lowcode-components/column-chart/index.d.ts.map +1 -1
  125. package/lib/lowcode-components/column-chart/index.js +3 -2
  126. package/lib/lowcode-components/column-chart/index.js.map +1 -1
  127. package/lib/lowcode-components/decoration/decoration1/index.less +7 -7
  128. package/lib/lowcode-components/decoration/decoration10/index.js +3 -3
  129. package/lib/lowcode-components/decoration/decoration10/index.less +5 -5
  130. package/lib/lowcode-components/decoration/decoration11/index.less +5 -5
  131. package/lib/lowcode-components/decoration/decoration2/index.less +6 -6
  132. package/lib/lowcode-components/decoration/decoration3/index.less +7 -7
  133. package/lib/lowcode-components/decoration/decoration4/index.less +29 -29
  134. package/lib/lowcode-components/decoration/decoration5/index.less +3 -3
  135. package/lib/lowcode-components/decoration/decoration6/index.less +7 -7
  136. package/lib/lowcode-components/decoration/decoration7/index.less +4 -4
  137. package/lib/lowcode-components/decoration/decoration8/index.less +14 -14
  138. package/lib/lowcode-components/decoration/decoration9/index.less +4 -4
  139. package/lib/lowcode-components/effectScatter-map/index.js +6 -6
  140. package/lib/lowcode-components/effectScatter-map-3d/index.js +6 -6
  141. package/lib/lowcode-components/line-bar-chart/index.d.ts.map +1 -1
  142. package/lib/lowcode-components/line-bar-chart/index.js +3 -6
  143. package/lib/lowcode-components/line-bar-chart/index.js.map +1 -1
  144. package/lib/lowcode-components/line-chart/index.d.ts +3 -0
  145. package/lib/lowcode-components/line-chart/index.d.ts.map +1 -1
  146. package/lib/lowcode-components/line-chart/index.js +16 -6
  147. package/lib/lowcode-components/line-chart/index.js.map +1 -1
  148. package/lib/lowcode-components/lowcode-view/index.less +19 -19
  149. package/lib/lowcode-components/search-form/index.less +25 -25
  150. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  151. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  152. package/lib/module/index.less +4 -4
  153. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  154. package/lib/module/ltmpl-table.d.ts.map +1 -1
  155. package/lib/routable/index.less +25 -25
  156. package/lib/table/act-table.d.ts.map +1 -1
  157. package/lib/table/column/index.less +85 -85
  158. package/lib/table/index.css +211 -211
  159. package/lib/table/modal-select-table.d.ts.map +1 -1
  160. package/lib/table/page-chart.less +9 -9
  161. package/lib/table/pagination.css +14 -14
  162. package/lib/table/pagination.d.ts.map +1 -1
  163. package/lib/table/relation-table.d.ts.map +1 -1
  164. package/lib/table/selected-rows-card.d.ts.map +1 -1
  165. package/lib/table/stat/restat.d.ts.map +1 -1
  166. package/lib/tree/act-tree.d.ts.map +1 -1
  167. package/lib/tree/block-menu-auth-tree.d.ts.map +1 -1
  168. package/lib/tree/index.css +22 -22
  169. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  170. package/lib/welcome/components/menu-card.less +96 -96
  171. package/lib/welcome/components/page-card.less +49 -49
  172. package/lib/welcome/components/quick-entrance.less +120 -120
  173. package/lib/welcome/components/user-menus.less +192 -192
  174. package/lib/welcome/components/workbench.less +118 -118
  175. package/lib/welcome/index.css +13 -13
  176. package/package.json +224 -224
  177. package/src/aldehyde/controls/2dEditor/2dEditor/index.less +5 -5
  178. package/src/aldehyde/controls/2dEditor/2dEditor/index.tsx +270 -270
  179. package/src/aldehyde/controls/2dEditor/2dView/index.less +8 -8
  180. package/src/aldehyde/controls/2dEditor/2dView/index.tsx +110 -110
  181. package/src/aldehyde/controls/2dEditor/components/card.tsx +256 -256
  182. package/src/aldehyde/controls/2dEditor/components/component.less +83 -83
  183. package/src/aldehyde/controls/2dEditor/components/data.d.ts +32 -32
  184. package/src/aldehyde/controls/2dEditor/components/hotspot.tsx +80 -80
  185. package/src/aldehyde/controls/2dEditor/components/html-box.tsx +101 -101
  186. package/src/aldehyde/controls/2dEditor/components/image.tsx +99 -99
  187. package/src/aldehyde/controls/2dEditor/components/line.tsx +73 -73
  188. package/src/aldehyde/controls/action/index.css +8 -8
  189. package/src/aldehyde/controls/action/index.tsx +406 -406
  190. package/src/aldehyde/controls/action/utils.tsx +306 -306
  191. package/src/aldehyde/controls/auto-complete/index.tsx +82 -82
  192. package/src/aldehyde/controls/cascader/index.tsx +112 -112
  193. package/src/aldehyde/controls/chemstruc/graph.tsx +185 -185
  194. package/src/aldehyde/controls/chemstruc/index.css +28 -28
  195. package/src/aldehyde/controls/code-editor/sql-code-editor.tsx +73 -73
  196. package/src/aldehyde/controls/collapse-card/index.css +8 -8
  197. package/src/aldehyde/controls/collapse-card/index.tsx +109 -109
  198. package/src/aldehyde/controls/color-picker/index.tsx +21 -21
  199. package/src/aldehyde/controls/counting-tag/index.tsx +53 -53
  200. package/src/aldehyde/controls/cquery/cquick-button.tsx +145 -145
  201. package/src/aldehyde/controls/date-picker/index.tsx +199 -199
  202. package/src/aldehyde/controls/direct-file-view/drawer-file-view.tsx +54 -54
  203. package/src/aldehyde/controls/direct-file-view/index.tsx +147 -147
  204. package/src/aldehyde/controls/direct-upload/index.tsx +140 -140
  205. package/src/aldehyde/controls/entity-select/entity-select.tsx +791 -791
  206. package/src/aldehyde/controls/entity-select/index.css +7 -7
  207. package/src/aldehyde/controls/entity-select/lab-tree-select.tsx +154 -154
  208. package/src/aldehyde/controls/entity-select/popover-entity-select.tsx +205 -205
  209. package/src/aldehyde/controls/entry-control.tsx +431 -431
  210. package/src/aldehyde/controls/enum-badge/index.tsx +42 -42
  211. package/src/aldehyde/controls/enum-tag/index.tsx +45 -45
  212. package/src/aldehyde/controls/field-history/index.tsx +81 -81
  213. package/src/aldehyde/controls/file-export/select-code-export.tsx +40 -40
  214. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +117 -117
  215. package/src/aldehyde/controls/file-view/index.less +9 -9
  216. package/src/aldehyde/controls/file-view/index.tsx +148 -148
  217. package/src/aldehyde/controls/file-view/multi-file-view.tsx +39 -39
  218. package/src/aldehyde/controls/file-view/newin-file-view.tsx +40 -40
  219. package/src/aldehyde/controls/html-editor/draft.tsx +136 -136
  220. package/src/aldehyde/controls/html-editor/index.less +67 -67
  221. package/src/aldehyde/controls/icon-selector/app-icon-selector.tsx +68 -68
  222. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  223. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.json +240 -240
  224. package/src/aldehyde/controls/icon-selector/pc-icon-selector.tsx +68 -68
  225. package/src/aldehyde/controls/input-number/index.tsx +148 -148
  226. package/src/aldehyde/controls/input-range/index.tsx +59 -59
  227. package/src/aldehyde/controls/password-setter/index.css +2 -2
  228. package/src/aldehyde/controls/password-setter/index.js +88 -88
  229. package/src/aldehyde/controls/progress/index.tsx +74 -74
  230. package/src/aldehyde/controls/qr-code/index.less +28 -28
  231. package/src/aldehyde/controls/qr-code/index.tsx +40 -40
  232. package/src/aldehyde/controls/relation-existion/index.css +3 -3
  233. package/src/aldehyde/controls/relation-existion/index.tsx +144 -144
  234. package/src/aldehyde/controls/rfield/index.css +4 -4
  235. package/src/aldehyde/controls/rfield/index.tsx +225 -225
  236. package/src/aldehyde/controls/select/index.tsx +226 -226
  237. package/src/aldehyde/controls/signature/index.tsx +226 -226
  238. package/src/aldehyde/controls/single-checkbox/index.tsx +18 -18
  239. package/src/aldehyde/controls/steps/index.tsx +59 -59
  240. package/src/aldehyde/controls/text/ellipsis-text.tsx +98 -98
  241. package/src/aldehyde/controls/text/index.less +7 -7
  242. package/src/aldehyde/controls/tree-select/navigation-tree.tsx +122 -122
  243. package/src/aldehyde/controls/tree-select/tree-entity-select.tsx +121 -121
  244. package/src/aldehyde/controls/upload/index.tsx +128 -128
  245. package/src/aldehyde/controls/upload/mult-file-upload.tsx +240 -240
  246. package/src/aldehyde/controls/upload-read-excel/index.tsx +43 -43
  247. package/src/aldehyde/controls/view-control.tsx +289 -289
  248. package/src/aldehyde/custom-page/custom-detail-modal-page.tsx +69 -69
  249. package/src/aldehyde/custom-page/custom-page-router.tsx +64 -64
  250. package/src/aldehyde/custom-page/def-custom-page.tsx +17 -17
  251. package/src/aldehyde/custom-page/dtmpl-custom-edit-modal-page.tsx +91 -91
  252. package/src/aldehyde/detail/button/bottom-submit-button-bar.tsx +91 -91
  253. package/src/aldehyde/detail/button/cquery-button-bar.tsx +144 -144
  254. package/src/aldehyde/detail/button/edit-button.tsx +61 -61
  255. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +186 -186
  256. package/src/aldehyde/detail/button/index.css +42 -42
  257. package/src/aldehyde/detail/button/inline-edit-button.tsx +40 -40
  258. package/src/aldehyde/detail/button/submit-button-bar.tsx +57 -57
  259. package/src/aldehyde/detail/button/view-button.tsx +64 -64
  260. package/src/aldehyde/detail/dtmpl.css +72 -72
  261. package/src/aldehyde/detail/edit/dtmpl-edit.tsx +279 -279
  262. package/src/aldehyde/detail/edit/fields-edit-card.tsx +145 -145
  263. package/src/aldehyde/detail/edit/modal-row-edit.tsx +95 -95
  264. package/src/aldehyde/detail/edit/popover-edit-card.tsx +167 -167
  265. package/src/aldehyde/detail/edit/popover-editor.tsx +70 -70
  266. package/src/aldehyde/detail/edit/post-result/index.tsx +86 -86
  267. package/src/aldehyde/detail/rightbar/index.css +34 -34
  268. package/src/aldehyde/detail/rightbar/index.tsx +92 -92
  269. package/src/aldehyde/detail/tooltipbar/index.tsx +32 -32
  270. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +288 -288
  271. package/src/aldehyde/detail/view/dtmpl-view.tsx +334 -334
  272. package/src/aldehyde/detail/view/field-view-group.tsx +88 -88
  273. package/src/aldehyde/detail/view/modal-dtmpl-view.tsx +73 -73
  274. package/src/aldehyde/detail/view/snapshot-timeline.tsx +231 -231
  275. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +304 -304
  276. package/src/aldehyde/detail/view/view-compare-panel.tsx +57 -57
  277. package/src/aldehyde/draw-canvas-edit/components/render/components/index.less +60 -60
  278. package/src/aldehyde/draw-canvas-edit/components/render/components/index.ts +3 -3
  279. package/src/aldehyde/draw-canvas-edit/components/render/components/workstation-component.tsx +220 -220
  280. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +177 -177
  281. package/src/aldehyde/draw-canvas-edit/components/render/draws/contextmenu-draw.ts +330 -330
  282. package/src/aldehyde/draw-canvas-edit/components/render/draws/graph-draw.ts +249 -249
  283. package/src/aldehyde/draw-canvas-edit/components/render/draws/link-draw.ts +1415 -1415
  284. package/src/aldehyde/draw-canvas-edit/components/render/draws/preview-draw.ts +274 -274
  285. package/src/aldehyde/draw-canvas-edit/components/render/draws/ref-line-draw.ts +71 -71
  286. package/src/aldehyde/draw-canvas-edit/components/render/draws/ruler-draw.ts +166 -166
  287. package/src/aldehyde/draw-canvas-edit/components/render/graphs/bezier.ts +542 -542
  288. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +77 -77
  289. package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +410 -410
  290. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +817 -817
  291. package/src/aldehyde/draw-canvas-edit/components/render/tools/attract-tool.ts +457 -457
  292. package/src/aldehyde/draw-canvas-edit/components/render/tools/component-factory.ts +269 -269
  293. package/src/aldehyde/draw-canvas-edit/components/render/tools/copy-tool.ts +244 -244
  294. package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +588 -588
  295. package/src/aldehyde/draw-canvas-edit/components/render/tools/index.ts +10 -10
  296. package/src/aldehyde/draw-canvas-edit/components/render/tools/position-tool.ts +191 -191
  297. package/src/aldehyde/draw-canvas-edit/components/render/tools/selection-tool.ts +140 -140
  298. package/src/aldehyde/draw-canvas-edit/components/render/types.ts +298 -298
  299. package/src/aldehyde/draw-canvas-edit/components/setting-form/index.tsx +305 -305
  300. package/src/aldehyde/draw-canvas-edit/constant.ts +5 -5
  301. package/src/aldehyde/draw-canvas-edit/index.less +48 -48
  302. package/src/aldehyde/draw-canvas-edit/index.tsx +213 -213
  303. package/src/aldehyde/draw-canvas-view/index.less +66 -66
  304. package/src/aldehyde/draw-canvas-view/index.tsx +49 -49
  305. package/src/aldehyde/draw-canvas-view/view.tsx +237 -237
  306. package/src/aldehyde/export/export-frame.css +2 -2
  307. package/src/aldehyde/export/export-frame.tsx +301 -301
  308. package/src/aldehyde/export/select-code-export-frame.tsx +212 -212
  309. package/src/aldehyde/form/criteria-form.tsx +604 -604
  310. package/src/aldehyde/form/dtmpl-form.css +3 -3
  311. package/src/aldehyde/form/dtmpl-form.tsx +571 -571
  312. package/src/aldehyde/form/field-group-form.tsx +103 -103
  313. package/src/aldehyde/form/fields-form.tsx +45 -45
  314. package/src/aldehyde/form/form-Item-group.tsx +246 -246
  315. package/src/aldehyde/form/index.css +12 -12
  316. package/src/aldehyde/hooks/use-match-route/index.tsx +62 -62
  317. package/src/aldehyde/hooks/use-tabs/index.tsx +139 -139
  318. package/src/aldehyde/hooks/useVarCssColor.ts +6 -6
  319. package/src/aldehyde/icon/aliIcon.tsx +9 -9
  320. package/src/aldehyde/icon/index.tsx +28 -28
  321. package/src/aldehyde/import/excel-import.tsx +450 -450
  322. package/src/aldehyde/import/index.css +53 -53
  323. package/src/aldehyde/import/template.css +50 -50
  324. package/src/aldehyde/index.tsx +220 -220
  325. package/src/aldehyde/layout/MainPage.tsx +334 -334
  326. package/src/aldehyde/layout/common.css +64 -64
  327. package/src/aldehyde/layout/coverstyle.css +51 -51
  328. package/src/aldehyde/layout/footer/index.css +5 -5
  329. package/src/aldehyde/layout/footer/index.js +17 -17
  330. package/src/aldehyde/layout/header/index.css +122 -122
  331. package/src/aldehyde/layout/header/index.tsx +152 -152
  332. package/src/aldehyde/layout/menu/block.css +7 -7
  333. package/src/aldehyde/layout/menu/block.tsx +174 -174
  334. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +160 -160
  335. package/src/aldehyde/layout/menu/l2menu-quick-bar.tsx +175 -175
  336. package/src/aldehyde/layout/menu/menu-2layers.tsx +117 -117
  337. package/src/aldehyde/layout/menu/menu-render.tsx +168 -168
  338. package/src/aldehyde/layout/menu/message-bar.less +73 -73
  339. package/src/aldehyde/layout/menu/reset-password.tsx +255 -255
  340. package/src/aldehyde/layout/menu/user-bar.tsx +259 -259
  341. package/src/aldehyde/layout/menu/userinfo-bar.tsx +69 -69
  342. package/src/aldehyde/layout/sidebar/index.css +57 -57
  343. package/src/aldehyde/layout/sidebar/index.tsx +84 -84
  344. package/src/aldehyde/layout2/components/icon-font.tsx +7 -7
  345. package/src/aldehyde/layout2/components/screenfull-button.tsx +21 -21
  346. package/src/aldehyde/layout2/components/search-menu.tsx +85 -85
  347. package/src/aldehyde/layout2/components/system-messages.tsx +75 -75
  348. package/src/aldehyde/layout2/components/theme-button.tsx +65 -65
  349. package/src/aldehyde/layout2/components/user-button.tsx +258 -258
  350. package/src/aldehyde/layout2/components/user-notification.tsx +74 -74
  351. package/src/aldehyde/layout2/css/header.css +41 -41
  352. package/src/aldehyde/layout2/css/sider.less +17 -17
  353. package/src/aldehyde/layout2/css/tabs-layout.less +18 -18
  354. package/src/aldehyde/layout2/header.tsx +278 -278
  355. package/src/aldehyde/layout2/layout-context.tsx +95 -95
  356. package/src/aldehyde/layout2/main.tsx +30 -30
  357. package/src/aldehyde/layout2/page.tsx +323 -323
  358. package/src/aldehyde/layout2/sider.tsx +230 -230
  359. package/src/aldehyde/layout2/tabs/tabs-context.tsx +37 -37
  360. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +146 -146
  361. package/src/aldehyde/layout2/type/layout-type.ts +16 -16
  362. package/src/aldehyde/layout2/util/menu-util.tsx +125 -125
  363. package/src/aldehyde/layout3/components/tabs-layout.tsx +110 -110
  364. package/src/aldehyde/layout3/components/time.tsx +25 -25
  365. package/src/aldehyde/layout3/css/header.less +195 -195
  366. package/src/aldehyde/layout3/css/main.less +161 -161
  367. package/src/aldehyde/layout3/css/sider.less +32 -32
  368. package/src/aldehyde/layout3/css/tabs-layout.less +38 -38
  369. package/src/aldehyde/layout3/header.tsx +187 -187
  370. package/src/aldehyde/layout3/main.tsx +29 -29
  371. package/src/aldehyde/layout3/page.tsx +110 -110
  372. package/src/aldehyde/layout3/sider.tsx +198 -198
  373. package/src/aldehyde/layout4/components/tabs-layout.tsx +110 -110
  374. package/src/aldehyde/layout4/css/header.less +196 -196
  375. package/src/aldehyde/layout4/css/main.less +154 -154
  376. package/src/aldehyde/layout4/css/sider.less +37 -37
  377. package/src/aldehyde/layout4/css/tabs-layout.less +42 -42
  378. package/src/aldehyde/layout4/header.tsx +190 -190
  379. package/src/aldehyde/layout4/main.tsx +29 -29
  380. package/src/aldehyde/layout4/page.tsx +125 -125
  381. package/src/aldehyde/layout4/sider.tsx +201 -201
  382. package/src/aldehyde/layout5/css/header.less +35 -35
  383. package/src/aldehyde/layout5/css/sider.less +18 -18
  384. package/src/aldehyde/layout5/header.tsx +204 -204
  385. package/src/aldehyde/layout5/page.tsx +107 -107
  386. package/src/aldehyde/layout5/sider.tsx +235 -235
  387. package/src/aldehyde/list/calendar/index.less +20 -20
  388. package/src/aldehyde/list/calendar/index.tsx +157 -157
  389. package/src/aldehyde/list/card-list/card-list-item.tsx +112 -112
  390. package/src/aldehyde/list/card-list/index.less +154 -154
  391. package/src/aldehyde/list/card-list/index.tsx +83 -83
  392. package/src/aldehyde/list/gantt/index.less +8 -8
  393. package/src/aldehyde/list/gantt/index.tsx +508 -508
  394. package/src/aldehyde/list/vertical-list/index.less +208 -208
  395. package/src/aldehyde/list/vertical-list/index.tsx +55 -55
  396. package/src/aldehyde/list/vertical-list/item.tsx +136 -136
  397. package/src/aldehyde/locale/LocaleButton.tsx +48 -48
  398. package/src/aldehyde/locale/LocaleProvider.tsx +265 -265
  399. package/src/aldehyde/locale/langMp.ts +45 -45
  400. package/src/aldehyde/locale/translate.ts +80 -80
  401. package/src/aldehyde/locale/useLocale.ts +72 -72
  402. package/src/aldehyde/login/context-setter.tsx +130 -130
  403. package/src/aldehyde/login/index.css +19 -19
  404. package/src/aldehyde/login/login.tsx +255 -255
  405. package/src/aldehyde/login/router-login.tsx +107 -107
  406. package/src/aldehyde/login/vertify/index.css +143 -143
  407. package/src/aldehyde/login/vertify/index.tsx +360 -360
  408. package/src/aldehyde/login/vertify/tool.ts +13 -13
  409. package/src/aldehyde/login2/login-page.tsx +92 -92
  410. package/src/aldehyde/login2/login.tsx +227 -227
  411. package/src/aldehyde/login3/index.less +136 -136
  412. package/src/aldehyde/login3/login-page.tsx +71 -71
  413. package/src/aldehyde/lowcode-components/act-table/index.less +26 -26
  414. package/src/aldehyde/lowcode-components/act-table/index.tsx +139 -139
  415. package/src/aldehyde/lowcode-components/assets/lowcode-constant.tsx +12 -12
  416. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +272 -272
  417. package/src/aldehyde/lowcode-components/base-button/index.less +7 -7
  418. package/src/aldehyde/lowcode-components/base-button/index.tsx +197 -197
  419. package/src/aldehyde/lowcode-components/base-image/index.tsx +220 -220
  420. package/src/aldehyde/lowcode-components/base-map/index.tsx +292 -292
  421. package/src/aldehyde/lowcode-components/base-radio/index.less +23 -23
  422. package/src/aldehyde/lowcode-components/base-radio/index.tsx +157 -157
  423. package/src/aldehyde/lowcode-components/base-table/index.tsx +268 -268
  424. package/src/aldehyde/lowcode-components/base-tabs/index.less +14 -14
  425. package/src/aldehyde/lowcode-components/base-tabs/index.tsx +183 -183
  426. package/src/aldehyde/lowcode-components/base-text/index.tsx +58 -58
  427. package/src/aldehyde/lowcode-components/border/border1/index.tsx +70 -70
  428. package/src/aldehyde/lowcode-components/border/border10/index.less +26 -26
  429. package/src/aldehyde/lowcode-components/border/border10/index.tsx +45 -45
  430. package/src/aldehyde/lowcode-components/border/border11/index.less +17 -17
  431. package/src/aldehyde/lowcode-components/border/border11/index.tsx +232 -232
  432. package/src/aldehyde/lowcode-components/border/border12/index.less +13 -13
  433. package/src/aldehyde/lowcode-components/border/border12/index.tsx +115 -115
  434. package/src/aldehyde/lowcode-components/border/border13/index.less +13 -13
  435. package/src/aldehyde/lowcode-components/border/border13/index.tsx +69 -69
  436. package/src/aldehyde/lowcode-components/border/border2/index.less +17 -17
  437. package/src/aldehyde/lowcode-components/border/border2/index.tsx +51 -51
  438. package/src/aldehyde/lowcode-components/border/border3/index.less +25 -25
  439. package/src/aldehyde/lowcode-components/border/border3/index.tsx +61 -61
  440. package/src/aldehyde/lowcode-components/border/border4/index.less +72 -72
  441. package/src/aldehyde/lowcode-components/border/border4/index.tsx +79 -79
  442. package/src/aldehyde/lowcode-components/border/border5/index.less +35 -35
  443. package/src/aldehyde/lowcode-components/border/border5/index.tsx +75 -75
  444. package/src/aldehyde/lowcode-components/border/border6/index.less +17 -17
  445. package/src/aldehyde/lowcode-components/border/border6/index.tsx +60 -60
  446. package/src/aldehyde/lowcode-components/border/border7/index.less +26 -26
  447. package/src/aldehyde/lowcode-components/border/border7/index.tsx +75 -75
  448. package/src/aldehyde/lowcode-components/border/border8/index.less +13 -13
  449. package/src/aldehyde/lowcode-components/border/border8/index.tsx +84 -84
  450. package/src/aldehyde/lowcode-components/border/border9/index.less +13 -13
  451. package/src/aldehyde/lowcode-components/border/border9/index.tsx +154 -154
  452. package/src/aldehyde/lowcode-components/capsule-bar-chart/index.tsx +290 -290
  453. package/src/aldehyde/lowcode-components/carousel/index.tsx +218 -218
  454. package/src/aldehyde/lowcode-components/circular-progress-chart/index.tsx +263 -263
  455. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +443 -442
  456. package/src/aldehyde/lowcode-components/column-chart/index.tsx +353 -352
  457. package/src/aldehyde/lowcode-components/data-number/index.tsx +219 -219
  458. package/src/aldehyde/lowcode-components/data.d.ts +19 -19
  459. package/src/aldehyde/lowcode-components/decoration/decoration1/index.less +7 -7
  460. package/src/aldehyde/lowcode-components/decoration/decoration1/index.tsx +153 -153
  461. package/src/aldehyde/lowcode-components/decoration/decoration10/index.less +5 -5
  462. package/src/aldehyde/lowcode-components/decoration/decoration10/index.tsx +89 -89
  463. package/src/aldehyde/lowcode-components/decoration/decoration11/index.less +5 -5
  464. package/src/aldehyde/lowcode-components/decoration/decoration11/index.tsx +133 -133
  465. package/src/aldehyde/lowcode-components/decoration/decoration2/index.less +6 -6
  466. package/src/aldehyde/lowcode-components/decoration/decoration2/index.tsx +61 -61
  467. package/src/aldehyde/lowcode-components/decoration/decoration3/index.less +7 -7
  468. package/src/aldehyde/lowcode-components/decoration/decoration3/index.tsx +87 -87
  469. package/src/aldehyde/lowcode-components/decoration/decoration4/index.less +29 -29
  470. package/src/aldehyde/lowcode-components/decoration/decoration4/index.tsx +53 -53
  471. package/src/aldehyde/lowcode-components/decoration/decoration5/index.less +3 -3
  472. package/src/aldehyde/lowcode-components/decoration/decoration5/index.tsx +116 -116
  473. package/src/aldehyde/lowcode-components/decoration/decoration6/index.less +7 -7
  474. package/src/aldehyde/lowcode-components/decoration/decoration6/index.tsx +121 -121
  475. package/src/aldehyde/lowcode-components/decoration/decoration7/index.less +4 -4
  476. package/src/aldehyde/lowcode-components/decoration/decoration7/index.tsx +70 -70
  477. package/src/aldehyde/lowcode-components/decoration/decoration8/index.less +14 -14
  478. package/src/aldehyde/lowcode-components/decoration/decoration8/index.tsx +122 -122
  479. package/src/aldehyde/lowcode-components/decoration/decoration9/index.less +4 -4
  480. package/src/aldehyde/lowcode-components/decoration/decoration9/index.tsx +196 -196
  481. package/src/aldehyde/lowcode-components/effectScatter-map/index.tsx +315 -315
  482. package/src/aldehyde/lowcode-components/effectScatter-map-3d/index.tsx +419 -419
  483. package/src/aldehyde/lowcode-components/gauge-chart/index.tsx +254 -254
  484. package/src/aldehyde/lowcode-components/index.ts +130 -130
  485. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +360 -362
  486. package/src/aldehyde/lowcode-components/line-chart/index.tsx +364 -352
  487. package/src/aldehyde/lowcode-components/liquid-chart/index.tsx +250 -250
  488. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +478 -478
  489. package/src/aldehyde/lowcode-components/lowcode-view/component/component-controller.ts +153 -153
  490. package/src/aldehyde/lowcode-components/lowcode-view/component/component-definition.ts +23 -23
  491. package/src/aldehyde/lowcode-components/lowcode-view/component/loading.tsx +20 -20
  492. package/src/aldehyde/lowcode-components/lowcode-view/component/util.ts +27 -27
  493. package/src/aldehyde/lowcode-components/lowcode-view/index.less +19 -19
  494. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +279 -279
  495. package/src/aldehyde/lowcode-components/lowcode-view/interface.ts +189 -189
  496. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +353 -353
  497. package/src/aldehyde/lowcode-components/progress-chart/index.tsx +295 -295
  498. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +322 -322
  499. package/src/aldehyde/lowcode-components/search-form/index.less +25 -25
  500. package/src/aldehyde/lowcode-components/search-form/index.tsx +121 -121
  501. package/src/aldehyde/lowcode-components/stroke-animation/index.tsx +219 -219
  502. package/src/aldehyde/module/block-menu-tree-drawer.tsx +118 -118
  503. package/src/aldehyde/module/criteria-page.tsx1 +175 -175
  504. package/src/aldehyde/module/draggable-modal.tsx +66 -66
  505. package/src/aldehyde/module/dtmpl-edit-card.tsx +479 -479
  506. package/src/aldehyde/module/dtmpl-edit-drawer.tsx +24 -24
  507. package/src/aldehyde/module/dtmpl-edit-modal.tsx +26 -26
  508. package/src/aldehyde/module/dtmpl-edit-page.tsx +600 -600
  509. package/src/aldehyde/module/dtmpl-editor.tsx +165 -165
  510. package/src/aldehyde/module/dtmpl-view-card.tsx +64 -64
  511. package/src/aldehyde/module/dtmpl-view-drawer.tsx +71 -71
  512. package/src/aldehyde/module/dtmpl-view-modal.tsx +56 -56
  513. package/src/aldehyde/module/embed-dtmpl-edit-page.tsx +137 -137
  514. package/src/aldehyde/module/index.less +4 -4
  515. package/src/aldehyde/module/ltmpl-drawer.tsx +60 -60
  516. package/src/aldehyde/module/ltmpl-modal.tsx +63 -63
  517. package/src/aldehyde/module/ltmpl-table.tsx +387 -387
  518. package/src/aldehyde/module/ttmpl-tree.tsx +47 -47
  519. package/src/aldehyde/routable/dtmpl-route.tsx +179 -179
  520. package/src/aldehyde/routable/import-route.tsx +42 -42
  521. package/src/aldehyde/routable/index.less +25 -25
  522. package/src/aldehyde/routable/ltmpl-route.tsx +549 -549
  523. package/src/aldehyde/routable/splitview-ltmpl-route.tsx +385 -385
  524. package/src/aldehyde/routable/ttmpl-route.tsx +98 -98
  525. package/src/aldehyde/routable/withroute.tsx +36 -36
  526. package/src/aldehyde/sso-Login/index.tsx +73 -73
  527. package/src/aldehyde/sso-Login/service/index.js +16 -16
  528. package/src/aldehyde/sso-Login/service/login.js +75 -75
  529. package/src/aldehyde/table/act-table.tsx +1865 -1865
  530. package/src/aldehyde/table/column/column-builder.tsx +882 -882
  531. package/src/aldehyde/table/column/column-selector.tsx +130 -130
  532. package/src/aldehyde/table/column/index.less +85 -85
  533. package/src/aldehyde/table/column/summary-builder.tsx +712 -712
  534. package/src/aldehyde/table/column/theme-color-getter.tsx +25 -25
  535. package/src/aldehyde/table/control-table-x-axis-wrapper.tsx +80 -80
  536. package/src/aldehyde/table/index.css +211 -211
  537. package/src/aldehyde/table/l2-act-table.tsx +91 -91
  538. package/src/aldehyde/table/modal-select-table.tsx +308 -308
  539. package/src/aldehyde/table/page-chart.less +9 -9
  540. package/src/aldehyde/table/page-chart.tsx +196 -196
  541. package/src/aldehyde/table/page-config-button.tsx +203 -203
  542. package/src/aldehyde/table/pagination.css +14 -14
  543. package/src/aldehyde/table/pagination.tsx +81 -81
  544. package/src/aldehyde/table/query-table.tsx +668 -668
  545. package/src/aldehyde/table/relation-table.tsx +1078 -1078
  546. package/src/aldehyde/table/report-table.tsx +125 -125
  547. package/src/aldehyde/table/resizable-table.tsx +97 -97
  548. package/src/aldehyde/table/row-table.tsx +45 -45
  549. package/src/aldehyde/table/select-table.tsx +559 -559
  550. package/src/aldehyde/table/selected-rows-card.tsx +78 -78
  551. package/src/aldehyde/table/stat/restat.tsx +122 -122
  552. package/src/aldehyde/table/table-util.tsx +25 -25
  553. package/src/aldehyde/tmpl/control-type-supportor.tsx +154 -154
  554. package/src/aldehyde/tmpl/hc-data-source.tsx +574 -574
  555. package/src/aldehyde/tmpl/hcservice-v3.tsx +1590 -1590
  556. package/src/aldehyde/tmpl/interface.tsx +940 -940
  557. package/src/aldehyde/tmpl/model-struc-v3.tsx +111 -111
  558. package/src/aldehyde/tmpl/superagent.js +146 -146
  559. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +585 -585
  560. package/src/aldehyde/tmpl/web-socket.ts +366 -366
  561. package/src/aldehyde/tree/act-tree.tsx +219 -219
  562. package/src/aldehyde/tree/block-menu-auth-tree.tsx +189 -189
  563. package/src/aldehyde/tree/index.css +22 -22
  564. package/src/aldehyde/tree/navigation-tree.tsx +39 -39
  565. package/src/aldehyde/tree/tmpl-tree.tsx +751 -751
  566. package/src/aldehyde/tree/tree-node.tsx +73 -73
  567. package/src/aldehyde/tree/tree-utils.tsx +317 -317
  568. package/src/aldehyde/units/EncryptUtils.js +37 -37
  569. package/src/aldehyde/units/image.d.ts +7 -7
  570. package/src/aldehyde/units/index.tsx +1375 -1375
  571. package/src/aldehyde/units/storage.js +2 -2
  572. package/src/aldehyde/utils/dsu.ts +27 -27
  573. package/src/aldehyde/welcome/HCWelcome.js +404 -404
  574. package/src/aldehyde/welcome/HCWelcome1.js +259 -259
  575. package/src/aldehyde/welcome/components/menu-card.less +96 -96
  576. package/src/aldehyde/welcome/components/menu-card.tsx +70 -70
  577. package/src/aldehyde/welcome/components/page-card.less +49 -49
  578. package/src/aldehyde/welcome/components/page-card.tsx +97 -97
  579. package/src/aldehyde/welcome/components/quick-entrance.less +120 -120
  580. package/src/aldehyde/welcome/components/quick-entrance.tsx +80 -80
  581. package/src/aldehyde/welcome/components/user-menus.less +192 -192
  582. package/src/aldehyde/welcome/components/user-menus.tsx +279 -279
  583. package/src/aldehyde/welcome/components/workbench.less +118 -118
  584. package/src/aldehyde/welcome/components/workbench.tsx +146 -146
  585. 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
+ };