@utogether/udp-core 1.0.1 → 1.0.2

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 (239) hide show
  1. package/build/plugins.ts +13 -2
  2. package/dist/{403-JWjatlxJ.js → 403-B1rIjAAu.js} +7 -6
  3. package/dist/{404-BcdMJfPb.js → 404-mBqc2y4t.js} +14 -13
  4. package/dist/{500-bsa3F_cc.js → 500-BoI45Zdh.js} +10 -9
  5. package/dist/{AuthorityInfo-CqItgNs5.js → AuthorityInfo-B08NBIIn.js} +1 -1
  6. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-BLP1SaiH.js +100 -0
  7. package/dist/{AuthorityPanel-BaLMwMgW.js → AuthorityPanel-BeBNiwqc.js} +1 -1
  8. package/dist/{AuthorityPanel.vue_vue_type_style_index_0_lang-C_bkqLD9.js → AuthorityPanel.vue_vue_type_style_index_0_lang-CIYmnP9-.js} +6 -6
  9. package/dist/{Company-DVff9IA7.js → Company-JGGyWEWH.js} +3 -3
  10. package/dist/{CompanyPanel-CNrdq4XE.js → CompanyPanel-BQ_cCmDx.js} +16 -16
  11. package/dist/{Department-CqcpfL4i.js → Department-z2iO6hwM.js} +10 -10
  12. package/dist/{DepartmentPanel-Bvti4LGu.js → DepartmentPanel-BtQe7zwU.js} +108 -78
  13. package/dist/{DesignPanel-CjykspE1.js → DesignPanel-7mhtVWas.js} +1 -1
  14. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-BK9EERdd.js → DesignPanel.vue_vue_type_style_index_0_lang-4EsHemj_.js} +24 -26
  15. package/dist/DictView-CjchV2Yk.js +109 -0
  16. package/dist/InvOrganization-Pn1O_XP0.js +74 -0
  17. package/dist/Org-BqytV_vi.js +39 -0
  18. package/dist/{Preview-Cm_7RhYU.js → Preview-CLpUUMay.js} +2 -2
  19. package/dist/{ReportDefine-CJVlQ--7.js → ReportDefine-Cz1KtEUF.js} +1 -1
  20. package/dist/{ReportDesign-B0unlrkt.js → ReportDesign-BaORYud4.js} +46 -46
  21. package/dist/{ReportQuery-BKuMCEvF.js → ReportQuery-CPCPXiXz.js} +5 -5
  22. package/dist/{ReportQueryFrom-DAngMJLU.js → ReportQueryFrom-C_AcrfkJ.js} +1 -1
  23. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CPpwmztJ.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-Bm67ejay.js} +6 -5
  24. package/dist/{ReportTemplate-8YH3L8Pv.js → ReportTemplate-CFiNMz79.js} +26 -26
  25. package/dist/{Role-MxI30-0W.js → Role-B-XDoJd5.js} +6 -6
  26. package/dist/{RoleAssign-BzUY_y_y.js → RoleAssign-BolW8YVs.js} +9 -9
  27. package/dist/{RolePanel-DS_TErTn.js → RolePanel-2kfs5tw9.js} +1 -1
  28. package/dist/{RolePanel-CXdcvsR5.js → RolePanel-HilSuYns.js} +1 -1
  29. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-CE4gApUY.js +132 -0
  30. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Ddl-A7Zh.js → RolePanel.vue_vue_type_script_setup_true_lang-DPzgfAyV.js} +42 -36
  31. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DnchUgIF.js → ScrollPanel.vue_vue_type_style_index_0_lang-CCTH4RkH.js} +20 -20
  32. package/dist/{Staff-D7tXo_Gn.js → Staff-BTk3whFC.js} +3 -3
  33. package/dist/{StaffInfo-Bk8BY8PO.js → StaffInfo-d3AuSzlA.js} +1 -1
  34. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-DqKwZi5f.js → StaffInfo.vue_vue_type_script_setup_true_lang-eOL4VlfE.js} +13 -13
  35. package/dist/{StaffPanel-VtpGCTIq.js → StaffPanel-DV-D4jjz.js} +1 -1
  36. package/dist/StaffPanel.vue_vue_type_script_setup_true_lang-4sFq3CEo.js +135 -0
  37. package/dist/{SysUser-D0Q6OvD7.js → SysUser-BnjYytws.js} +2 -2
  38. package/dist/{SysUserPanel-1_vrsANQ.js → SysUserPanel-CBoyD-Qi.js} +1 -1
  39. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-PrTlTZR-.js +341 -0
  40. package/dist/{SystemMenu-9PG3vESE.js → SystemMenu-kYB_ZaUt.js} +49 -47
  41. package/dist/{UserInfo-qgXUEGwi.js → UserInfo-4dx97VBL.js} +1 -1
  42. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-CN0C5rVk.js → UserInfo.vue_vue_type_style_index_0_lang-BpbC_ZDm.js} +35 -33
  43. package/dist/{childView-C7ZSA5fR.js → childView-CHPNfTEb.js} +1 -1
  44. package/dist/{childView-yV2QLwfA.js → childView-CKA_JgVZ.js} +1 -1
  45. package/dist/{childView.vue_vue_type_style_index_0_lang-DdKxPGdh.js → childView.vue_vue_type_style_index_0_lang-Bym2fQRd.js} +7 -7
  46. package/dist/childView.vue_vue_type_style_index_0_lang-W7bCtXeu.js +177 -0
  47. package/dist/{code-rule-95K1jr-u.js → code-rule-CbxuZg0-.js} +42 -41
  48. package/dist/core.es.js +19 -10
  49. package/dist/{cron-task-DGrQwOHs.js → cron-task-nTOpqQYf.js} +5 -5
  50. package/dist/flow-task-B07st2aD.js +10 -0
  51. package/dist/{frameView-7SmME93D.js → frameView-Z1tPUyCh.js} +15 -14
  52. package/dist/img/l_img.svg +1 -1
  53. package/dist/img/minicolors.png +0 -0
  54. package/dist/img/v_img.svg +1 -1
  55. package/dist/index-C3q8HoJM.js +4650 -0
  56. package/dist/{layoutView-C6WIVWGZ.js → layoutView--MGA9zUB.js} +1776 -1764
  57. package/dist/{log-in-e7D5Ss1P.js → log-in-CSYJDA6m.js} +36 -29
  58. package/dist/log-out-DiwGCg7p.js +130 -0
  59. package/dist/login-C6Y0ajDp.js +251 -0
  60. package/dist/{login-log-CvVnyGi3.js → login-log-C0V-_l3F.js} +6 -4
  61. package/dist/{lov-view-DoF5LqFQ.js → lov-view-Cmv7wZZ9.js} +9 -9
  62. package/dist/{menuInfo-CNzGQwOD.js → menuInfo-UeutJpOa.js} +1 -1
  63. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-51SYxVc_.js → menuInfo.vue_vue_type_style_index_0_lang-CWX4Mu67.js} +144 -121
  64. package/dist/pda-app-B6w99SJo.js +710 -0
  65. package/dist/redirect-BqegffKC.js +15 -0
  66. package/dist/{resource-gVFFMO9l.js → resource-BybJvUv0.js} +17 -17
  67. package/dist/{su-welcome-BN_s_RX_.js → su-welcome-C1bmxHoY.js} +124 -126
  68. package/dist/sys-config-BnmIDnCj.js +370 -0
  69. package/dist/udp-core.css +1 -9
  70. package/dist/utogether-MlnyYtNS.js +4 -0
  71. package/index.ts +19 -6
  72. package/package.json +18 -17
  73. package/src/App.vue +2 -7
  74. package/src/api/http.ts +1 -4
  75. package/src/api/index.ts +5 -3
  76. package/src/api/user.ts +2 -2
  77. package/src/components/SuCharts/src/UserInfo.vue +3 -3
  78. package/src/components/SuScrollTree/ScrollPanel.vue +4 -9
  79. package/src/components/udp/content/index.vue +88 -0
  80. package/src/components/udp/form/form.vue +109 -0
  81. package/src/components/udp/grid/index.vue +524 -0
  82. package/src/components/udp/index.ts +5 -4
  83. package/src/components/udp/ut-stamp-badge/index.vue +271 -0
  84. package/src/components/udp/utils.ts +408 -40
  85. package/src/directives/permission/index.ts +1 -1
  86. package/src/layout/components/lay-navbar/index.vue +9 -7
  87. package/src/layout/components/lay-panel/index.vue +3 -3
  88. package/src/layout/components/lay-search/index.vue +1 -1
  89. package/src/layout/components/lay-select-org/index.vue +4 -9
  90. package/src/layout/components/lay-setting/index.vue +503 -510
  91. package/src/layout/components/lay-sidebar/breadCrumb.vue +1 -1
  92. package/src/layout/components/lay-sidebar/horizontal.vue +8 -6
  93. package/src/layout/components/lay-sidebar/mixNav.vue +260 -258
  94. package/src/layout/components/lay-sidebar/sidebar-logo.vue +101 -98
  95. package/src/layout/components/lay-tag/index.vue +598 -625
  96. package/src/layout/hooks/useDataThemeChange.ts +1 -1
  97. package/src/layout/hooks/useNav.ts +176 -173
  98. package/src/layout/hooks/useTag.ts +227 -233
  99. package/src/layout/layoutView.vue +215 -215
  100. package/src/layout/types.ts +93 -92
  101. package/src/main.ts +115 -109
  102. package/src/plugins/i18n/en.ts +26 -13
  103. package/src/plugins/i18n/module/u-workflow.ts +1 -1
  104. package/src/plugins/i18n/zh.ts +363 -337
  105. package/src/plugins/vxe-table/index.ts +74 -4
  106. package/src/plugins/vxe-table/render.tsx +186 -58
  107. package/src/router/index.ts +187 -183
  108. package/src/router/modules/flow.ts +35 -0
  109. package/src/router/modules/home.ts +32 -32
  110. package/src/router/modules/remaining.ts +1 -26
  111. package/src/router/utils.ts +420 -377
  112. package/src/store/modules/app.ts +2 -4
  113. package/src/store/modules/epTheme.ts +48 -49
  114. package/src/store/modules/multiTags.ts +15 -14
  115. package/src/store/modules/permission.ts +25 -15
  116. package/src/store/modules/system.ts +1 -3
  117. package/src/style/button.scss +11 -4
  118. package/src/style/login.css +1 -1
  119. package/src/style/tailwind.css +1 -68
  120. package/src/style/vxetable.scss +103 -11
  121. package/src/utils/authority/index.ts +1 -1
  122. package/src/utils/dataFormat/index.ts +223 -223
  123. package/src/utils/index.ts +3 -1
  124. package/src/utils/lifecycle.ts +39 -20
  125. package/src/utils/propTypes.ts +1 -6
  126. package/src/utils/storage/index.ts +2 -2
  127. package/src/utils/{http → udp/http}/index.ts +27 -30
  128. package/src/utils/{http → udp/http}/types.d.ts +2 -6
  129. package/src/views/login/login-view.vue +6 -20
  130. package/src/views/organization/company/CompanyPanel.vue +2 -2
  131. package/src/views/organization/department/Department.vue +58 -58
  132. package/src/views/organization/department/DepartmentPanel.vue +303 -283
  133. package/src/views/organization/inv-org/InvOrganization.vue +23 -9
  134. package/src/views/organization/org/Org.vue +9 -5
  135. package/src/views/organization/staff/StaffInfo.vue +127 -133
  136. package/src/views/organization/staff/StaffPanel.vue +162 -145
  137. package/src/views/system/cron/cron-task.vue +2 -12
  138. package/src/views/system/menu/AuthorityPanel.vue +2 -2
  139. package/src/views/system/menu/SystemMenu.vue +14 -20
  140. package/src/views/system/menu/menuInfo.vue +39 -23
  141. package/src/views/system/role/AuthorityInfo.vue +19 -15
  142. package/src/views/system/role/Role.vue +1 -5
  143. package/src/views/system/role/RolePanel.vue +11 -2
  144. package/src/views/system/role/UserInfo.vue +11 -9
  145. package/src/views/system/role-assign/RoleAssign.vue +2 -2
  146. package/src/views/system/role-assign/RolePanel.vue +12 -9
  147. package/src/views/system/sys/sys-config.vue +70 -21
  148. package/src/views/system/sysUser/SysUserPanel.vue +347 -278
  149. package/src/views/uapp/pda/pda-app.vue +48 -16
  150. package/src/views/udev/coderule/code-rule.vue +132 -121
  151. package/src/views/udev/dict/DictView.vue +118 -106
  152. package/src/views/udev/dict/childView.vue +183 -222
  153. package/src/views/udev/lov/childView.vue +1 -7
  154. package/src/views/ufile/aggregation/File.vue +5 -5
  155. package/src/views/ufile/file/water-mark.vue +14 -14
  156. package/src/views/uhome/components/menu-favorite.vue +314 -331
  157. package/src/views/uhome/su-welcome.vue +319 -339
  158. package/src/views/ulogin/login.vue +325 -316
  159. package/src/views/upms/interface/log-in.vue +100 -106
  160. package/src/views/upms/interface/log-out.vue +104 -107
  161. package/src/views/upms/user/login-log.vue +54 -60
  162. package/src/views/urpt/design/DesignPanel.vue +16 -35
  163. package/src/views/urpt/design/Preview.vue +1 -0
  164. package/src/views/urpt/design/ReportDesign.vue +17 -23
  165. package/src/views/urpt/static-resource/resource.vue +3 -3
  166. package/src/views/urpt/template/ReportTemplate.vue +7 -7
  167. package/src/views/utask/flow-task.vue +18 -0
  168. package/types/global.d.ts +231 -236
  169. package/vite.config.ts +13 -2
  170. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-32L40GY2.js +0 -102
  171. package/dist/DictView-q7kR9K--.js +0 -95
  172. package/dist/InvOrganization-DI45LqZV.js +0 -260
  173. package/dist/Org-CZju_ZiR.js +0 -35
  174. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-DJKu6PXz.js +0 -126
  175. package/dist/StaffPanel.vue_vue_type_script_setup_true_lang-C3Ixs12y.js +0 -111
  176. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-C5XEmxsV.js +0 -288
  177. package/dist/childView.vue_vue_type_style_index_0_lang-bkmucBUL.js +0 -187
  178. package/dist/core.umd.js +0 -173
  179. package/dist/index-OswH7SsT.js +0 -9937
  180. package/dist/log-out--RRncZhN.js +0 -120
  181. package/dist/login-BhCMeCLS.js +0 -251
  182. package/dist/pda-app-nn3llDUx.js +0 -2209
  183. package/dist/redirect-CmMplDV4.js +0 -15
  184. package/dist/sys-config-DGutV-VX.js +0 -277
  185. package/dist/utogether-wFDCI28t.js +0 -182
  186. package/src/assets/images/empty.png +0 -0
  187. package/src/assets/images/logo.png +0 -0
  188. package/src/components/ReCountTo/README.md +0 -2
  189. package/src/components/ReCountTo/index.ts +0 -18
  190. package/src/components/ReCountTo/src/normal/index.tsx +0 -165
  191. package/src/components/ReCountTo/src/normal/props.ts +0 -37
  192. package/src/components/ReCountTo/src/rebound/index.tsx +0 -67
  193. package/src/components/ReCountTo/src/rebound/props.ts +0 -14
  194. package/src/components/ReCountTo/src/rebound/rebound.css +0 -77
  195. package/src/components/ReCropper/index.ts +0 -14
  196. package/src/components/ReCropper/src/index.tsx +0 -141
  197. package/src/components/ReFlicker/index.css +0 -39
  198. package/src/components/ReFlicker/index.ts +0 -50
  199. package/src/components/ReFlop/index.ts +0 -14
  200. package/src/components/ReFlop/src/Filpper.tsx +0 -99
  201. package/src/components/ReFlop/src/filpper.css +0 -184
  202. package/src/components/ReFlop/src/index.vue +0 -126
  203. package/src/components/ReFlowChart/index.ts +0 -24
  204. package/src/components/ReFlowChart/src/Control.vue +0 -139
  205. package/src/components/ReFlowChart/src/DataDialog.vue +0 -12
  206. package/src/components/ReFlowChart/src/NodePanel.vue +0 -151
  207. package/src/components/ReFlowChart/src/adpterForTurbo.ts +0 -160
  208. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.css +0 -49
  209. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.eot +0 -0
  210. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.js +0 -61
  211. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.json +0 -58
  212. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.svg +0 -47
  213. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.ttf +0 -0
  214. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.woff +0 -0
  215. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.woff2 +0 -0
  216. package/src/components/ReFlowChart/src/config.ts +0 -62
  217. package/src/components/ReSplitPane/index.css +0 -49
  218. package/src/components/ReSplitPane/index.tsx +0 -119
  219. package/src/components/ReSplitPane/resizer.css +0 -45
  220. package/src/components/ReSplitPane/resizer.tsx +0 -30
  221. package/src/components/SuCommon/card/components/Card.vue +0 -148
  222. package/src/components/SuCommon/card/components/DialogForm.vue +0 -127
  223. package/src/components/SuCommon/card/index.vue +0 -142
  224. package/src/components/SuCommon/icon-select/index.vue +0 -241
  225. package/src/components/SuCommon/table/index.vue +0 -208
  226. package/src/components/SuCommon/utils/index.ts +0 -103
  227. package/src/components/SuCommon/utils/slot.tsx +0 -50
  228. package/src/components/udp/form-upload.vue +0 -132
  229. package/src/components/udp/modal-form.vue +0 -180
  230. package/src/utils/udp/useRender.ts +0 -420
  231. package/src/views/components/contextmenu/basic.vue +0 -74
  232. package/src/views/components/contextmenu/context-menu.vue +0 -40
  233. package/src/views/components/contextmenu/menuDynamic.vue +0 -99
  234. package/src/views/components/contextmenu/menuGroup.vue +0 -71
  235. package/src/views/components/count-to/index.vue +0 -43
  236. package/src/views/components/cropping/index.vue +0 -59
  237. package/src/views/components/cropping/picture.jpeg +0 -0
  238. package/src/views/components/split-pane/index.vue +0 -82
  239. package/src/views/components/video/index.vue +0 -57
