@utogether/udp-core 1.0.1 → 1.0.3

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-D6H3sArg.js} +7 -6
  3. package/dist/{404-BcdMJfPb.js → 404-DTyfysQ2.js} +14 -13
  4. package/dist/{500-bsa3F_cc.js → 500-DKaVDaBm.js} +10 -9
  5. package/dist/{AuthorityInfo-CqItgNs5.js → AuthorityInfo-DQULR69Y.js} +1 -1
  6. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-CzAnoTnO.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-BWFrR-Cq.js} +3 -3
  10. package/dist/{CompanyPanel-CNrdq4XE.js → CompanyPanel-Dh814lsw.js} +16 -16
  11. package/dist/{Department-CqcpfL4i.js → Department-DagPxerl.js} +10 -10
  12. package/dist/{DepartmentPanel-Bvti4LGu.js → DepartmentPanel-BVy2YGED.js} +108 -78
  13. package/dist/{DesignPanel-CjykspE1.js → DesignPanel-DKfjfj2S.js} +1 -1
  14. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-BK9EERdd.js → DesignPanel.vue_vue_type_style_index_0_lang-D-a8W08Y.js} +24 -26
  15. package/dist/DictView-CE5nEiKu.js +110 -0
  16. package/dist/InvOrganization-CZk_EbFZ.js +74 -0
  17. package/dist/Org-BO8jfnqN.js +39 -0
  18. package/dist/{Preview-Cm_7RhYU.js → Preview-DYJaP96f.js} +2 -2
  19. package/dist/{ReportDefine-CJVlQ--7.js → ReportDefine-DZXbs7iX.js} +1 -1
  20. package/dist/{ReportDesign-B0unlrkt.js → ReportDesign-CSdqOQ1D.js} +46 -46
  21. package/dist/{ReportQuery-BKuMCEvF.js → ReportQuery-_Vdt3CnA.js} +5 -5
  22. package/dist/{ReportQueryFrom-DAngMJLU.js → ReportQueryFrom-BWKddh9p.js} +1 -1
  23. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CPpwmztJ.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-DbdGwioi.js} +6 -5
  24. package/dist/{ReportTemplate-8YH3L8Pv.js → ReportTemplate-DS-DGao8.js} +26 -26
  25. package/dist/{Role-MxI30-0W.js → Role-BM0kEu7y.js} +6 -6
  26. package/dist/{RoleAssign-BzUY_y_y.js → RoleAssign-Cp05HUWn.js} +9 -9
  27. package/dist/{RolePanel-DS_TErTn.js → RolePanel-DeuHpCdK.js} +1 -1
  28. package/dist/{RolePanel-CXdcvsR5.js → RolePanel-hXeshcCZ.js} +1 -1
  29. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Ddl-A7Zh.js → RolePanel.vue_vue_type_script_setup_true_lang-Bf0pSCTN.js} +42 -36
  30. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-CNyWCIJm.js +132 -0
  31. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DnchUgIF.js → ScrollPanel.vue_vue_type_style_index_0_lang-BiKe39xG.js} +20 -20
  32. package/dist/{Staff-D7tXo_Gn.js → Staff-DLltLFMl.js} +3 -3
  33. package/dist/{StaffInfo-Bk8BY8PO.js → StaffInfo-pfELaI_i.js} +1 -1
  34. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-DqKwZi5f.js → StaffInfo.vue_vue_type_script_setup_true_lang-BKKdNggm.js} +13 -13
  35. package/dist/{StaffPanel-VtpGCTIq.js → StaffPanel-D3Pk28JN.js} +1 -1
  36. package/dist/StaffPanel.vue_vue_type_script_setup_true_lang-D9HLeyKe.js +143 -0
  37. package/dist/{SysUser-D0Q6OvD7.js → SysUser-BOh7ejz3.js} +2 -2
  38. package/dist/{SysUserPanel-1_vrsANQ.js → SysUserPanel-RElVo0BV.js} +1 -1
  39. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-DoW0v5y9.js +341 -0
  40. package/dist/{SystemMenu-9PG3vESE.js → SystemMenu-DZneBqKO.js} +53 -51
  41. package/dist/{UserInfo-qgXUEGwi.js → UserInfo-D9qo_f_9.js} +1 -1
  42. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-CN0C5rVk.js → UserInfo.vue_vue_type_style_index_0_lang-CY4dtMnZ.js} +35 -33
  43. package/dist/{childView-C7ZSA5fR.js → childView-CmlGxD9G.js} +1 -1
  44. package/dist/{childView-yV2QLwfA.js → childView-DStrPumM.js} +1 -1
  45. package/dist/{childView.vue_vue_type_style_index_0_lang-DdKxPGdh.js → childView.vue_vue_type_style_index_0_lang-B9k694be.js} +23 -24
  46. package/dist/childView.vue_vue_type_style_index_0_lang-Dtv1rrdP.js +177 -0
  47. package/dist/{code-rule-95K1jr-u.js → code-rule-CxzgQDH_.js} +42 -41
  48. package/dist/core.es.js +19 -10
  49. package/dist/{cron-task-DGrQwOHs.js → cron-task-kbyRTz97.js} +5 -5
  50. package/dist/flow-task-B07st2aD.js +10 -0
  51. package/dist/{frameView-7SmME93D.js → frameView-BawZlIge.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-nkstuOxE.js +5533 -0
  56. package/dist/{layoutView-C6WIVWGZ.js → layoutView-DVGqPJmA.js} +1776 -1764
  57. package/dist/{log-in-e7D5Ss1P.js → log-in-j2PZGLQH.js} +36 -29
  58. package/dist/log-out-DIJU-Vpf.js +130 -0
  59. package/dist/login-DvmHMcgD.js +251 -0
  60. package/dist/{login-log-CvVnyGi3.js → login-log-DJBGJVV0.js} +10 -8
  61. package/dist/{lov-view-DoF5LqFQ.js → lov-view-C-dIDLh8.js} +9 -9
  62. package/dist/{menuInfo-CNzGQwOD.js → menuInfo-D0mcKmrT.js} +1 -1
  63. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-51SYxVc_.js → menuInfo.vue_vue_type_style_index_0_lang-CbwS7aGl.js} +144 -121
  64. package/dist/pda-app-BjvyTDkw.js +710 -0
  65. package/dist/redirect-BqegffKC.js +15 -0
  66. package/dist/{resource-gVFFMO9l.js → resource-BknIxaTQ.js} +17 -17
  67. package/dist/{su-welcome-BN_s_RX_.js → su-welcome-CwtvamZC.js} +137 -139
  68. package/dist/sys-config-CCKhGcCL.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 +116 -46
  106. package/src/plugins/vxe-table/render.tsx +950 -817
  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 +222 -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 +171 -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 +185 -191
  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 +174 -180
  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 +315 -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
