@gct-paas/core 0.1.4-dev.10 → 0.1.4-dev.12

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 (298) hide show
  1. package/dist/index.esm.min.js +21679 -0
  2. package/es/constants/core.mjs +5 -4
  3. package/es/constants/default-date-type/default-date-type.d.ts +70 -0
  4. package/es/constants/default-date-type/default-date-type.mjs +74 -0
  5. package/es/constants/editor-register/editor-register.mjs +17 -5
  6. package/es/constants/expression-type/BuiltOperators.mjs +152 -145
  7. package/es/constants/expression-type/FunctionKeys.mjs +75 -79
  8. package/es/constants/expression-type/editor.mjs +10 -3
  9. package/es/constants/expression-type/function.mjs +602 -613
  10. package/es/constants/expression-type/index.mjs +111 -113
  11. package/es/constants/expression-type/modeCfg.mjs +256 -263
  12. package/es/constants/expression-type/variable.mjs +43 -39
  13. package/es/constants/form-container-type/form-container-type.mjs +17 -5
  14. package/es/constants/index.d.ts +2 -1
  15. package/es/constants/index.mjs +30 -10
  16. package/es/constants/page-designer/model.d.ts +4 -0
  17. package/es/constants/page-designer/model.mjs +17 -0
  18. package/es/create-app-vue.mjs +15 -9
  19. package/es/enums/app-designer/index.d.ts +19 -0
  20. package/es/enums/app-designer/index.mjs +131 -63
  21. package/es/enums/appEnum.mjs +681 -360
  22. package/es/enums/appStateEnum.mjs +17 -10
  23. package/es/enums/authActionEnum.mjs +63 -51
  24. package/es/enums/breakpointEnum.mjs +27 -26
  25. package/es/enums/cacheEnum.mjs +22 -21
  26. package/es/enums/designEnum.mjs +110 -71
  27. package/es/enums/developer-center/integration.mjs +7 -6
  28. package/es/enums/exceptionEnum.mjs +21 -17
  29. package/es/enums/expressionEnum.d.ts +1 -1
  30. package/es/enums/expressionEnum.mjs +81 -74
  31. package/es/enums/globalEnum.d.ts +15 -0
  32. package/es/enums/globalEnum.mjs +60 -25
  33. package/es/enums/httpEnum.mjs +71 -61
  34. package/es/enums/index.mjs +43 -14
  35. package/es/enums/menuEnum.mjs +42 -38
  36. package/es/enums/page-designer/designer.mjs +403 -407
  37. package/es/enums/page-designer/index.mjs +4 -0
  38. package/es/enums/page-designer/panel.mjs +341 -213
  39. package/es/enums/page-designer/toolkit.mjs +13 -12
  40. package/es/enums/page-designer/widget.d.ts +5 -0
  41. package/es/enums/page-designer/widget.mjs +426 -334
  42. package/es/enums/pageEnum.mjs +14 -13
  43. package/es/enums/plugin-enum.mjs +23 -7
  44. package/es/enums/processEnum.mjs +95 -60
  45. package/es/enums/roleEnum.mjs +7 -6
  46. package/es/enums/sizeEnum.d.ts +18 -0
  47. package/es/enums/sizeEnum.mjs +28 -8
  48. package/es/global/gct/gct.d.ts +9 -3
  49. package/es/global/gct/gct.mjs +84 -91
  50. package/es/global/index.mjs +1 -0
  51. package/es/hooks/index.d.ts +0 -2
  52. package/es/hooks/index.mjs +4 -0
  53. package/es/hooks/use-app-inst/use-app-inst.mjs +11 -5
  54. package/es/hooks/use-modal/use-modal.mjs +16 -10
  55. package/es/hooks/use-sub-app-utils/use-sub-app-utils.mjs +43 -23
  56. package/es/hooks/useCopyToClipboard.mjs +50 -50
  57. package/es/index.d.ts +1 -3
  58. package/es/index.mjs +122 -134
  59. package/es/interface/i-dictionary/i-dictionary-item.d.ts +6 -0
  60. package/es/interface/i-global-register/i-global-register.d.ts +8 -0
  61. package/es/interface/i-pinia-action/i-global-actions.d.ts +4 -0
  62. package/es/interface/i-pinia-getter/i-global-getters.d.ts +2 -0
  63. package/es/interface/i-pinia-state/i-global-state.d.ts +12 -1
  64. package/es/interface/index.d.ts +3 -6
  65. package/es/interface/model-desginer/entity.d.ts +110 -0
  66. package/es/interface/provider/index.d.ts +0 -2
  67. package/es/locale/index.mjs +43 -57
  68. package/es/modules/env-manager/env-manager.const.mjs +16 -8
  69. package/es/modules/env-manager/env-manager.interface.mjs +14 -7
  70. package/es/modules/env-manager/env-manager.mjs +104 -107
  71. package/es/modules/error-handler/error-handler.const.mjs +11 -16
  72. package/es/modules/error-handler/error-strategy.mjs +199 -175
  73. package/es/modules/error-handler/index.mjs +120 -106
  74. package/es/modules/mqtt/constants/mqtt.const.d.ts +33 -0
  75. package/es/modules/mqtt/constants/mqtt.const.mjs +24 -0
  76. package/es/modules/mqtt/enums/mqtt-status.enum.d.ts +20 -0
  77. package/es/modules/mqtt/enums/mqtt-status.enum.mjs +24 -0
  78. package/es/modules/mqtt/index.d.ts +5 -0
  79. package/es/modules/mqtt/index.mjs +4 -0
  80. package/es/modules/mqtt/interfaces/i-mqtt.d.ts +139 -0
  81. package/es/modules/mqtt/mqtt-client.d.ts +117 -0
  82. package/es/modules/mqtt/mqtt-client.mjs +229 -0
  83. package/es/modules/mqtt/mqtt-manager.d.ts +87 -0
  84. package/es/modules/mqtt/mqtt-manager.mjs +118 -0
  85. package/es/modules/platform-config/constants/index.mjs +4 -0
  86. package/es/modules/platform-config/constants/login.const.mjs +48 -45
  87. package/es/modules/platform-config/constants/org.const.mjs +57 -52
  88. package/es/modules/platform-config/constants/theme.const.mjs +11 -4
  89. package/es/modules/platform-config/constants/watermark.const.mjs +17 -12
  90. package/es/modules/platform-config/enums/deploy.enum.mjs +13 -6
  91. package/es/modules/platform-config/enums/login.enum.mjs +29 -15
  92. package/es/modules/platform-config/enums/platform.enum.d.ts +0 -15
  93. package/es/modules/platform-config/enums/platform.enum.mjs +17 -26
  94. package/es/modules/platform-config/index.mjs +9 -0
  95. package/es/modules/platform-config/interfaces/index.d.ts +0 -1
  96. package/es/modules/platform-config/store.mjs +68 -76
  97. package/es/modules/platform-config/useBasicSetting.mjs +47 -35
  98. package/es/modules/platform-config/useDeploySetting.mjs +29 -21
  99. package/es/modules/platform-config/useLoginSetting.mjs +151 -173
  100. package/es/modules/platform-config/useOrgSetting.mjs +63 -62
  101. package/es/modules/platform-config/useProjectSetting.mjs +14 -6
  102. package/es/modules/platform-config/useSecuritySetting.mjs +68 -56
  103. package/es/modules/platform-config/useThemeSetting.mjs +78 -59
  104. package/es/modules/platform-config/useWatermarkSetting.mjs +37 -23
  105. package/es/modules/user-stores/index.mjs +3 -0
  106. package/es/modules/user-stores/store/permission.store.mjs +27 -36
  107. package/es/modules/user-stores/store/tenant.store.mjs +20 -22
  108. package/es/modules/user-stores/store/user.store.d.ts +74 -0
  109. package/es/modules/user-stores/store/user.store.mjs +94 -102
  110. package/es/modules/user-stores/types/user.d.ts +1 -0
  111. package/es/router/index.mjs +25 -28
  112. package/es/setup-app.mjs +23 -28
  113. package/es/state/global-pinia-state/global-pinia-state.d.ts +15 -1
  114. package/es/state/global-pinia-state/global-pinia-state.mjs +49 -57
  115. package/es/state/index.d.ts +0 -9
  116. package/es/state/index.mjs +1 -0
  117. package/es/store/global-store.mjs +50 -58
  118. package/es/store/index.mjs +25 -19
  119. package/es/types/index.d.ts +7 -0
  120. package/es/utils/axios/interceptors.mjs +21 -17
  121. package/es/utils/cache-adapter/cache-adapter.mjs +61 -56
  122. package/es/utils/design/design.d.ts +11 -0
  123. package/es/utils/design/design.mjs +21 -0
  124. package/es/utils/deviceFingerprint.mjs +74 -63
  125. package/es/utils/dictionary/dictionary.mjs +142 -145
  126. package/es/utils/file/base64Conver.d.ts +9 -0
  127. package/es/utils/file/base64Conver.mjs +40 -0
  128. package/es/utils/file/download.d.ts +44 -0
  129. package/es/utils/file/download.mjs +103 -0
  130. package/es/utils/file/parser.d.ts +3 -0
  131. package/es/utils/file/parser.mjs +29 -0
  132. package/es/utils/i18n/index.mjs +14 -3
  133. package/es/utils/index.d.ts +7 -2
  134. package/es/utils/index.mjs +31 -0
  135. package/es/utils/is-sort-filed/is-sort-filed.mjs +42 -37
  136. package/es/utils/linked-list/linked-list.mjs +115 -118
  137. package/es/utils/linked-node/linked-node.mjs +41 -31
  138. package/es/utils/lowcode/utils.mjs +13 -18
  139. package/es/utils/lowcode/validate.mjs +20 -26
  140. package/es/utils/mitt/mitt.mjs +4 -4
  141. package/es/utils/model-loader/model-loader.mjs +280 -325
  142. package/es/utils/namespace/namespace.mjs +178 -164
  143. package/es/utils/openUtil/index.mjs +2 -0
  144. package/es/utils/openUtil/modal/modal.mjs +72 -79
  145. package/es/utils/openUtil/overlay-container/overlay-container.mjs +144 -138
  146. package/es/utils/permission.d.ts +19 -0
  147. package/es/utils/permission.mjs +34 -0
  148. package/es/utils/plugin-static-resource/plugin-static-resource.mjs +46 -42
  149. package/es/utils/style/index.mjs +94 -138
  150. package/es/utils/tools/tools.mjs +86 -54
  151. package/es/utils/treeHelper/treeHelper.mjs +205 -233
  152. package/es/utils/uploader/uploader.d.ts +20 -0
  153. package/es/utils/uploader/uploader.mjs +86 -0
  154. package/es/utils/useUUid.mjs +79 -87
  155. package/es/utils/util.mjs +55 -35
  156. package/es/utils/uuid/uuid.d.ts +1 -0
  157. package/es/utils/uuid/uuid.mjs +36 -43
  158. package/es/utils/validate.d.ts +5 -0
  159. package/es/utils/validate.mjs +21 -0
  160. package/es/utils/value-helper/value-helper.mjs +113 -98
  161. package/package.json +14 -14
  162. package/dist/index.esm.min.mjs +0 -8101
  163. package/dist/index.min.cjs +0 -386
  164. package/dist/index.system.min.js +0 -386
  165. package/es/constants/editor-type/editor-type.d.ts +0 -244
  166. package/es/constants/editor-type/editor-type.mjs +0 -63
  167. package/es/controller/edit-form/edit-form.controller.d.ts +0 -28
  168. package/es/controller/edit-form/edit-form.controller.mjs +0 -47
  169. package/es/controller/editor/color-editor.controller.d.ts +0 -13
  170. package/es/controller/editor/color-editor.controller.mjs +0 -6
  171. package/es/controller/editor/length-unit-editor.controller.d.ts +0 -13
  172. package/es/controller/editor/length-unit-editor.controller.mjs +0 -6
  173. package/es/controller/editor-item/editor-item.controller.d.ts +0 -14
  174. package/es/controller/editor-item/editor-item.controller.mjs +0 -8
  175. package/es/controller/form/form.controller.d.ts +0 -76
  176. package/es/controller/form/form.controller.mjs +0 -147
  177. package/es/controller/form-collapse/form-collapse.controller.d.ts +0 -18
  178. package/es/controller/form-collapse/form-collapse.controller.mjs +0 -14
  179. package/es/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +0 -18
  180. package/es/controller/form-collapse-pane/form-collapse-pane.controller.mjs +0 -14
  181. package/es/controller/form-edit-item/form-edit-item.controller.d.ts +0 -27
  182. package/es/controller/form-edit-item/form-edit-item.controller.mjs +0 -74
  183. package/es/controller/form-group/form-group.controller.d.ts +0 -18
  184. package/es/controller/form-group/form-group.controller.mjs +0 -14
  185. package/es/controller/form-item/form-item.controller.d.ts +0 -21
  186. package/es/controller/form-item/form-item.controller.mjs +0 -43
  187. package/es/controller/form-item-basic/form-item-basic.controller.d.ts +0 -57
  188. package/es/controller/form-item-basic/form-item-basic.controller.mjs +0 -49
  189. package/es/controller/form-item-hidden/form-item-hidden.controller.d.ts +0 -17
  190. package/es/controller/form-item-hidden/form-item-hidden.controller.mjs +0 -7
  191. package/es/controller/form-tab/form-tab.controller.d.ts +0 -18
  192. package/es/controller/form-tab/form-tab.controller.mjs +0 -14
  193. package/es/controller/form-tab-pane/form-tab-pane.controller.d.ts +0 -18
  194. package/es/controller/form-tab-pane/form-tab-pane.controller.mjs +0 -14
  195. package/es/controller/gct-form/gct-form.controller.d.ts +0 -101
  196. package/es/controller/gct-form/gct-form.controller.mjs +0 -214
  197. package/es/controller/index.d.ts +0 -15
  198. package/es/hooks/use-form/use-form.d.ts +0 -10
  199. package/es/hooks/use-form/use-form.mjs +0 -8
  200. package/es/hooks/use-gct-form-value/use-gct-form-value.d.ts +0 -22
  201. package/es/hooks/use-gct-form-value/use-gct-form-value.mjs +0 -89
  202. package/es/hooks/use-overlay-scrollbars/use-overlay-scrollbars.d.ts +0 -11
  203. package/es/interface/controller/edit-form/edit-form.controller.d.ts +0 -26
  204. package/es/interface/controller/editor/i-color-editor.controller.d.ts +0 -11
  205. package/es/interface/controller/editor/i-length-unit-editor.controller.d.ts +0 -11
  206. package/es/interface/controller/editor-item/editor-item.controller.d.ts +0 -19
  207. package/es/interface/controller/form/form.controller.d.ts +0 -121
  208. package/es/interface/controller/form-collapse/form-collapse.controller.d.ts +0 -23
  209. package/es/interface/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +0 -23
  210. package/es/interface/controller/form-edit-item/form-edit-item.controller.d.ts +0 -59
  211. package/es/interface/controller/form-group/form-group.controller.d.ts +0 -24
  212. package/es/interface/controller/form-hidden-item/form-hidden-item.controller.d.ts +0 -24
  213. package/es/interface/controller/form-item/form-item.controller.d.ts +0 -40
  214. package/es/interface/controller/form-item-basic/form-item-basic.controller.d.ts +0 -51
  215. package/es/interface/controller/form-tab/form-tab.controller.d.ts +0 -23
  216. package/es/interface/controller/form-tab-pane/form-tab-pane.controller.d.ts +0 -23
  217. package/es/interface/controller/index.d.ts +0 -14
  218. package/es/interface/events/form/i-form.event.d.ts +0 -11
  219. package/es/interface/events/index.d.ts +0 -1
  220. package/es/interface/form/i-editor/i-check-switch.d.ts +0 -29
  221. package/es/interface/form/i-editor/i-checkbox-editor.d.ts +0 -9
  222. package/es/interface/form/i-editor/i-color-editor.d.ts +0 -13
  223. package/es/interface/form/i-editor/i-editor-basic.d.ts +0 -87
  224. package/es/interface/form/i-editor/i-icon-select-editor.d.ts +0 -21
  225. package/es/interface/form/i-editor/i-info-editor.d.ts +0 -21
  226. package/es/interface/form/i-editor/i-length-unit-editor.d.ts +0 -13
  227. package/es/interface/form/i-editor/i-model-field-select-editor.d.ts +0 -18
  228. package/es/interface/form/i-editor/i-number-editor.d.ts +0 -21
  229. package/es/interface/form/i-editor/i-picker-editor.d.ts +0 -30
  230. package/es/interface/form/i-editor/i-radio-editor.d.ts +0 -21
  231. package/es/interface/form/i-editor/i-select-editor.d.ts +0 -14
  232. package/es/interface/form/i-editor/i-span-editor.d.ts +0 -30
  233. package/es/interface/form/i-editor/i-switch-editor.d.ts +0 -14
  234. package/es/interface/form/i-editor/i-text-editor.d.ts +0 -46
  235. package/es/interface/form/i-editor/i-textarea-editor.d.ts +0 -25
  236. package/es/interface/form/i-form/i-edit-form.d.ts +0 -48
  237. package/es/interface/form/i-form/i-form-collapse-pane.d.ts +0 -30
  238. package/es/interface/form/i-form/i-form-collapse.d.ts +0 -35
  239. package/es/interface/form/i-form/i-form-container.d.ts +0 -53
  240. package/es/interface/form/i-form/i-form-edit-item.d.ts +0 -140
  241. package/es/interface/form/i-form/i-form-group-container.d.ts +0 -24
  242. package/es/interface/form/i-form/i-form-group.d.ts +0 -35
  243. package/es/interface/form/i-form/i-form-hidden-item.d.ts +0 -11
  244. package/es/interface/form/i-form/i-form-item-basic.d.ts +0 -126
  245. package/es/interface/form/i-form/i-form-item.d.ts +0 -11
  246. package/es/interface/form/i-form/i-form-tab-pane.d.ts +0 -23
  247. package/es/interface/form/i-form/i-form-tab.d.ts +0 -21
  248. package/es/interface/form/i-form/i-form.d.ts +0 -79
  249. package/es/interface/form/index.d.ts +0 -29
  250. package/es/interface/layout/i-flex-layout/i-flex-container.d.ts +0 -75
  251. package/es/interface/layout/i-flex-layout/i-flex-item.d.ts +0 -51
  252. package/es/interface/layout/i-grid-layout/i-grid-container.d.ts +0 -29
  253. package/es/interface/layout/i-grid-layout/i-grid-item-span.d.ts +0 -54
  254. package/es/interface/layout/i-grid-layout/i-grid-item.d.ts +0 -37
  255. package/es/interface/layout/i-layout-basis/i-layout-container-basis.d.ts +0 -11
  256. package/es/interface/layout/index.d.ts +0 -6
  257. package/es/interface/provider/i-editor-provider/i-editor-provider.d.ts +0 -24
  258. package/es/interface/provider/i-form-item-provider/i-form-item-provider.d.ts +0 -44
  259. package/es/interface/state/form/form.state.d.ts +0 -53
  260. package/es/interface/state/form-collapse/form-collapse.state.d.ts +0 -11
  261. package/es/interface/state/form-collapse-pane/form-collapse-pane.state.d.ts +0 -11
  262. package/es/interface/state/form-edit-item/form-edit-item.state.d.ts +0 -38
  263. package/es/interface/state/form-group/form-group.state.d.ts +0 -21
  264. package/es/interface/state/form-hidden-item/form-hidden-item.state.d.ts +0 -5
  265. package/es/interface/state/form-item/form-item.state.d.ts +0 -20
  266. package/es/interface/state/form-item-basic/form-item-basic.state.d.ts +0 -63
  267. package/es/interface/state/form-tab/form-tab.state.d.ts +0 -19
  268. package/es/interface/state/form-tab-pane/form-tab-pane.state.d.ts +0 -11
  269. package/es/interface/state/index.d.ts +0 -10
  270. package/es/modules/platform-config/interfaces/global-setting.interface.d.ts +0 -7
  271. package/es/register/editor-register/editor-register.d.ts +0 -49
  272. package/es/register/editor-register/editor-register.mjs +0 -57
  273. package/es/register/form-item-register/form-item-register.d.ts +0 -36
  274. package/es/register/form-item-register/form-item-register.mjs +0 -42
  275. package/es/register/index.d.ts +0 -14
  276. package/es/state/form/form.state.d.ts +0 -24
  277. package/es/state/form/form.state.mjs +0 -16
  278. package/es/state/form-collapse/form-collapse.state.d.ts +0 -14
  279. package/es/state/form-collapse/form-collapse.state.mjs +0 -6
  280. package/es/state/form-collapse-pane/form-collapse-pane.state.d.ts +0 -14
  281. package/es/state/form-collapse-pane/form-collapse-pane.state.mjs +0 -6
  282. package/es/state/form-edit-item/form-edit-item.state.d.ts +0 -17
  283. package/es/state/form-edit-item/form-edit-item.state.mjs +0 -10
  284. package/es/state/form-group/form-group.state.d.ts +0 -21
  285. package/es/state/form-group/form-group.state.mjs +0 -14
  286. package/es/state/form-item/form-item.state.d.ts +0 -14
  287. package/es/state/form-item/form-item.state.mjs +0 -6
  288. package/es/state/form-item-basic/form-item-basic.state.d.ts +0 -17
  289. package/es/state/form-item-basic/form-item-basic.state.mjs +0 -9
  290. package/es/state/form-tab/form-tab.state.d.ts +0 -15
  291. package/es/state/form-tab/form-tab.state.mjs +0 -7
  292. package/es/state/form-tab-pane/form-tab-pane.state.d.ts +0 -14
  293. package/es/state/form-tab-pane/form-tab-pane.state.mjs +0 -6
  294. package/es/utils/props/gct-form-item/gct-form-item.props.d.ts +0 -63
  295. package/es/utils/props/gct-form-item/gct-form-item.props.mjs +0 -66
  296. package/es/utils/props/index.d.ts +0 -1
  297. package/es/utils/width-install/width-install.d.ts +0 -17
  298. package/es/utils/width-install/width-install.mjs +0 -23