@@ -1,183 +1,187 @@
1
- import { findIndexOf, isEmpty } from 'xe-utils';
2
- import {
3
- type Router,
4
- createRouter,
5
- type RouteRecordRaw,
6
- type RouteComponent,
7
- createWebHistory
8
- } from 'vue-router';
9
- import { cookies, NProgress, openLink, isUrl, buildHierarchyTree } from '@utogether/utils';
10
- import { useMultiTagsStoreHook } from '../store/modules/multiTags';
11
- import { usePermissionStoreHook } from '../store/modules/permission';
12
- import {
13
- ascending,
14
- initRouter,
15
- findRouteByPath,
16
- handleAliveRoute,
17
- formatTwoStageRoutes,
18
- formatFlatteningRoutes
19
- } from './utils';
20
- import { getEnv } from '../config';
21
- import { kLOGINER } from '../contant';
22
-
23
- import homeRouter from './modules/home';
24
- import errorRouter from './modules/error';
25
- import remainingRouter from './modules/remaining';
26
-
27
- const systemRouter = import.meta.glob([
28
- '../views/system/**/*.{vue,tsx}',
29
- '../views/uapp/**/*.{vue,tsx}',
30
- '../views/upms/**/*.{vue,tsx}',
31
- '../views/ufile/**/*.{vue}',
32
- '../views/urpt/**/*.{vue,tsx}',
33
- '../views/organization/**/*.{vue,tsx}',
34
- '../views/udev/**/*.{vue, tsx}'
35
- ]);
36
-
37
- // 原始静态路由(未做任何处理)
38
- const routes = [homeRouter, errorRouter];
39
- /** 导出处理后的静态路由(三级及以上的路由全部拍成二级) */
40
- export const constantRoutes: Array<RouteRecordRaw> = formatTwoStageRoutes(
41
- formatFlatteningRoutes(buildHierarchyTree(ascending(routes)))
42
- );
43
-
44
- /** 用于渲染菜单,保持原始层级 */
45
- export const constantMenus: Array<RouteComponent> = ascending(routes).concat(...remainingRouter);
46
-
47
- /** 不参与菜单的路由 */
48
- export const remainingPaths = Object.keys(remainingRouter).map(v => {
49
- return remainingRouter[v].path;
50
- });
51
-
52
- /** 创建路由实例 */
53
- export const router: Router = createRouter({
54
- history: createWebHistory(getEnv().VITE_ROUTER_HISTORY),
55
- routes: constantRoutes.concat(...(remainingRouter as any)),
56
- strict: true,
57
- scrollBehavior(to, from, savedPosition) {
58
- return new Promise(resolve => {
59
- if (savedPosition) {
60
- return savedPosition;
61
- } else {
62
- if (from.meta.saveSrollTop) {
63
- const top: number = document.documentElement.scrollTop || document.body.scrollTop;
64
- resolve({ left: 0, top });
65
- }
66
- }
67
- });
68
- }
69
- });
70
-
71
- /** 重置路由 */
72
- export function resetRouter() {
73
- router.getRoutes().forEach(route => {
74
- const { name, meta } = route;
75
- if (name && router.hasRoute(name) && meta?.backstage) {
76
- router.removeRoute(name);
77
- router.options.routes = formatTwoStageRoutes(
78
- formatFlatteningRoutes(buildHierarchyTree(ascending(routes)))
79
- );
80
- }
81
- });
82
- usePermissionStoreHook().clearAllCachePage();
83
- }
84
-
85
- let views = null;
86
- export function setViews(cviews) {
87
- views = cviews;
88
- Object.assign(views, systemRouter);
89
- }
90
-
91
- export function getViews() {
92
- return views;
93
- }
94
-
95
- /** 路由白名单 */
96
- const whiteList = ['/login'];
97
-
98
- router.beforeEach((to: ToRouteType, _from, next) => {
99
- if (to.meta?.keepAlive) {
100
- handleAliveRoute(to, 'add');
101
- // 页面整体刷新和点击标签页刷新
102
- if (_from.name === undefined || _from.name === 'redirect') {
103
- handleAliveRoute(to);
104
- }
105
- }
106
- const userName = cookies.get(kLOGINER);
107
- NProgress.start();
108
- const externalLink = isUrl(to?.name as string);
109
- /** 如果已经登录并存在登录信息后不能跳转到路由白名单,而是继续保持在当前页面 */
110
- function toCorrectRoute() {
111
- whiteList.includes(to.fullPath) ? next(_from.fullPath) : next();
112
- }
113
- if (userName) {
114
- // TODO 无权限跳转403页面
115
- // if (to.meta?.roles && !isOneOfArray(to.meta?.roles, userInfo?.roles)) {
116
- // next({ path: "/error/403" });
117
- // }
118
- if (_from?.name && _from?.name !== 'login') {
119
- // m.name === to.name 判断param路由跳转
120
- const cmp = to.matched.find(
121
- m => m.path === to.path || (m.name === to.name && to.params)
122
- )?.components;
123
- // 如果路由包含http 则是超链接 反之是普通路由
124
- if (externalLink) {
125
- openLink(to?.name as string);
126
- NProgress?.done();
127
- } else if (cmp?.default || to.name === 'redirect') {
128
- toCorrectRoute();
129
- } else {
130
- next({ path: '/error/404' });
131
- }
132
- } else {
133
- // 刷新
134
- if (usePermissionStoreHook().wholeMenus.length === 0) {
135
- initRouter(userName).then((router: Router) => {
136
- if (!useMultiTagsStoreHook().getMultiTagsCache) {
137
- const { path } = to;
138
- const index = findIndexOf(remainingRouter, v => v.path === path);
139
- const routes: any = index === -1 ? router.options.routes[0].children : router.options.routes;
140
- const route = findRouteByPath(path, routes);
141
- if (route && route.meta?.title) {
142
- const { path, name, meta } = route;
143
- useMultiTagsStoreHook().handleTags('push', { path, name, meta });
144
- }
145
- }
146
- // 确保动态路由完全加入路由列表并且不影响静态路由
147
- // (注意:动态路由刷新时router.beforeEach可能会触发两次,
148
- // 第一次触发动态路由还未完全添加,第二次动态路由才完全添加到路由列表,
149
- // 如果需要在router.beforeEach做一些判断可以在to.name存在的条件下去判断,这样就只会触发一次)
150
- if (isEmpty(to.name)) router.push(to.fullPath);
151
- });
152
- }
153
- if (_from.fullPath === '/' && to.fullPath === '/login' && !to.query?.tokenExpire) {
154
- to.path = '/welcome';
155
- to.fullPath = '/welcome';
156
- to.name = 'SuHome';
157
- } else if (_from.fullPath === '/' && to.path === '/workflow/approve/index') {
158
- to.path = '/welcome';
159
- to.fullPath = '/welcome';
160
- to.name = 'SuHome';
161
- to.query = {};
162
- }
163
- // next();
164
- toCorrectRoute();
165
- }
166
- } else {
167
- if (to.path !== '/login') {
168
- if (whiteList.indexOf(to.path) !== -1) {
169
- next();
170
- } else {
171
- next({ path: '/login' });
172
- }
173
- } else {
174
- next();
175
- }
176
- }
177
- });
178
-
179
- router.afterEach(() => {
180
- NProgress?.done();
181
- });
182
-
183
- export default router;
1
+ import { findIndexOf, isEmpty } from 'xe-utils';
2
+ import type { Router, RouteRecordRaw, RouteComponent } from 'vue-router';
3
+ import { cookies, NProgress, openLink, isUrl, buildHierarchyTree } from '@utogether/utils';
4
+ import { useMultiTagsStoreHook } from '../store/modules/multiTags';
5
+ import { usePermissionStoreHook } from '../store/modules/permission';
6
+ import { ascending, initRouter, findRouteByPath, formatTwoStageRoutes, formatFlatteningRoutes } from './utils';
7
+ // import { getEnv } from '../config';
8
+ import { kLOGINER } from '../contant';
9
+
10
+ import homeRouter from './modules/home';
11
+ import errorRouter from './modules/error';
12
+ import remainingRouter from './modules/remaining';
13
+ import flow from './modules/flow';
14
+
15
+ const systemRouter = import.meta.glob([
16
+ '../views/system/**/*.{vue,tsx}',
17
+ '../views/uapp/**/*.{vue,tsx}',
18
+ '../views/upms/**/*.{vue,tsx}',
19
+ '../views/ufile/**/*.{vue}',
20
+ '../views/urpt/**/*.{vue,tsx}',
21
+ '../views/organization/**/*.{vue,tsx}',
22
+ '../views/udev/**/*.{vue, tsx}'
23
+ // '../views/uflow/**/*.{vue, tsx}'
24
+ ]);
25
+
26
+ export const remainingRouters = remainingRouter;
27
+
28
+ // 原始静态路由(未做任何处理)
29
+ const routes = [homeRouter, errorRouter, flow];
30
+ /** 导出处理后的静态路由(三级及以上的路由全部拍成二级) */
31
+ export const constantRoutes: Array<RouteRecordRaw> = formatTwoStageRoutes(
32
+ formatFlatteningRoutes(buildHierarchyTree(ascending(routes)))
33
+ );
34
+
35
+ /** 用于渲染菜单,保持原始层级 */
36
+ export const constantMenus: Array<RouteComponent> = ascending(routes).concat(...remainingRouter);
37
+
38
+ /** 不参与菜单的路由 */
39
+ export const remainingPaths = Object.keys(remainingRouter).map(v => {
40
+ return remainingRouter[v].path;
41
+ });
42
+
43
+ /** 创建路由实例 */
44
+ // export const router: Router = createRouter({
45
+ // history: createWebHistory(window.__HISTORY_PATH__),
46
+ // routes: constantRoutes.concat(...(remainingRouter as any)),
47
+ // strict: true,
48
+ // scrollBehavior(to, from, savedPosition) {
49
+ // return new Promise(resolve => {
50
+ // if (savedPosition) {
51
+ // return savedPosition;
52
+ // } else {
53
+ // if (from.meta.saveSrollTop) {
54
+ // const top: number = document.documentElement.scrollTop || document.body.scrollTop;
55
+ // resolve({ left: 0, top });
56
+ // }
57
+ // }
58
+ // });
59
+ // }
60
+ // });
61
+
62
+ /** 记录已经加载的页面路径 */
63
+ const loadedPaths = new Set<string>();
64
+
65
+ /** 重置已加载页面记录 */
66
+ export function resetLoadedPaths() {
67
+ loadedPaths.clear();
68
+ }
69
+
70
+ /** 重置路由 */
71
+ export function resetRouter() {
72
+ router.getRoutes().forEach(route => {
73
+ const { name, meta } = route;
74
+ if (name && router.hasRoute(name) && meta?.backstage) {
75
+ router.removeRoute(name);
76
+ router.options.routes = formatTwoStageRoutes(formatFlatteningRoutes(buildHierarchyTree(ascending(routes))));
77
+ }
78
+ });
79
+ usePermissionStoreHook().clearAllCachePage();
80
+ resetLoadedPaths();
81
+ }
82
+
83
+ let views = null;
84
+ export let router = null;
85
+ export function setViews(cviews, crouter) {
86
+ views = cviews;
87
+ router = crouter;
88
+ Object.assign(views, systemRouter);
89
+ }
90
+
91
+ export function getViews() {
92
+ return views;
93
+ }
94
+
95
+ /** 路由白名单 */
96
+ const whiteList = ['/login'];
97
+ /*
98
+ router.beforeEach((to: ToRouteType, _from, next) => {
99
+ if (to.meta?.keepAlive) {
100
+ handleAliveRoute(to, 'add');
101
+ // 页面整体刷新和点击标签页刷新
102
+ if (_from.name === undefined || _from.name === 'redirect') {
103
+ handleAliveRoute(to);
104
+ }
105
+ }
106
+ const userName = cookies.get(kLOGINER);
107
+ NProgress.start();
108
+ if (userName) {
109
+ routerBefore(to, _from, next);
110
+ } else {
111
+ if (to.path !== '/login') {
112
+ if (whiteList.indexOf(to.path) !== -1) {
113
+ next();
114
+ } else {
115
+ next({ path: '/login' });
116
+ }
117
+ } else {
118
+ next();
119
+ }
120
+ }
121
+ });
122
+
123
+ router.afterEach(() => {
124
+ NProgress?.done();
125
+ });
126
+
127
+ */
128
+ export const routerBefore = (to, _from, next) => {
129
+ // TODO 无权限跳转403页面
130
+ // if (to.meta?.roles && !isOneOfArray(to.meta?.roles, userInfo?.roles)) {
131
+ // next({ path: "/error/403" });
132
+ // }
133
+ const userName = cookies.get(kLOGINER);
134
+ const externalLink = isUrl(to?.name as string);
135
+ /** 如果已经登录并存在登录信息后不能跳转到路由白名单,而是继续保持在当前页面 */
136
+ function toCorrectRoute() {
137
+ whiteList.includes(to.fullPath) ? next(_from.fullPath) : next();
138
+ }
139
+ if (_from?.name && _from?.name !== 'login') {
140
+ // m.name === to.name 判断param路由跳转
141
+ const cmp = to.matched.find(m => m.path === to.path || (m.name === to.name && to.params))?.components;
142
+ // 如果路由包含http 则是超链接 反之是普通路由
143
+ if (externalLink) {
144
+ openLink(to?.name as string);
145
+ NProgress?.done();
146
+ } else if (cmp?.default || to.name === 'redirect') {
147
+ toCorrectRoute();
148
+ } else {
149
+ next({ path: '/error/404' });
150
+ }
151
+ } else {
152
+ // 刷新
153
+ if (usePermissionStoreHook().wholeMenus.length === 0) {
154
+ initRouter(userName).then((router: Router) => {
155
+ if (!useMultiTagsStoreHook().getMultiTagsCache) {
156
+ const { path } = to;
157
+ const index = findIndexOf(remainingRouter, v => v.path === path);
158
+ const routes: any = index === -1 ? router.options.routes[0].children : router.options.routes;
159
+ const route = findRouteByPath(path, routes);
160
+ if (route && route.meta?.title) {
161
+ const { path, name, meta } = route;
162
+ useMultiTagsStoreHook().handleTags('push', { path, name, meta });
163
+ }
164
+ }
165
+ // 确保动态路由完全加入路由列表并且不影响静态路由
166
+ // (注意:动态路由刷新时router.beforeEach可能会触发两次,
167
+ // 第一次触发动态路由还未完全添加,第二次动态路由才完全添加到路由列表,
168
+ // 如果需要在router.beforeEach做一些判断可以在to.name存在的条件下去判断,这样就只会触发一次)
169
+ if (isEmpty(to.name)) router.push(to.fullPath);
170
+ });
171
+ }
172
+ if (_from.fullPath === '/' && to.fullPath === '/login' && !to.query?.tokenExpire) {
173
+ to.path = '/welcome';
174
+ to.fullPath = '/welcome';
175
+ to.name = 'UdpWelcome';
176
+ } else if (_from.fullPath === '/' && to.path === '/workflow/approve/index') {
177
+ to.path = '/welcome';
178
+ to.fullPath = '/welcome';
179
+ to.name = 'UdpWelcome';
180
+ to.query = {};
181
+ }
182
+ // next();
183
+ toCorrectRoute();
184
+ }
185
+ };
186
+
187
+ // export default router;
@@ -0,0 +1,35 @@
1
+ /*
2
+ * @Author: levi7754 levi7754@163.com
3
+ * @Date: 2023-10-10 11:31:53
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-11-05 19:17:32
6
+ * @FilePath: /sitzone-mes/src/router/modules/tabs.ts
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ */
9
+ const Layout = () => import('../../layout/layoutView.vue');
10
+
11
+ const tabsRouter: RouteConfigsTable = {
12
+ component: Layout,
13
+ path: '/utask',
14
+ redirect: '/utask/task/flow-task',
15
+ meta: {
16
+ showLink: false,
17
+ icon: 'IF-pure-iconfont-tabs',
18
+ title: 'message.udp.flowTask'
19
+ },
20
+ children: [
21
+ // query 传参模式
22
+ {
23
+ path: '/utask/task/flow-task',
24
+ name: 'FlowTask',
25
+ component: () => import('../../views/utask/flow-task.vue'),
26
+ meta: {
27
+ // 不在menu菜单中显示
28
+ title: '',
29
+ showLink: false,
30
+ activePath: '/uflow/index'
31
+ }
32
+ }
33
+ ]
34
+ };
35
+ export default tabsRouter;
@@ -1,32 +1,32 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2021-11-17 16:02:30
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2024-06-18 10:38:44
6
- * @Description: file content
7
- */
8
- const Layout = () => import('../../layout/layoutView.vue');
9
- const homeRouter: RouteConfigsTable = {
10
- path: '/',
11
- name: 'home',
12
- component: Layout,
13
- redirect: '/welcome',
14
- meta: {
15
- icon: 'home-filled',
16
- title: 'message.udp.home',
17
- rank: 0
18
- },
19
- children: [
20
- {
21
- path: '/welcome',
22
- name: 'SuHome',
23
- component: () => import('../../views/uhome/su-welcome.vue'),
24
- meta: {
25
- title: 'message.udp.home',
26
- keepAlive: true
27
- }
28
- }
29
- ]
30
- };
31
-
32
- export default homeRouter;
1
+ /*
2
+ * @Author: wei.li
3
+ * @Date: 2021-11-17 16:02:30
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-12-02 18:28:00
6
+ * @Description: file content
7
+ */
8
+ const Layout = () => import('../../layout/layoutView.vue');
9
+ const homeRouter: RouteConfigsTable = {
10
+ path: '/',
11
+ name: 'home',
12
+ component: Layout,
13
+ redirect: '/welcome',
14
+ meta: {
15
+ icon: 'home-filled',
16
+ title: 'message.udp.home',
17
+ rank: 0
18
+ },
19
+ children: [
20
+ {
21
+ path: '/welcome',
22
+ name: 'UdpWelcome',
23
+ component: () => import('../../views/uhome/su-welcome.vue'),
24
+ meta: {
25
+ title: 'message.udp.home',
26
+ keepAlive: true
27
+ }
28
+ }
29
+ ]
30
+ };
31
+
32
+ export default homeRouter;
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2021-11-17 16:02:30
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2024-12-18 08:44:24
5
+ * @LastEditTime: 2025-07-27 11:10:39
6
6
  * @Description: file content
7
7
  */
8
8
  const Layout = () => import('../../layout/layoutView.vue');
@@ -35,31 +35,6 @@ const remainingRouter: Array<any> = [
35
35
  showLink: false
36
36
  }
37
37
  },
38
- // {
39
- // path: '/print/checkcard',
40
- // name: 'checkcard',
41
- // component: () => import('../../views/print/check-card.vue'),
42
- // meta: {
43
- // title: 'message.checkCard',
44
- // showLink: false
45
- // }
46
- // },
47
- // {
48
- // path: '/lowcode-design-platform',
49
- // name: 'LowcodeDesigin',
50
- // component: () => import('/src/views/udev/gantt/lcd-design.vue'),
51
- // meta: {
52
- // showLink: false
53
- // }
54
- // },
55
- // {
56
- // path: '/ulcd-app-menu',
57
- // name: 'AppMenu',
58
- // component: () => import('/src/views/udev/gantt/app-menu.vue'),
59
- // meta: {
60
- // showLink: false
61
- // }
62
- // },
63
38
  {
64
39
  path: '/redirect',
65
40
  name: 'redirect',