aldehyde 0.2.488 → 0.2.489

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