@@ -14,13 +14,11 @@ import { responsiveStorageNameSpace, getConfig } from '../../config';
14
14
  export const useAppStore = defineStore('udp-app', {
15
15
  state: (): appType => ({
16
16
  sidebar: {
17
- opened:
18
- storageLocal.getItem(`${responsiveStorageNameSpace()}layout`)?.sidebarStatus ??
19
- getConfig().SidebarStatus,
17
+ opened: storageLocal.getItem(`${responsiveStorageNameSpace()}layout`)?.sidebarStatus ?? getConfig().SidebarStatus,
20
18
  withoutAnimation: false,
21
19
  isClickCollapse: false
22
20
  },
23
- // 这里的layout用于监听容器拖拉后恢复对应的导航模式
21
+ // 这里的layout用于监听容器拖拉后恢复对应的菜单布局
24
22
  layout: storageLocal.getItem(`${responsiveStorageNameSpace()}layout`)?.layout ?? getConfig().Layout,
25
23
  device: deviceDetection() ? 'mobile' : 'desktop'
26
24
  }),
@@ -1,49 +1,48 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2021-12-23 17:33:20
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2024-12-17 18:53:00
6
- * @Description: file content
7
- */
8
- import { store } from '../index';
9
- import { defineStore } from 'pinia';
10
- import { getConfig, responsiveStorageNameSpace } from '../../config';
11
- import { storageLocal } from '@utogether/utils';
12
-
13
- export const useEpThemeStore = defineStore('udp-epTheme', {
14
- state: () => ({
15
- epThemeColor:
16
- storageLocal.getItem(`${responsiveStorageNameSpace()}-layout`)?.epThemeColor ??
17
- getConfig().EpThemeColor,
18
- epTheme: storageLocal.getItem(`${responsiveStorageNameSpace()}-layout`)?.theme ?? getConfig().Theme
19
- }),
20
- getters: {
21
- getEpThemeColor() {
22
- return this.epThemeColor;
23
- },
24
- // 用于mix导航模式下hamburger-svg的fill属性
25
- fill() {
26
- if (this.epTheme === 'light') {
27
- return '#409eff';
28
- } else if (this.epTheme === 'yellow') {
29
- return '#d25f00';
30
- } else {
31
- return '#fff';
32
- }
33
- }
34
- },
35
- actions: {
36
- setEpThemeColor(newColor: string): void {
37
- const layout = storageLocal.getItem(`${responsiveStorageNameSpace()}layout`);
38
- this.epTheme = layout?.theme;
39
- this.epThemeColor = newColor;
40
- if (!layout) return;
41
- layout.epThemeColor = newColor;
42
- storageLocal.setItem(`${responsiveStorageNameSpace()}layout`, layout);
43
- }
44
- }
45
- });
46
-
47
- export function useEpThemeStoreHook() {
48
- return useEpThemeStore(store);
49
- }
1
+ /*
2
+ * @Author: wei.li
3
+ * @Date: 2021-12-23 17:33:20
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2024-12-17 18:53:00
6
+ * @Description: file content
7
+ */
8
+ import { store } from '../index';
9
+ import { defineStore } from 'pinia';
10
+ import { getConfig, responsiveStorageNameSpace } from '../../config';
11
+ import { storageLocal } from '@utogether/utils';
12
+
13
+ export const useEpThemeStore = defineStore('udp-epTheme', {
14
+ state: () => ({
15
+ epThemeColor:
16
+ storageLocal.getItem(`${responsiveStorageNameSpace()}-layout`)?.epThemeColor ?? getConfig().EpThemeColor,
17
+ epTheme: storageLocal.getItem(`${responsiveStorageNameSpace()}-layout`)?.theme ?? getConfig().Theme
18
+ }),
19
+ getters: {
20
+ getEpThemeColor() {
21
+ return this.epThemeColor;
22
+ },
23
+ // 用于mix菜单布局下hamburger-svg的fill属性
24
+ fill() {
25
+ if (this.epTheme === 'light') {
26
+ return '#409eff';
27
+ } else if (this.epTheme === 'yellow') {
28
+ return '#d25f00';
29
+ } else {
30
+ return '#fff';
31
+ }
32
+ }
33
+ },
34
+ actions: {
35
+ setEpThemeColor(newColor: string): void {
36
+ const layout = storageLocal.getItem(`${responsiveStorageNameSpace()}layout`);
37
+ this.epTheme = layout?.theme;
38
+ this.epThemeColor = newColor;
39
+ if (!layout) return;
40
+ layout.epThemeColor = newColor;
41
+ storageLocal.setItem(`${responsiveStorageNameSpace()}layout`, layout);
42
+ }
43
+ }
44
+ });
45
+
46
+ export function useEpThemeStoreHook() {
47
+ return useEpThemeStore(store);
48
+ }
@@ -1,12 +1,12 @@
1
1
  /*
2
2
  * @Author: wei.li
3
3
  * @Date: 2021-12-23 17:33:20
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2024-07-03 10:27:36
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-11-06 17:48:20
6
6
  * @Description: file content
7
7
  */
8
8
  import { defineStore } from 'pinia';
9
- import { isEqual, isBoolean } from 'xe-utils';
9
+ import { isEqual } from 'xe-utils';
10
10
  import { storageLocal, isUrl } from '@utogether/utils';
11
11
  import { store } from '../index';
12
12
  import { routerArrays } from '../../layout/types';
@@ -54,25 +54,26 @@ export const useMultiTagsStore = defineStore('udp-multiTags', {
54
54
  if (isUrl(tagVal?.name)) return;
55
55
  // 如果title为空拒绝添加空信息到标签页
56
56
  if (tagVal?.meta?.title?.length === 0) return;
57
- // showLink:false 不添加到标签页
58
- if (isBoolean(tagVal?.meta?.showLink) && !tagVal?.meta?.showLink) return;
57
+ // showLink:false 不添加到标签页 -- 因审批流注释2025/11/6
58
+ // if (isBoolean(tagVal?.meta?.showLink) && !tagVal?.meta?.showLink) return;
59
59
  const tagPath = tagVal.path;
60
60
  // 判断tag是否已存在
61
61
  const tagHasExits = this.multiTags.some(tag => {
62
- return tag.path === tagPath;
62
+ return tag.path === tagPath && isEqual(tag?.query, tagVal?.query) && isEqual(tag?.params, tagVal?.params);
63
63
  });
64
64
 
65
65
  // 判断tag中的query键值是否相等
66
- const tagQueryHasExits = this.multiTags.some(tag => {
67
- return isEqual(tag?.query, tagVal?.query);
68
- });
66
+ // const tagQueryHasExits = this.multiTags.some(tag => {
67
+ // return isEqual(tag?.query, tagVal?.query);
68
+ // });
69
69
 
70
- // 判断tag中的params键值是否相等
71
- const tagParamsHasExits = this.multiTags.some(tag => {
72
- return isEqual(tag?.params, tagVal?.params);
73
- });
70
+ // // 判断tag中的params键值是否相等
71
+ // const tagParamsHasExits = this.multiTags.some(tag => {
72
+ // return isEqual(tag?.params, tagVal?.params);
73
+ // });
74
74
 
75
- if (tagHasExits && tagQueryHasExits && tagParamsHasExits) return;
75
+ // if (tagHasExits && tagQueryHasExits && tagParamsHasExits) return;
76
+ if (tagHasExits) return;
76
77
 
77
78
  // 动态路由可打开的最大数量
78
79
  const dynamicLevel = tagVal?.meta?.dynamicLevel ?? -1;
@@ -1,15 +1,15 @@
1
1
  /*
2
2
  * @Author: wei.li
3
3
  * @Date: 2021-11-17 16:02:30
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2024-07-03 10:20:58
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-10-19 11:58:29
6
6
  * @Description: file content
7
7
  */
8
8
  import { defineStore } from 'pinia';
9
9
  import { store } from '../index';
10
10
  import type { cacheType } from './types';
11
11
  import { constantMenus } from '../../router';
12
- import { clone, debounce, findLastIndexOf } from 'xe-utils';
12
+ import { clone, findLastIndexOf } from 'xe-utils';
13
13
  import { getKeyList } from '../../utils';
14
14
  import { ascending, filterTree, formatFlatteningRoutes } from '../../router/utils';
15
15
  import { useMultiTagsStoreHook } from './multiTags';
@@ -58,35 +58,45 @@ export const usePermissionStore = defineStore('udp-permission', {
58
58
  setWholeMenus(wholeMenus) {
59
59
  this.wholeMenus = wholeMenus;
60
60
  },
61
+
62
+ /** 监听缓存页面是否存在于标签页,不存在则删除 */
63
+ clearCache() {
64
+ let cacheLength = this.cachePageList.length;
65
+ const nameList = getKeyList(useMultiTagsStoreHook().multiTags, 'name');
66
+ while (cacheLength > 0) {
67
+ nameList.findIndex(v => v === this.cachePageList[cacheLength - 1]) === -1 &&
68
+ this.cachePageList.splice(this.cachePageList.indexOf(this.cachePageList[cacheLength - 1]), 1);
69
+ cacheLength--;
70
+ }
71
+ },
61
72
  cacheOperate({ mode, name }: cacheType) {
62
73
  const delIndex = this.cachePageList.findIndex(v => v === name);
63
74
  switch (mode) {
64
75
  case 'refresh':
65
76
  this.cachePageList = this.cachePageList.filter(v => v !== name);
77
+ this.clearCache();
66
78
  break;
67
79
  case 'add':
68
80
  this.cachePageList.push(name);
69
81
  break;
70
82
  case 'delete':
71
83
  delIndex !== -1 && this.cachePageList.splice(delIndex, 1);
84
+ this.clearCache();
72
85
  break;
73
86
  case 'reset':
74
87
  this.cachePageList = [];
75
88
  break;
76
89
  }
77
90
  /** 监听缓存页面是否存在于标签页,不存在则删除 */
78
- debounce(() => {
79
- let cacheLength = this.cachePageList.length;
80
- const nameList = getKeyList(useMultiTagsStoreHook().multiTags, 'name');
81
- while (cacheLength > 0) {
82
- nameList.findIndex(v => v === this.cachePageList[cacheLength - 1]) === -1 &&
83
- this.cachePageList.splice(
84
- this.cachePageList.indexOf(this.cachePageList[cacheLength - 1]),
85
- 1
86
- );
87
- cacheLength--;
88
- }
89
- }, 500)();
91
+ // debounce(() => {
92
+ // let cacheLength = this.cachePageList.length;
93
+ // const nameList = getKeyList(useMultiTagsStoreHook().multiTags, 'name');
94
+ // while (cacheLength > 0) {
95
+ // nameList.findIndex(v => v === this.cachePageList[cacheLength - 1]) === -1 &&
96
+ // this.cachePageList.splice(this.cachePageList.indexOf(this.cachePageList[cacheLength - 1]), 1);
97
+ // cacheLength--;
98
+ // }
99
+ // }, 500)();
90
100
  },
91
101
  /** 清空缓存页面 */
92
102
  clearAllCachePage() {
@@ -166,9 +166,7 @@ export const useSystemStore = defineStore('udp-system', {
166
166
  organizationId: systemInfo.organizationId
167
167
  };
168
168
  cookies.set('kCookies_param', JSON.stringify(query));
169
- this.isAdminRole = this.employee.sysRoles.some(
170
- s => s.roleCode === 'admin' || ['管理员'].includes(s.roleName)
171
- );
169
+ this.isAdminRole = this.employee.sysRoles.some(s => s.roleCode === 'admin' || ['管理员'].includes(s.roleName));
172
170
  // 缓存按钮数据权限
173
171
  usePermissionStoreHook().setAuthButton(systemInfo.dataMenus);
174
172
  }
@@ -8,7 +8,7 @@
8
8
 
9
9
  .vxe-button.type--button.theme--u-cyan,
10
10
  .vxe-button.type--button.theme--u-cyan:hover {
11
- color: #fff;
11
+ color: #fff !important;
12
12
  }
13
13
 
14
14
  .vxe-button.type--button.theme--u-cyan {
@@ -44,10 +44,17 @@
44
44
  }
45
45
 
46
46
  .vxe-button.type--button:not(.is--disabled):hover {
47
- color: #fff !important;
47
+ color: inherit;
48
+
49
+ .vxe-button--icon,
50
+ .vxe-button--item {
51
+ color: inherit;
52
+ }
53
+ }
48
54
 
49
- .vxe-button--icon {
50
- color: #4169e1;
55
+ .vxe-button[name='favorite'].type--button:not(.is--disabled):hover {
56
+ .vxe-button--item {
57
+ color: var(--udp-theme-vxeColor);
51
58
  }
52
59
  }
53
60
 
@@ -11,7 +11,7 @@
11
11
  height: 100vh;
12
12
  display: flex;
13
13
  justify-content: flex-end;
14
- background-color: #36419d;
14
+ background-color: #2a5f97;
15
15
  /* background: url('../assets/login/default-bg.png') no-repeat center; */
16
16
  background-repeat: no-repeat;
17
17
  background-position: center;
@@ -1,68 +1 @@
1
- /* @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- @layer components {
6
- .flex-c {
7
- @apply flex justify-center items-center;
8
- }
9
-
10
- .flex-ac {
11
- @apply flex justify-around items-center;
12
- }
13
-
14
- .flex-bc {
15
- @apply flex justify-between items-center;
16
- }
17
-
18
- .navbar-bg-hover {
19
- @apply dark:text-white dark:hover:!bg-[#242424];
20
- }
21
- } */
22
-
23
- @layer theme, base, components, utilities;
24
- @import 'tailwindcss/theme.css' layer(theme);
25
- @import 'tailwindcss/utilities.css' layer(utilities);
26
-
27
- @custom-variant dark (&:is(.dark *));
28
-
29
- @theme {
30
- --color-bg_color: var(--el-bg-color);
31
- --color-primary: var(--el-color-primary);
32
- --color-text_color_primary: var(--el-text-color-primary);
33
- --color-text_color_regular: var(--el-text-color-regular);
34
- }
35
-
36
- /*
37
- The default border color has changed to `currentColor` in Tailwind CSS v4,
38
- so we've added these compatibility styles to make sure everything still
39
- looks the same as it did with Tailwind CSS v3.
40
-
41
- If we ever want to remove these styles, we need to add an explicit border
42
- color utility to any element that depends on these defaults.
43
- */
44
- @layer base {
45
- *,
46
- ::after,
47
- ::before,
48
- ::backdrop,
49
- ::file-selector-button {
50
- border-color: var(--color-gray-200, currentColor);
51
- }
52
- }
53
-
54
- @utility flex-c {
55
- @apply flex justify-center items-center;
56
- }
57
-
58
- @utility flex-ac {
59
- @apply flex justify-around items-center;
60
- }
61
-
62
- @utility flex-bc {
63
- @apply flex justify-between items-center;
64
- }
65
-
66
- @utility navbar-bg-hover {
67
- @apply dark:text-white dark:hover:bg-[#242424]!;
68
- }
1
+ @import 'tailwindcss';
@@ -10,6 +10,7 @@ html[data-vxe-ui-theme='light'] {
10
10
  --vxe-ui-input-disabled-background-color: #fafafa;
11
11
  --el-disabled-bg-color: #fafafa;
12
12
  --vxe-ui-button-height-mini: 24px;
13
+ --vxe-ui-table-row-current-background-color: #00b789;
13
14
  }
14
15
 
15
16
  /** 重写table的背景 */
@@ -32,17 +33,58 @@ html[data-vxe-ui-theme='light'] {
32
33
 
33
34
  /** 必填录入框颜色 */
34
35
  .vxe-form--item.is--required {
35
- .vxe-input > .vxe-input--inner:not(:disabled) {
36
+ // 输入框必填
37
+ .vxe-input > .vxe-input--wrapper > .vxe-input--inner:not(:disabled) {
36
38
  background-color: #fffbdf;
37
39
  }
38
40
 
41
+ // 数字框框必填
42
+ .vxe-input:not(.is--disabled) > .vxe-input--wrapper {
43
+ .vxe-input--control-icon {
44
+ background-color: #fffbdf;
45
+ }
46
+ }
47
+
48
+ // 输入框必填
49
+ .vxe-input:not(.is--disabled) > .vxe-input--suffix {
50
+ background-color: #fffbdf;
51
+ }
52
+
53
+ // 下拉选择必填
54
+ .el-select__wrapper:not(.is-disabled) {
55
+ background-color: #fffbdf;
56
+ }
57
+
58
+ // 输入框必填
39
59
  .el-input:not(.is-disabled) > .el-input__wrapper {
40
60
  background-color: #fffbdf;
41
61
  }
42
62
 
63
+ // 文本域必填
43
64
  .vxe-textarea:not(.is--disabled) > .vxe-textarea--inner {
44
65
  background-color: #fffbdf;
45
66
  }
67
+
68
+ // 日期必填
69
+ .vxe-date-picker:not(.is--disabled) {
70
+ .vxe-date-picker--inner,
71
+ .vxe-input--suffix {
72
+ background-color: #fffbdf;
73
+ }
74
+
75
+ .vxe-date-picker--prefix,
76
+ .vxe-date-picker--suffix {
77
+ background-color: #fffbdf;
78
+ }
79
+ }
80
+
81
+ .vxe-number-input:not(.is--disabled) {
82
+ .vxe-number-input--input-inner {
83
+ .vxe-number-input--input {
84
+ background-color: #fffbdf;
85
+ }
86
+ }
87
+ }
46
88
  }
47
89
 
48
90
  /** 分页组件:当前页颜色 */
@@ -123,9 +165,9 @@ html[data-vxe-ui-theme='light'] {
123
165
 
124
166
  /************* button *******************/
125
167
 
126
- .vxe-button + .vxe-button:not(.type--text) {
127
- margin-left: 6px;
128
- }
168
+ // .vxe-button + .vxe-button:not(.type--text) {
169
+ // margin-left: 6px;
170
+ // }
129
171
 
130
172
  .vxe-button {
131
173
  padding: 0 0.5em !important;
@@ -148,6 +190,23 @@ html[data-vxe-ui-theme='light'] {
148
190
  .vxe-form--item-trigger-node {
149
191
  min-width: 60px;
150
192
  }
193
+
194
+ // 表单分组标题
195
+ .vxe-form--group-title {
196
+ border-bottom: 1px solid #eee;
197
+
198
+ .vxe-form--item-title-content {
199
+ font-size: 13px;
200
+ }
201
+ }
202
+
203
+ .vxe-form--group-title::before {
204
+ position: relative;
205
+ top: 2px;
206
+ padding-right: 5px;
207
+ color: var(--udp-theme-project-text);
208
+ content: '▉';
209
+ }
151
210
  }
152
211
 
153
212
  .vxe-form.size--mini .vxe-form--item-inner {
@@ -182,8 +241,6 @@ html[data-vxe-ui-theme='light'] {
182
241
  // 点击高亮
183
242
  .vxe-table--render-default {
184
243
  .vxe-body--row.row--current {
185
- background-color: #00b789;
186
-
187
244
  .vxe-cell--label {
188
245
  font-weight: bold;
189
246
  color: #fff;
@@ -197,6 +254,11 @@ html[data-vxe-ui-theme='light'] {
197
254
  .col--checkbox {
198
255
  background: #fff !important;
199
256
  }
257
+
258
+ .vxe-body--column {
259
+ font-weight: bold;
260
+ color: #fff;
261
+ }
200
262
  }
201
263
  }
202
264
 
@@ -215,14 +277,20 @@ html[data-vxe-ui-theme='light'] {
215
277
  .el-switch span:first-child:not(.vxe-cell--title) {
216
278
  color: #fff !important;
217
279
  }
280
+
281
+ .udp-select-wrapper {
282
+ .el-tag:first-child:not(.vxe-cell--title) {
283
+ .el-tag__content {
284
+ color: inherit !important;
285
+ }
286
+ }
287
+ }
218
288
  }
219
289
 
220
290
  .vxe-table--header-wrapper {
221
- .vxe-checkbox--icon {
222
- color: #fff !important;
223
-
224
- // color: #8347d7 !important;
225
- }
291
+ // .vxe-checkbox--icon {
292
+ // // color: #fff !important;
293
+ // }
226
294
 
227
295
  .vxe-icon-checkbox-checked,
228
296
  .vxe-icon-checkbox-indeterminate {
@@ -254,3 +322,27 @@ html[data-vxe-ui-theme='light'] {
254
322
  background-color: #d8e5f7;
255
323
  background-image: linear-gradient(180deg, #d8e5f7, #bcd3f5);
256
324
  }
325
+
326
+ /*********************************** tabs ****************************/
327
+
328
+ .vxe-tabs-header--item-name {
329
+ font-size: 12px;
330
+ font-weight: 600;
331
+ color: #909399;
332
+ }
333
+
334
+ .vxe-tabs-header--item.is--active {
335
+ .vxe-tabs-header--item-name {
336
+ font-size: 13px;
337
+ color: var(--udp-theme-vxeColor);
338
+ }
339
+ }
340
+
341
+ /******************************** tab end *************************************/
342
+
343
+ /******************************** preview start 预览图片组件 *************************************/
344
+ .vxe-image-preview--operation-wrapper {
345
+ color: #c0c4cc;
346
+ }
347
+
348
+ /******************************** preview end *************************************/
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { usePermissionStoreHook } from '../../store/modules/permission';
9
9
  import { isArray } from 'xe-utils';
10
- import router from '../../router';
10
+ import { router } from '../../router';
11
11
  const hasAuthority = auth => {
12
12
  if (!auth) return true;
13
13
  const permissionCode = router.currentRoute.value.meta?.permissionCode;