@@ -1,234 +1,206 @@
1
- class TreeHelper {
2
- /**
3
- * 默认配置
4
- */
5
- static _DEFAULT_CONFIG = {
6
- id: "id",
7
- children: "children",
8
- pid: "pid",
9
- deep: true
10
- };
11
- /**
12
- * 获取合并后的配置
13
- * @param config 用户配置
14
- * @returns 合并后的完整配置
15
- */
16
- static _getConfig(config) {
17
- return Object.assign({}, TreeHelper._DEFAULT_CONFIG, config);
18
- }
19
- /**
20
- * 将列表数据转换为树形结构
21
- * @param list 列表数据
22
- * @param config 配置项
23
- * @param callBack 节点转换回调函数
24
- * @returns 树形结构数据
25
- */
26
- static listToTree(list, config = {}, callBack) {
27
- const conf = TreeHelper._getConfig(config);
28
- const nodeMap = /* @__PURE__ */ new Map();
29
- const result = [];
30
- const { id, children, pid, deep } = conf;
31
- for (const node of list) {
32
- const record = node;
33
- if (!deep) {
34
- record[children] = record[pid] === "ROOT" ? record[children] ?? [] : [];
35
- } else {
36
- record[children] = record[children] ?? void 0;
37
- }
38
- nodeMap.set(record[id], callBack(node));
39
- }
40
- for (const node of list) {
41
- const record = node;
42
- const parent = nodeMap.get(record[pid]);
43
- if (parent) {
44
- const parentRecord = parent;
45
- if (!parentRecord[children]) {
46
- parentRecord[children] = [];
47
- }
48
- parentRecord[children].push(callBack(node));
49
- } else {
50
- result.push(callBack(node));
51
- }
52
- }
53
- return result;
54
- }
55
- /**
56
- * 将树形结构转换为列表数据
57
- * @param tree 树形结构数据
58
- * @param config 配置项
59
- * @returns 列表数据
60
- */
61
- static treeToList(tree, config = {}) {
62
- const { children } = TreeHelper._getConfig(config);
63
- const result = [...tree];
64
- for (let i = 0; i < result.length; i++) {
65
- const record = result[i];
66
- const child = record[children];
67
- if (!Array.isArray(child)) continue;
68
- result.splice(i + 1, 0, ...child);
69
- }
70
- return result;
71
- }
72
- /**
73
- * 在树中查找单个节点
74
- * @param tree 树形结构数据
75
- * @param func 查找条件函数
76
- * @param config 配置项
77
- * @returns 找到的节点或 null
78
- */
79
- static findNode(tree, func, config = {}) {
80
- const { children } = TreeHelper._getConfig(config);
81
- const list = tree ? [...tree] : [];
82
- for (const node of list) {
83
- if (func(node)) return node;
84
- const record = node;
85
- const child = record[children];
86
- if (Array.isArray(child)) {
87
- list.push(...child);
88
- }
89
- }
90
- return null;
91
- }
92
- /**
93
- * 在树中查找所有匹配的节点
94
- * @param tree 树形结构数据
95
- * @param func 查找条件函数
96
- * @param config 配置项
97
- * @returns 所有匹配的节点数组
98
- */
99
- static findNodeAll(tree, func, config = {}) {
100
- const { children } = TreeHelper._getConfig(config);
101
- const list = tree ? [...tree] : [];
102
- const result = [];
103
- for (const node of list) {
104
- if (func(node)) result.push(node);
105
- const record = node;
106
- const child = record[children];
107
- if (Array.isArray(child)) {
108
- list.push(...child);
109
- }
110
- }
111
- return result;
112
- }
113
- /**
114
- * 查找节点的路径
115
- * @param tree 树形结构数据
116
- * @param func 查找条件函数
117
- * @param config 配置项
118
- * @returns 从根节点到目标节点的路径数组,未找到返回 null
119
- */
120
- static findPath(tree, func, config = {}) {
121
- const { children } = TreeHelper._getConfig(config);
122
- const path = [];
123
- const list = tree ? [...tree] : [];
124
- const visitedSet = /* @__PURE__ */ new Set();
125
- while (list.length) {
126
- const node = list[0];
127
- if (visitedSet.has(node)) {
128
- path.pop();
129
- list.shift();
130
- } else {
131
- visitedSet.add(node);
132
- const record = node;
133
- const child = record[children];
134
- if (Array.isArray(child)) {
135
- list.unshift(...child);
136
- }
137
- path.push(node);
138
- if (func(node)) return path;
139
- }
140
- }
141
- return null;
142
- }
143
- /**
144
- * 查找最近的符合条件的父节点
145
- * @param tree 树形结构数据
146
- * @param startId 起始节点 ID
147
- * @param func 查找条件函数
148
- * @param config 配置项
149
- * @returns 找到的父节点或 undefined
150
- */
151
- static findClosestParent(tree, startId, func, config = {}) {
152
- const { id } = TreeHelper._getConfig(config);
153
- const path = TreeHelper.findPath(
154
- tree,
155
- (node) => node[id] === startId,
156
- config
157
- );
158
- return path?.reverse().find((n) => func(n));
159
- }
160
- /**
161
- * 将具有 id parentId 的列表转换为树形结构
162
- * @param list 列表数据,需要包含 id 和 parentId 字段
163
- * @param callBack 节点转换回调函数
164
- * @returns 树形结构数据
165
- */
166
- static list_to_tree(list, callBack) {
167
- const map = {};
168
- const roots = [];
169
- for (let i = 0; i < list.length; i++) {
170
- const node = list[i];
171
- map[node.id] = i;
172
- node.children = [];
173
- }
174
- for (const node of list) {
175
- if (node.parentId === "ROOT" || !node.parentId) {
176
- roots.push(callBack(node));
177
- } else {
178
- const current = node;
179
- const parentIndex = map[node.parentId];
180
- if (parentIndex !== void 0) {
181
- const parent = list[parentIndex];
182
- parent.children?.push(callBack(current));
183
- }
184
- }
185
- }
186
- return roots;
187
- }
188
- /**
189
- * 获取所有父级路径
190
- * @param treeData 树形结构数据
191
- * @param path 目标路径
192
- * @returns 从根节点到目标节点的所有路径数组
193
- */
194
- static getAllParentPath(treeData, path) {
195
- const menuList = TreeHelper.findPath(treeData, (n) => n.path === path);
196
- return (menuList || []).map((item) => item.path);
197
- }
198
- /**
199
- * 递归遍历树并且根据callback返回新数据再拼装成一个新树
200
- *
201
- * @static
202
- * @param {IObject[]} treeData
203
- * @param {Function} callback
204
- * @param {Partial<ITreeHelperConfig>} [config={}]
205
- * @return {*}
206
- */
207
- static traverseAndBuildTree(treeData, callback, config = {}) {
208
- config = this._getConfig(config);
209
- const { children } = config;
210
- return treeData.map((node) => {
211
- const newNode = callback(node) || node;
212
- if (children && node[children] && node[children].length > 0) {
213
- newNode[children] = this.traverseAndBuildTree(node.children, callback);
214
- }
215
- return newNode;
216
- });
217
- }
218
- /**
219
- * 递归遍历树结构
220
- * @param treeData 树形结构数据
221
- * @param callBack 回调函数
222
- * @param parentNode 父节点
223
- */
224
- static eachTree(treeData, callBack, parentNode = {}) {
225
- treeData.forEach((element) => {
226
- const newNode = callBack(element, parentNode) || element;
227
- if (element.children) {
228
- TreeHelper.eachTree(element.children, callBack, newNode);
229
- }
230
- });
231
- }
232
- }
233
-
1
+ //#region src/utils/treeHelper/treeHelper.ts
2
+ /**
3
+ * 树结构数据处理工具类
4
+ * 提供树形数据与列表数据的相互转换、节点查找、路径查找等功能
5
+ */
6
+ var TreeHelper = class TreeHelper {
7
+ /**
8
+ * 默认配置
9
+ */
10
+ static _DEFAULT_CONFIG = {
11
+ id: "id",
12
+ children: "children",
13
+ pid: "pid",
14
+ deep: true
15
+ };
16
+ /**
17
+ * 获取合并后的配置
18
+ * @param config 用户配置
19
+ * @returns 合并后的完整配置
20
+ */
21
+ static _getConfig(config) {
22
+ return Object.assign({}, TreeHelper._DEFAULT_CONFIG, config);
23
+ }
24
+ /**
25
+ * 将列表数据转换为树形结构
26
+ * @param list 列表数据
27
+ * @param config 配置项
28
+ * @param callBack 节点转换回调函数
29
+ * @returns 树形结构数据
30
+ */
31
+ static listToTree(list, config = {}, callBack) {
32
+ const conf = TreeHelper._getConfig(config);
33
+ const nodeMap = /* @__PURE__ */ new Map();
34
+ const result = [];
35
+ const { id, children, pid, deep } = conf;
36
+ for (const node of list) {
37
+ const record = node;
38
+ if (!deep) record[children] = record[pid] === "ROOT" ? record[children] ?? [] : [];
39
+ else record[children] = record[children] ?? void 0;
40
+ nodeMap.set(record[id], callBack(node));
41
+ }
42
+ for (const node of list) {
43
+ const record = node;
44
+ const parent = nodeMap.get(record[pid]);
45
+ if (parent) {
46
+ const parentRecord = parent;
47
+ if (!parentRecord[children]) parentRecord[children] = [];
48
+ parentRecord[children].push(callBack(node));
49
+ } else result.push(callBack(node));
50
+ }
51
+ return result;
52
+ }
53
+ /**
54
+ * 将树形结构转换为列表数据
55
+ * @param tree 树形结构数据
56
+ * @param config 配置项
57
+ * @returns 列表数据
58
+ */
59
+ static treeToList(tree, config = {}) {
60
+ const { children } = TreeHelper._getConfig(config);
61
+ const result = [...tree];
62
+ for (let i = 0; i < result.length; i++) {
63
+ const child = result[i][children];
64
+ if (!Array.isArray(child)) continue;
65
+ result.splice(i + 1, 0, ...child);
66
+ }
67
+ return result;
68
+ }
69
+ /**
70
+ * 在树中查找单个节点
71
+ * @param tree 树形结构数据
72
+ * @param func 查找条件函数
73
+ * @param config 配置项
74
+ * @returns 找到的节点或 null
75
+ */
76
+ static findNode(tree, func, config = {}) {
77
+ const { children } = TreeHelper._getConfig(config);
78
+ const list = tree ? [...tree] : [];
79
+ for (const node of list) {
80
+ if (func(node)) return node;
81
+ const child = node[children];
82
+ if (Array.isArray(child)) list.push(...child);
83
+ }
84
+ return null;
85
+ }
86
+ /**
87
+ * 在树中查找所有匹配的节点
88
+ * @param tree 树形结构数据
89
+ * @param func 查找条件函数
90
+ * @param config 配置项
91
+ * @returns 所有匹配的节点数组
92
+ */
93
+ static findNodeAll(tree, func, config = {}) {
94
+ const { children } = TreeHelper._getConfig(config);
95
+ const list = tree ? [...tree] : [];
96
+ const result = [];
97
+ for (const node of list) {
98
+ if (func(node)) result.push(node);
99
+ const child = node[children];
100
+ if (Array.isArray(child)) list.push(...child);
101
+ }
102
+ return result;
103
+ }
104
+ /**
105
+ * 查找节点的路径
106
+ * @param tree 树形结构数据
107
+ * @param func 查找条件函数
108
+ * @param config 配置项
109
+ * @returns 从根节点到目标节点的路径数组,未找到返回 null
110
+ */
111
+ static findPath(tree, func, config = {}) {
112
+ const { children } = TreeHelper._getConfig(config);
113
+ const path = [];
114
+ const list = tree ? [...tree] : [];
115
+ const visitedSet = /* @__PURE__ */ new Set();
116
+ while (list.length) {
117
+ const node = list[0];
118
+ if (visitedSet.has(node)) {
119
+ path.pop();
120
+ list.shift();
121
+ } else {
122
+ visitedSet.add(node);
123
+ const child = node[children];
124
+ if (Array.isArray(child)) list.unshift(...child);
125
+ path.push(node);
126
+ if (func(node)) return path;
127
+ }
128
+ }
129
+ return null;
130
+ }
131
+ /**
132
+ * 查找最近的符合条件的父节点
133
+ * @param tree 树形结构数据
134
+ * @param startId 起始节点 ID
135
+ * @param func 查找条件函数
136
+ * @param config 配置项
137
+ * @returns 找到的父节点或 undefined
138
+ */
139
+ static findClosestParent(tree, startId, func, config = {}) {
140
+ const { id } = TreeHelper._getConfig(config);
141
+ return TreeHelper.findPath(tree, (node) => node[id] === startId, config)?.reverse().find((n) => func(n));
142
+ }
143
+ /**
144
+ * 将具有 id 和 parentId 的列表转换为树形结构
145
+ * @param list 列表数据,需要包含 id 和 parentId 字段
146
+ * @param callBack 节点转换回调函数
147
+ * @returns 树形结构数据
148
+ */
149
+ static list_to_tree(list, callBack) {
150
+ const map = {};
151
+ const roots = [];
152
+ for (let i = 0; i < list.length; i++) {
153
+ const node = list[i];
154
+ map[node.id] = i;
155
+ node.children = [];
156
+ }
157
+ for (const node of list) if (node.parentId === "ROOT" || !node.parentId) roots.push(callBack(node));
158
+ else {
159
+ const current = node;
160
+ const parentIndex = map[node.parentId];
161
+ if (parentIndex !== void 0) list[parentIndex].children?.push(callBack(current));
162
+ }
163
+ return roots;
164
+ }
165
+ /**
166
+ * 获取所有父级路径
167
+ * @param treeData 树形结构数据
168
+ * @param path 目标路径
169
+ * @returns 从根节点到目标节点的所有路径数组
170
+ */
171
+ static getAllParentPath(treeData, path) {
172
+ return (TreeHelper.findPath(treeData, (n) => n.path === path) || []).map((item) => item.path);
173
+ }
174
+ /**
175
+ * 递归遍历树并且根据callback返回新数据再拼装成一个新树
176
+ *
177
+ * @static
178
+ * @param {IObject[]} treeData
179
+ * @param {Function} callback
180
+ * @param {Partial<ITreeHelperConfig>} [config={}]
181
+ * @return {*}
182
+ */
183
+ static traverseAndBuildTree(treeData, callback, config = {}) {
184
+ config = this._getConfig(config);
185
+ const { children } = config;
186
+ return treeData.map((node) => {
187
+ const newNode = callback(node) || node;
188
+ if (children && node[children] && node[children].length > 0) newNode[children] = this.traverseAndBuildTree(node.children, callback);
189
+ return newNode;
190
+ });
191
+ }
192
+ /**
193
+ * 递归遍历树结构
194
+ * @param treeData 树形结构数据
195
+ * @param callBack 回调函数
196
+ * @param parentNode 父节点
197
+ */
198
+ static eachTree(treeData, callBack, parentNode = {}) {
199
+ treeData.forEach((element) => {
200
+ const newNode = callBack(element, parentNode) || element;
201
+ if (element.children) TreeHelper.eachTree(element.children, callBack, newNode);
202
+ });
203
+ }
204
+ };
205
+ //#endregion
234
206
  export { TreeHelper };
