@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
@@ -91,7 +91,7 @@ export function useDataThemeChange() {
91
91
  }
92
92
  };
93
93
 
94
- /** 浅色、深色整体风格切换 */
94
+ /** 浅色、深色主题模式切换 */
95
95
  function dataThemeChange(overall?: string) {
96
96
  /* 如果当前是light夜间主题,默认切换到default主题 */
97
97
  overallStyle.value = overall;
@@ -1,173 +1,176 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2023-04-18 15:44:40
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-16 15:49:31
6
- * @Description: file content
7
- */
8
- import { computed, type CSSProperties } from 'vue';
9
- import { storeToRefs } from 'pinia';
10
- import { useRouter } from 'vue-router';
11
- import { cookies, useGlobal, storageLocal } from '@utogether/utils';
12
- import { router, remainingPaths, resetRouter } from '../../router';
13
- import { emitter } from '../../utils/mitt';
14
- import { getEnv } from '../../config';
15
- import { kTOKEN, kLOGINER, kCKTOKEN, kSYSCONFIG } from '../../contant';
16
- import { routerArrays } from '../types';
17
- // import { transformI18n } from '@/plugins/i18n';
18
- import { useAppStoreHook } from '../../store/modules/app';
19
- import { usePermissionStoreHook } from '../../store/modules/permission';
20
- import { useEpThemeStoreHook } from '../../store/modules/epTheme';
21
- import { useSystemStoreHook } from '../../store/modules/system';
22
- import { useMultiTagsStoreHook } from '../../store/modules/multiTags';
23
-
24
- const errorInfo = '当前路由配置不正确,请检查配置';
25
-
26
- export function useNav() {
27
- const appHook = useAppStoreHook();
28
- const routers = useRouter().options.routes;
29
- const { wholeMenus } = storeToRefs(usePermissionStoreHook());
30
-
31
- const getDivStyle = computed((): CSSProperties => {
32
- return {
33
- width: '100%',
34
- display: 'flex',
35
- alignItems: 'center',
36
- justifyContent: 'space-between',
37
- overflow: 'hidden'
38
- };
39
- });
40
-
41
- /** 设置国际化选中后的样式 */
42
- const getDropdownItemStyle = computed(() => {
43
- return (locale, t) => {
44
- return {
45
- background: locale === t ? useEpThemeStoreHook().epThemeColor : '',
46
- color: locale === t ? '#f4f4f5' : '#000'
47
- };
48
- };
49
- });
50
-
51
- const getDropdownItemClass = computed(() => {
52
- return (locale, t) => {
53
- return locale === t ? '' : 'dark:hover:text-primary!';
54
- };
55
- });
56
-
57
- /** 用户名 */
58
- const userInfo = computed<IRecord>(() => {
59
- return useSystemStoreHook().getUserInfo || {};
60
- });
61
- const avatarsStyle = computed(() => {
62
- return userInfo.value ? { marginRight: '10px' } : '';
63
- });
64
-
65
- const isCollapse = computed(() => {
66
- return !appHook.getSidebarStatus;
67
- });
68
-
69
- const device = computed(() => {
70
- return appHook.getDevice;
71
- });
72
-
73
- const { $storage } = useGlobal();
74
- const layout = computed(() => {
75
- return $storage?.layout?.layout;
76
- });
77
-
78
- const title = computed(() => {
79
- const sysConfig = storageLocal.getItem(kSYSCONFIG) || {};
80
- return sysConfig?.title || 'U-DP';
81
- });
82
-
83
- /** 动态title */
84
- function setDocumentTitle() {
85
- document.title = getEnv().MODE !== 'staging' ? title.value : `${title.value}•测试`;
86
- }
87
-
88
- /** 退出登录 */
89
- function logout() {
90
- useMultiTagsStoreHook().handleTags('equal', [...routerArrays]);
91
- cookies.remove(kCKTOKEN);
92
- cookies.remove(kTOKEN);
93
- cookies.remove(kLOGINER);
94
- usePermissionStoreHook().setWholeMenus([]);
95
- // 关闭全部标签页, 防止缓存了tags,又用另一个账号登录
96
- useMultiTagsStoreHook().handleTags('splice', '', {
97
- startIndex: 1,
98
- length: useMultiTagsStoreHook()?.multiTags?.length
99
- });
100
- usePermissionStoreHook().clearAllCachePage();
101
- resetRouter();
102
- router.push('/login');
103
- }
104
-
105
- function backHome() {
106
- router.push('/welcome');
107
- }
108
-
109
- function onPanel() {
110
- emitter.emit('openPanel');
111
- }
112
-
113
- function toggleSideBar() {
114
- appHook.toggleSideBar();
115
- }
116
-
117
- function handleResize(menuRef) {
118
- menuRef?.handleResize();
119
- }
120
-
121
- function resolvePath(route) {
122
- if (!route.children) return console.error(errorInfo);
123
- const httpReg = /^http(s?):\/\//;
124
- const routeChildPath = route.children[0]?.path;
125
- if (httpReg.test(routeChildPath)) {
126
- return route.path + '/' + routeChildPath;
127
- } else {
128
- return routeChildPath;
129
- }
130
- }
131
- function menuSelect(indexPath: string) {
132
- if (wholeMenus.value.length === 0 || isRemaining(indexPath)) return;
133
- emitter.emit('changLayoutRoute', indexPath);
134
- }
135
-
136
- /** 判断路径是否参与菜单 */
137
- function isRemaining(path: string) {
138
- return remainingPaths.includes(path);
139
- }
140
-
141
- function passwordItems() {
142
- const itemRender = { name: '$input', props: { type: 'password' } };
143
- return [
144
- { field: 'oldUserPwd', title: 'message.udp.oldPwd', required: true, itemRender },
145
- { field: 'userPwd', title: 'message.udp.newPwd', required: true, itemRender },
146
- { field: 'confirmPwd', title: 'message.udp.confirmPwd', required: true, itemRender }
147
- ];
148
- }
149
-
150
- return {
151
- title,
152
- device,
153
- layout,
154
- logout,
155
- routers,
156
- $storage,
157
- backHome,
158
- onPanel,
159
- getDivStyle,
160
- setDocumentTitle,
161
- toggleSideBar,
162
- menuSelect,
163
- handleResize,
164
- resolvePath,
165
- isCollapse,
166
- appHook,
167
- userInfo,
168
- avatarsStyle,
169
- getDropdownItemStyle,
170
- getDropdownItemClass,
171
- passwordItems
172
- };
173
- }
1
+ /*
2
+ * @Author: wei.li
3
+ * @Date: 2023-04-18 15:44:40
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-11-24 15:43:19
6
+ * @Description: file content
7
+ */
8
+ import { computed, type CSSProperties } from 'vue';
9
+ import { storeToRefs } from 'pinia';
10
+ import { useRouter } from 'vue-router';
11
+ import { cookies, useGlobal, storageLocal } from '@utogether/utils';
12
+ import { router, remainingPaths, resetRouter } from '../../router';
13
+ import { emitter } from '../../utils/mitt';
14
+ import { onBeforeLogout, onAfterLogout } from '../../utils/lifecycle';
15
+ import { getEnv } from '../../config';
16
+ import { kTOKEN, kLOGINER, kCKTOKEN, kSYSCONFIG } from '../../contant';
17
+ import { routerArrays } from '../types';
18
+ // import { transformI18n } from '@/plugins/i18n';
19
+ import { useAppStoreHook } from '../../store/modules/app';
20
+ import { usePermissionStoreHook } from '../../store/modules/permission';
21
+ import { useEpThemeStoreHook } from '../../store/modules/epTheme';
22
+ import { useSystemStoreHook } from '../../store/modules/system';
23
+ import { useMultiTagsStoreHook } from '../../store/modules/multiTags';
24
+
25
+ const errorInfo = '当前路由配置不正确,请检查配置';
26
+
27
+ export function useNav() {
28
+ const appHook = useAppStoreHook();
29
+ const routers = useRouter().options.routes;
30
+ const { wholeMenus } = storeToRefs(usePermissionStoreHook());
31
+
32
+ const getDivStyle = computed((): CSSProperties => {
33
+ return {
34
+ width: '100%',
35
+ display: 'flex',
36
+ alignItems: 'center',
37
+ justifyContent: 'space-between',
38
+ overflow: 'hidden'
39
+ };
40
+ });
41
+
42
+ /** 设置国际化选中后的样式 */
43
+ const getDropdownItemStyle = computed(() => {
44
+ return (locale, t) => {
45
+ return {
46
+ background: locale === t ? useEpThemeStoreHook().epThemeColor : '',
47
+ color: locale === t ? '#f4f4f5' : '#000'
48
+ };
49
+ };
50
+ });
51
+
52
+ const getDropdownItemClass = computed(() => {
53
+ return (locale, t) => {
54
+ return locale === t ? '' : 'dark:hover:text-primary!';
55
+ };
56
+ });
57
+
58
+ /** 用户名 */
59
+ const userInfo = computed<IRecord>(() => {
60
+ return useSystemStoreHook().getUserInfo || {};
61
+ });
62
+ const avatarsStyle = computed(() => {
63
+ return userInfo.value ? { marginRight: '10px' } : '';
64
+ });
65
+
66
+ const isCollapse = computed(() => {
67
+ return !appHook.getSidebarStatus;
68
+ });
69
+
70
+ const device = computed(() => {
71
+ return appHook.getDevice;
72
+ });
73
+
74
+ const { $storage } = useGlobal();
75
+ const layout = computed(() => {
76
+ return $storage?.layout?.layout;
77
+ });
78
+
79
+ const title = computed(() => {
80
+ const sysConfig = storageLocal.getItem(kSYSCONFIG) || {};
81
+ return sysConfig?.title || 'U-DP';
82
+ });
83
+
84
+ /** 动态title */
85
+ function setDocumentTitle() {
86
+ document.title = getEnv().MODE !== 'staging' ? title.value : `${title.value}•测试`;
87
+ }
88
+
89
+ /** 退出登录 */
90
+ function logout() {
91
+ onBeforeLogout();
92
+ useMultiTagsStoreHook().handleTags('equal', [...routerArrays]);
93
+ cookies.remove(kCKTOKEN);
94
+ cookies.remove(kTOKEN);
95
+ cookies.remove(kLOGINER);
96
+ usePermissionStoreHook().setWholeMenus([]);
97
+ // 关闭全部标签页, 防止缓存了tags,又用另一个账号登录
98
+ useMultiTagsStoreHook().handleTags('splice', '', {
99
+ startIndex: 1,
100
+ length: useMultiTagsStoreHook()?.multiTags?.length
101
+ });
102
+ usePermissionStoreHook().clearAllCachePage();
103
+ resetRouter();
104
+ onAfterLogout();
105
+ router.push('/login');
106
+ }
107
+
108
+ function backHome() {
109
+ router.push('/welcome');
110
+ }
111
+
112
+ function onPanel() {
113
+ emitter.emit('openPanel');
114
+ }
115
+
116
+ function toggleSideBar() {
117
+ appHook.toggleSideBar();
118
+ }
119
+
120
+ function handleResize(menuRef) {
121
+ menuRef?.handleResize();
122
+ }
123
+
124
+ function resolvePath(route) {
125
+ if (!route.children) return console.error(errorInfo);
126
+ const httpReg = /^http(s?):\/\//;
127
+ const routeChildPath = route.children[0]?.path;
128
+ if (httpReg.test(routeChildPath)) {
129
+ return route.path + '/' + routeChildPath;
130
+ } else {
131
+ return routeChildPath;
132
+ }
133
+ }
134
+ function menuSelect(indexPath: string) {
135
+ if (wholeMenus.value.length === 0 || isRemaining(indexPath)) return;
136
+ emitter.emit('changLayoutRoute', indexPath);
137
+ }
138
+
139
+ /** 判断路径是否参与菜单 */
140
+ function isRemaining(path: string) {
141
+ return remainingPaths.includes(path);
142
+ }
143
+
144
+ function passwordItems() {
145
+ const itemRender = { name: '$input', props: { type: 'password' } };
146
+ return [
147
+ { field: 'oldUserPwd', title: 'message.udp.oldPwd', required: true, itemRender },
148
+ { field: 'userPwd', title: 'message.udp.newPwd', required: true, itemRender },
149
+ { field: 'confirmPwd', title: 'message.udp.confirmPwd', required: true, itemRender }
150
+ ];
151
+ }
152
+
153
+ return {
154
+ title,
155
+ device,
156
+ layout,
157
+ logout,
158
+ routers,
159
+ $storage,
160
+ backHome,
161
+ onPanel,
162
+ getDivStyle,
163
+ setDocumentTitle,
164
+ toggleSideBar,
165
+ menuSelect,
166
+ handleResize,
167
+ resolvePath,
168
+ isCollapse,
169
+ appHook,
170
+ userInfo,
171
+ avatarsStyle,
172
+ getDropdownItemStyle,
173
+ getDropdownItemClass,
174
+ passwordItems
175
+ };
176
+ }