@@ -0,0 +1,20 @@
1
+ export declare class Uploader {
2
+ static getFiles({ multiple, acceptList, }: {
3
+ multiple: boolean;
4
+ acceptList?: string;
5
+ }): Promise<File[]>;
6
+ static beforeUploadFun(file: File, { maxSize, acceptList, beforeUpload, }: {
7
+ maxSize: number;
8
+ acceptList: string[];
9
+ beforeUpload?: (file: File) => Promise<unknown>;
10
+ }): Promise<undefined>;
11
+ static uploadByFile(file: File, isApp?: boolean, modelKey?: string): Promise<string>;
12
+ static toBase64(file: File): Promise<unknown>;
13
+ /**
14
+ * 图片压缩转Base64
15
+ */
16
+ static compressToBase64(file: File, { quality, scale }?: {
17
+ quality?: number | undefined;
18
+ scale?: number | undefined;
19
+ }): Promise<unknown>;
20
+ }
@@ -0,0 +1,86 @@
1
+ //#region src/utils/uploader/uploader.ts
2
+ var Uploader = class {
3
+ static getFiles({ multiple, acceptList }) {
4
+ const input = document.createElement("input");
5
+ input.type = "file";
6
+ input.multiple = !!multiple;
7
+ input.accept = acceptList || "*";
8
+ input.click();
9
+ return new Promise((resolve, reject) => {
10
+ input.onchange = async () => {
11
+ const filelist = input.files || [];
12
+ resolve(Object.values(filelist));
13
+ };
14
+ input.onerror = async () => {
15
+ reject();
16
+ };
17
+ });
18
+ }
19
+ static async beforeUploadFun(file, { maxSize = 5, acceptList = [], beforeUpload }) {
20
+ if (file.name.indexOf(",") > -1) return Promise.reject(`文件名不能有逗号`);
21
+ if (beforeUpload) await beforeUpload(file);
22
+ if (file.size / 1024 / 1024 > maxSize) return Promise.reject(`【${file.name}】文件大小不能超过 ${maxSize}MB`);
23
+ if (acceptList.length) {
24
+ const filename = file?.name?.replaceAll(" ", "")?.match(/\.([A-Za-z0-9]+)$/)?.at(-1);
25
+ if (!acceptList.includes(`.${filename?.toLocaleLowerCase()}`)) return Promise.reject(`【${file.name}】支持的扩展名为${acceptList.join(" ")}`);
26
+ }
27
+ }
28
+ static async uploadByFile(file, isApp = false, modelKey) {
29
+ const formData = new FormData();
30
+ formData.append("file", file, file.name);
31
+ return "/" + await (isApp ? appUploadapis : passUploadapis)(formData, modelKey);
32
+ }
33
+ static toBase64(file) {
34
+ return new Promise((resolve, reject) => {
35
+ const reader = new FileReader();
36
+ reader.onloadend = function() {
37
+ resolve(reader.result);
38
+ };
39
+ reader.onerror = () => reject("转换失败");
40
+ if (file) reader.readAsDataURL(file);
41
+ });
42
+ }
43
+ /**
44
+ * 图片压缩转Base64
45
+ */
46
+ static compressToBase64(file, { quality = .8, scale = .8 } = {}) {
47
+ return new Promise((resolve, reject) => {
48
+ if (!file.type.startsWith("image/")) {
49
+ reject("请选择图片文件");
50
+ return;
51
+ }
52
+ if (typeof scale !== "number" || scale <= 0 || scale > 1) {
53
+ reject("缩放比例必须在0-1之间");
54
+ return;
55
+ }
56
+ const reader = new FileReader();
57
+ reader.onload = (e) => {
58
+ const img = new Image();
59
+ img.onload = () => {
60
+ const width = Math.floor(img.width * scale);
61
+ const height = Math.floor(img.height * scale);
62
+ const canvas = document.createElement("canvas");
63
+ canvas.width = width;
64
+ canvas.height = height;
65
+ const ctx = canvas.getContext("2d");
66
+ ctx.imageSmoothingEnabled = true;
67
+ ctx.imageSmoothingQuality = "high";
68
+ ctx.drawImage(img, 0, 0, width, height);
69
+ resolve(canvas.toDataURL(file.type, quality));
70
+ };
71
+ img.onerror = () => reject("图片加载失败");
72
+ img.src = e.target?.result;
73
+ };
74
+ reader.onerror = () => reject("文件读取失败");
75
+ reader.readAsDataURL(file);
76
+ });
77
+ }
78
+ };
79
+ async function appUploadapis(formData, modelKey) {
80
+ return _api.apaas.fileResource.postUpload({ ...modelKey ? { modelKey } : {} }, formData, { headers: { "Content-Type": "multipart/form-data;charset=UTF-8" } });
81
+ }
82
+ async function passUploadapis(formData) {
83
+ return _api.apaas.file.postUploadImage({ bucket: "IMAGE" }, formData, { headers: { "Content-Type": "multipart/form-data;charset=UTF-8" } });
84
+ }
85
+ //#endregion
86
+ export { Uploader };