@utogether/udp-core 1.0.1-beta.15 → 1.0.1-beta.17

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 (126) hide show
  1. package/build/plugins.ts +39 -39
  2. package/dist/{403-DpJevH-h.js → 403-C3cfjZIT.js} +1 -1
  3. package/dist/{404-BpqJK3YD.js → 404-Bg3j7QIo.js} +1 -1
  4. package/dist/{500-DyvRbMD_.js → 500-CMT7Zyy7.js} +1 -1
  5. package/dist/{AuthorityInfo-Cyu4XHXx.js → AuthorityInfo-B1mvqs4x.js} +1 -1
  6. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-BxmnEEFq.js → AuthorityInfo.vue_vue_type_style_index_0_lang-DwoW7QWO.js} +3 -3
  7. package/dist/{Company-BLygcYrI.js → Company-qTguidK8.js} +3 -3
  8. package/dist/{CompanyPanel-D5Tgw6LF.js → CompanyPanel-BBC-o-k3.js} +17 -17
  9. package/dist/{Department-qI9OninZ.js → Department-C3mKZOnK.js} +3 -3
  10. package/dist/{DepartmentPanel-P-P8fPZQ.js → DepartmentPanel-CNdpOHBT.js} +25 -25
  11. package/dist/{DesignPanel-BxjD0AZi.js → DesignPanel-D9jrRCoG.js} +1 -1
  12. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-DN_OKxCu.js → DesignPanel.vue_vue_type_style_index_0_lang-A-Aj1Hl0.js} +6 -6
  13. package/dist/{DictView-PWL_Vf0T.js → DictView-CgdVkSiP.js} +15 -16
  14. package/dist/{InvOrganization-JXBXyn3G.js → InvOrganization-RE7s3vBq.js} +1 -1
  15. package/dist/{Org-DcTJn6YQ.js → Org-wXDGvTrS.js} +3 -3
  16. package/dist/{Preview-IKvbHI8a.js → Preview-Pvt1__BV.js} +1 -1
  17. package/dist/{ReportDefine-_G7ts7Ch.js → ReportDefine-xEQsgFyv.js} +1 -1
  18. package/dist/{ReportDesign-7h5oFklh.js → ReportDesign-jOSuEFH9.js} +9 -9
  19. package/dist/{ReportQuery-dj0BQUyi.js → ReportQuery-DxEmmGiN.js} +1 -1
  20. package/dist/{ReportQueryFrom-6WaZPg9i.js → ReportQueryFrom-CFlxfS5M.js} +1 -1
  21. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-ChhcBPqa.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-iHpiYz8f.js} +1 -1
  22. package/dist/{ReportTemplate-DIvJ3RrB.js → ReportTemplate-Dtz3aet7.js} +11 -11
  23. package/dist/{Role-ia_3qAZU.js → Role-B_NsHIyE.js} +3 -3
  24. package/dist/{RoleAssign-D0zVl4y3.js → RoleAssign-C9wm4zq4.js} +8 -8
  25. package/dist/{RolePanel-CQxOiAzj.js → RolePanel-BlHidBR0.js} +1 -1
  26. package/dist/{RolePanel-BiGGmP2w.js → RolePanel-DWM9mfNs.js} +1 -1
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-BYDLRS_x.js → RolePanel.vue_vue_type_script_setup_true_lang-Cn4RRzXm.js} +1 -1
  28. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Dwv5LFbf.js → RolePanel.vue_vue_type_script_setup_true_lang-DVQ9aqb1.js} +9 -9
  29. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-gPP4duO8.js → ScrollPanel.vue_vue_type_style_index_0_lang-CCm-_i8O.js} +8 -8
  30. package/dist/{Staff-Bf_oUqF6.js → Staff-BfDc61QS.js} +3 -3
  31. package/dist/{StaffInfo-D5aisjx2.js → StaffInfo-BaJFo4mg.js} +1 -1
  32. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-6PX7Bx6A.js → StaffInfo.vue_vue_type_script_setup_true_lang-Bwj4x1wu.js} +7 -7
  33. package/dist/{StaffPanel--zKzd4rt.js → StaffPanel-B6I2ZS6A.js} +1 -1
  34. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-BWZSIFpq.js → StaffPanel.vue_vue_type_script_setup_true_lang-vbyS4w3V.js} +2 -2
  35. package/dist/{SysUser-BelbESLR.js → SysUser-B_r9LYc5.js} +2 -2
  36. package/dist/{SysUserPanel-BixKqQcA.js → SysUserPanel-C4ajcHPV.js} +1 -1
  37. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-BhaWZEfo.js → SysUserPanel.vue_vue_type_script_setup_true_lang-8Q0VvC9B.js} +41 -37
  38. package/dist/{SystemMenu-D40tzcSj.js → SystemMenu-CyPG23uP.js} +10 -10
  39. package/dist/{UserInfo-DTyk071j.js → UserInfo-BkoGt4ib.js} +1 -1
  40. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-p9MByikC.js → UserInfo.vue_vue_type_style_index_0_lang-DrzF1YYG.js} +10 -10
  41. package/dist/{childView-so5qSxr0.js → childView-9vEO8ymO.js} +1 -1
  42. package/dist/{childView-xL3iE1yN.js → childView-Dh0NyiQe.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-CKcXpSqa.js → childView.vue_vue_type_style_index_0_lang-BOeoZuAK.js} +7 -7
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-DK1ei5uM.js → childView.vue_vue_type_style_index_0_lang-CMOjfXBX.js} +1 -1
  45. package/dist/{code-rule-DC35y76w.js → code-rule-C7jI_1gJ.js} +6 -6
  46. package/dist/core.es.js +17 -12
  47. package/dist/{cron-task-BhjQ4S68.js → cron-task-Dg9DJXvv.js} +11 -11
  48. package/dist/{frameView-G_zhG9pf.js → frameView-CeR-_hjB.js} +1 -1
  49. package/dist/{index-C6ehxLLO.js → index-Bb7gIEvu.js} +739 -496
  50. package/dist/{layoutView-CO2U8qCQ.js → layoutView-wsLHrEeX.js} +1347 -1346
  51. package/dist/login-CluzzdqH.js +249 -0
  52. package/dist/{lov-view-Cr929NMD.js → lov-view-BvQCvwbW.js} +5 -5
  53. package/dist/{menuInfo-BWuROp7u.js → menuInfo-B8RLelIC.js} +1 -1
  54. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-9nouHUjO.js → menuInfo.vue_vue_type_style_index_0_lang-DvkapEZr.js} +7 -7
  55. package/dist/{pda-app-CQP1sMAI.js → pda-app-D3LNmD9a.js} +19 -19
  56. package/dist/{resource-BDQLrMpK.js → resource-D8JA_03-.js} +7 -7
  57. package/dist/{su-welcome-CZysrZQ1.js → su-welcome-BjxeEKSo.js} +88 -88
  58. package/dist/{sys-config-BiGNMYSA.js → sys-config-sbeLk9bP.js} +6 -6
  59. package/dist/udp-core.css +1 -9
  60. package/dist/utogether-MlnyYtNS.js +4 -0
  61. package/index.ts +48 -40
  62. package/package.json +1 -1
  63. package/src/App.vue +65 -65
  64. package/src/components/SuCharts/src/UserInfo.vue +78 -78
  65. package/src/components/SuScrollTree/ScrollPanel.vue +170 -175
  66. package/src/components/udp/{grid.vue → grid/index.vue} +27 -24
  67. package/src/components/udp/index.ts +2 -9
  68. package/src/components/udp/utils.ts +60 -107
  69. package/src/layout/components/lay-navbar/index.vue +239 -239
  70. package/src/layout/components/lay-panel/index.vue +150 -150
  71. package/src/layout/components/lay-search/index.vue +25 -25
  72. package/src/layout/components/lay-select-org/index.vue +64 -64
  73. package/src/layout/components/lay-sidebar/horizontal.vue +190 -190
  74. package/src/layout/components/lay-sidebar/mixNav.vue +260 -260
  75. package/src/layout/components/lay-sidebar/sidebar-logo.vue +92 -92
  76. package/src/layout/components/lay-tag/index.vue +20 -48
  77. package/src/layout/hooks/useNav.ts +173 -173
  78. package/src/layout/hooks/useTag.ts +223 -233
  79. package/src/layout/types.ts +3 -2
  80. package/src/main.ts +117 -113
  81. package/src/plugins/i18n/en.ts +302 -302
  82. package/src/plugins/i18n/zh.ts +356 -354
  83. package/src/plugins/vxe-table/index.ts +116 -53
  84. package/src/plugins/vxe-table/render.tsx +956 -956
  85. package/src/router/index.ts +186 -177
  86. package/src/router/modules/remaining.ts +58 -58
  87. package/src/router/utils.ts +393 -377
  88. package/src/store/modules/app.ts +1 -3
  89. package/src/store/modules/multiTags.ts +110 -109
  90. package/src/store/modules/permission.ts +113 -100
  91. package/src/style/button.scss +85 -85
  92. package/src/style/login.css +1 -1
  93. package/src/style/vxetable.scss +25 -2
  94. package/src/utils/index.ts +3 -1
  95. package/src/views/organization/company/CompanyPanel.vue +259 -259
  96. package/src/views/organization/department/DepartmentPanel.vue +269 -283
  97. package/src/views/system/menu/SystemMenu.vue +183 -183
  98. package/src/views/system/menu/menuInfo.vue +363 -363
  99. package/src/views/system/role/UserInfo.vue +195 -195
  100. package/src/views/system/role-assign/RoleAssign.vue +57 -57
  101. package/src/views/system/role-assign/RolePanel.vue +139 -139
  102. package/src/views/system/sys/sys-config.vue +336 -336
  103. package/src/views/system/sysUser/SysUserPanel.vue +279 -278
  104. package/src/views/uapp/pda/pda-app.vue +208 -208
  105. package/src/views/udev/dict/DictView.vue +118 -118
  106. package/src/views/udev/dict/childView.vue +1 -1
  107. package/src/views/udev/lov/lov-view.vue +91 -91
  108. package/src/views/ulogin/login.vue +2 -2
  109. package/src/views/upms/interface/log-out.vue +101 -101
  110. package/src/views/urpt/design/DesignPanel.vue +507 -507
  111. package/types/global.d.ts +2 -8
  112. package/dist/login-DzyK2soP.js +0 -278
  113. package/dist/utogether-BRirriOz.js +0 -182
  114. package/src/components/udp/count-down.vue +0 -536
  115. package/src/components/udp/flip-down/FlipCard/flip-card.vue +0 -251
  116. package/src/components/udp/flip-down/FlipCard/interfaces.ts +0 -4
  117. package/src/components/udp/flip-down/FlipClock/flip-clock.vue +0 -113
  118. package/src/components/udp/form-upload.vue +0 -482
  119. package/src/components/udp/form.vue +0 -112
  120. package/src/components/udp/lov.vue +0 -388
  121. package/src/components/udp/modal-form.vue +0 -190
  122. package/src/components/udp/modal-grid.vue +0 -298
  123. package/src/components/udp/upload.vue +0 -423
  124. package/src/utils/udp/http/index.ts +0 -294
  125. package/src/utils/udp/http/types.d.ts +0 -49
  126. package/src/utils/udp/useRender.ts +0 -431
@@ -1,150 +1,150 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-12-23 17:33:20
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-07-31 10:15:40
6
- * @Description: 个性化设置页面
7
- -->
8
- <script setup lang="ts">
9
- import { ref, computed, onMounted, onBeforeUnmount } from 'vue';
10
- import { useDataThemeChange } from '../../hooks/useDataThemeChange';
11
- import { onClickOutside } from '@vueuse/core';
12
- import { emitter } from '../../../utils/mitt';
13
-
14
- const target = ref(null);
15
- const show = ref<Boolean>(false);
16
-
17
- const iconClass = computed(() => {
18
- return [
19
- 'w-[22px]',
20
- 'h-[22px]',
21
- 'flex',
22
- 'justify-center',
23
- 'items-center',
24
- 'outline-hidden',
25
- 'rounded-[4px]',
26
- 'cursor-pointer',
27
- 'transition-colors',
28
- 'hover:bg-[#0000000f]',
29
- 'dark:hover:bg-[#ffffff1f]',
30
- 'dark:hover:text-[#ffffffd9]'
31
- ];
32
- });
33
-
34
- const { onReset } = useDataThemeChange();
35
- onClickOutside(target, (event: any) => {
36
- if (event.clientX > target.value.offsetLeft) return;
37
- show.value = false;
38
- });
39
-
40
- onMounted(() => {
41
- emitter.on('openPanel', () => {
42
- show.value = true;
43
- });
44
- });
45
-
46
- onBeforeUnmount(() => {
47
- // 解绑`openPanel`公共事件,防止多次触发
48
- emitter.off('openPanel');
49
- });
50
- </script>
51
-
52
- <template>
53
- <div :class="{ show }">
54
- <div class="right-panel-background" />
55
- <div ref="target" class="right-panel bg-bg_color bg-white">
56
- <div
57
- class="project-configuration border-0 border-b-[1px] border-solid border-[var(--pure-border-color)]"
58
- >
59
- <h4 class="dark:text-white">{{ $t('message.tip.projectConfig') }}</h4>
60
- <span
61
- v-tippy="{
62
- content: $t('message.tip.closeConfig'),
63
- placement: 'bottom-start',
64
- zIndex: 41000
65
- }"
66
- :class="iconClass"
67
- >
68
- <IconifyIconOffline
69
- class="dark:text-white"
70
- width="18px"
71
- height="18px"
72
- icon="ri:close-line"
73
- @click="show = !show"
74
- />
75
- </span>
76
- </div>
77
- <el-scrollbar>
78
- <slot />
79
- </el-scrollbar>
80
-
81
- <div
82
- class="flex justify-end p-3 border-0 border-t-[1px] border-solid border-[var(--pure-border-color)]"
83
- >
84
- <el-button
85
- v-tippy="{
86
- content: $t('message.tip.toLogin'),
87
- placement: 'left-start',
88
- zIndex: 41000
89
- }"
90
- type="danger"
91
- text
92
- bg
93
- @click="onReset"
94
- >
95
- {{ $t('message.tip.clearCache') }}
96
- </el-button>
97
- </div>
98
- </div>
99
- </div>
100
- </template>
101
-
102
- <style lang="scss" scoped>
103
- :deep(.el-scrollbar) {
104
- height: calc(100vh - 110px);
105
- }
106
-
107
- .right-panel-background {
108
- position: fixed;
109
- top: 0;
110
- left: 0;
111
- z-index: -1;
112
- background: rgb(0 0 0 / 20%);
113
- opacity: 0;
114
- transition: opacity 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
115
- }
116
-
117
- .right-panel {
118
- position: fixed;
119
- top: 0;
120
- right: 0;
121
- z-index: 400000;
122
- width: 100%;
123
- max-width: 300px;
124
- box-shadow: 0 0 15px 0 rgb(0 0 0 / 5%);
125
- transform: translate(100%);
126
- transition: all 0.25s cubic-bezier(0.7, 0.3, 0.1, 1);
127
- }
128
-
129
- .show {
130
- transition: all 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
131
-
132
- .right-panel-background {
133
- z-index: 20000;
134
- width: 100%;
135
- height: 100%;
136
- opacity: 1;
137
- }
138
-
139
- .right-panel {
140
- transform: translate(0);
141
- }
142
- }
143
-
144
- .project-configuration {
145
- display: flex;
146
- align-items: center;
147
- justify-content: space-between;
148
- padding: 14px 20px;
149
- }
150
- </style>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2021-12-23 17:33:20
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-07-31 10:15:40
6
+ * @Description: 个性化设置页面
7
+ -->
8
+ <script setup lang="ts">
9
+ import { ref, computed, onMounted, onBeforeUnmount } from 'vue';
10
+ import { useDataThemeChange } from '../../hooks/useDataThemeChange';
11
+ import { onClickOutside } from '@vueuse/core';
12
+ import { emitter } from '../../../utils/mitt';
13
+
14
+ const target = ref(null);
15
+ const show = ref<Boolean>(false);
16
+
17
+ const iconClass = computed(() => {
18
+ return [
19
+ 'w-[22px]',
20
+ 'h-[22px]',
21
+ 'flex',
22
+ 'justify-center',
23
+ 'items-center',
24
+ 'outline-hidden',
25
+ 'rounded-[4px]',
26
+ 'cursor-pointer',
27
+ 'transition-colors',
28
+ 'hover:bg-[#0000000f]',
29
+ 'dark:hover:bg-[#ffffff1f]',
30
+ 'dark:hover:text-[#ffffffd9]'
31
+ ];
32
+ });
33
+
34
+ const { onReset } = useDataThemeChange();
35
+ onClickOutside(target, (event: any) => {
36
+ if (event.clientX > target.value.offsetLeft) return;
37
+ show.value = false;
38
+ });
39
+
40
+ onMounted(() => {
41
+ emitter.on('openPanel', () => {
42
+ show.value = true;
43
+ });
44
+ });
45
+
46
+ onBeforeUnmount(() => {
47
+ // 解绑`openPanel`公共事件,防止多次触发
48
+ emitter.off('openPanel');
49
+ });
50
+ </script>
51
+
52
+ <template>
53
+ <div :class="{ show }">
54
+ <div class="right-panel-background" />
55
+ <div ref="target" class="right-panel bg-bg_color bg-white">
56
+ <div
57
+ class="project-configuration border-0 border-b-[1px] border-solid border-[var(--pure-border-color)]"
58
+ >
59
+ <h4 class="dark:text-white">{{ $t('message.tip.projectConfig') }}</h4>
60
+ <span
61
+ v-tippy="{
62
+ content: $t('message.tip.closeConfig'),
63
+ placement: 'bottom-start',
64
+ zIndex: 41000
65
+ }"
66
+ :class="iconClass"
67
+ >
68
+ <IconifyIconOffline
69
+ class="dark:text-white"
70
+ width="18px"
71
+ height="18px"
72
+ icon="ri:close-line"
73
+ @click="show = !show"
74
+ />
75
+ </span>
76
+ </div>
77
+ <el-scrollbar>
78
+ <slot />
79
+ </el-scrollbar>
80
+
81
+ <div
82
+ class="flex justify-end p-3 border-0 border-t-[1px] border-solid border-[var(--pure-border-color)]"
83
+ >
84
+ <el-button
85
+ v-tippy="{
86
+ content: $t('message.tip.toLogin'),
87
+ placement: 'left-start',
88
+ zIndex: 41000
89
+ }"
90
+ type="danger"
91
+ text
92
+ bg
93
+ @click="onReset"
94
+ >
95
+ {{ $t('message.tip.clearCache') }}
96
+ </el-button>
97
+ </div>
98
+ </div>
99
+ </div>
100
+ </template>
101
+
102
+ <style lang="scss" scoped>
103
+ :deep(.el-scrollbar) {
104
+ height: calc(100vh - 110px);
105
+ }
106
+
107
+ .right-panel-background {
108
+ position: fixed;
109
+ top: 0;
110
+ left: 0;
111
+ z-index: -1;
112
+ background: rgb(0 0 0 / 20%);
113
+ opacity: 0;
114
+ transition: opacity 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
115
+ }
116
+
117
+ .right-panel {
118
+ position: fixed;
119
+ top: 0;
120
+ right: 0;
121
+ z-index: 400000;
122
+ width: 100%;
123
+ max-width: 300px;
124
+ box-shadow: 0 0 15px 0 rgb(0 0 0 / 5%);
125
+ transform: translate(100%);
126
+ transition: all 0.25s cubic-bezier(0.7, 0.3, 0.1, 1);
127
+ }
128
+
129
+ .show {
130
+ transition: all 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
131
+
132
+ .right-panel-background {
133
+ z-index: 20000;
134
+ width: 100%;
135
+ height: 100%;
136
+ opacity: 1;
137
+ }
138
+
139
+ .right-panel {
140
+ transform: translate(0);
141
+ }
142
+ }
143
+
144
+ .project-configuration {
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: space-between;
148
+ padding: 14px 20px;
149
+ }
150
+ </style>
@@ -1,25 +1,25 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2022-03-10 11:26:15
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2023-10-12 11:43:49
6
- * @Description: 菜单栏搜索
7
- -->
8
- <script lang="ts" setup>
9
- import { SearchModal } from './components';
10
- import { useBoolean } from '../../hooks/useBoolean';
11
- const { bool: show, toggle } = useBoolean();
12
- function handleSearch() {
13
- toggle();
14
- }
15
- </script>
16
-
17
- <template>
18
- <div
19
- class="search-container w-[40px] h-[48px] px-2 flex justify-center items-center cursor-pointer navbar-bg-hover"
20
- @click="handleSearch"
21
- >
22
- <IconifyIconOffline icon="ri:search-line" />
23
- </div>
24
- <SearchModal v-model:value="show" />
25
- </template>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2022-03-10 11:26:15
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2023-10-12 11:43:49
6
+ * @Description: 菜单栏搜索
7
+ -->
8
+ <script lang="ts" setup>
9
+ import { SearchModal } from './components';
10
+ import { useBoolean } from '../../hooks/useBoolean';
11
+ const { bool: show, toggle } = useBoolean();
12
+ function handleSearch() {
13
+ toggle();
14
+ }
15
+ </script>
16
+
17
+ <template>
18
+ <div
19
+ class="search-container w-[40px] h-[48px] px-2 flex justify-center items-center cursor-pointer navbar-bg-hover"
20
+ @click="handleSearch"
21
+ >
22
+ <IconifyIconOffline icon="ri:search-line" />
23
+ </div>
24
+ <SearchModal v-model:value="show" />
25
+ </template>
@@ -1,64 +1,64 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-11-27 16:16:11
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-16 14:27:14
6
- * @Description: file content
7
- -->
8
-
9
- <!-- 业务单元选择 -->
10
- <template>
11
- <div style="width: 240px">
12
- <el-select v-model="orgId" size="small" @change="onChange">
13
- <el-option v-for="element in orgList" :key="element.id" :label="element.orgName" :value="element.id" />
14
- </el-select>
15
- </div>
16
- </template>
17
-
18
- <script lang="ts">
19
- export default { name: 'OrgSelect' };
20
- </script>
21
-
22
- <script setup lang="ts">
23
- import { unref, computed } from 'vue';
24
- import to from 'await-to-js';
25
- import { getServiceApi } from '../../../api';
26
- import { useRoute, useRouter } from 'vue-router';
27
- import { cookies } from '@utogether/utils';
28
- import { useSystemStoreHook } from '../../../store/modules/system';
29
- import { usePermissionStoreHook } from '../../../store/modules/permission';
30
-
31
- const route = useRoute();
32
- const router = useRouter();
33
- const orgList = computed(() => useSystemStoreHook().getOrglist);
34
- const orgId = computed(() => useSystemStoreHook().getOrgId);
35
-
36
- const onChange = async orgId => {
37
- const [err] = await to(getServiceApi().post('/uums/org/toggle', { orgId }));
38
- if (!err) {
39
- useSystemStoreHook().setOrgId(orgId);
40
- let organizationId;
41
- const query = { pageSize: 100, pageNum: 1 };
42
- const [err, data]: [Error, any] = await to(getServiceApi().get('/uums/cusOrganization', query));
43
- if (!err && data.list?.length) {
44
- useSystemStoreHook().setInvOrgList(data.list || []);
45
- const invOrg = data.list.find(f => f.orgId === orgId);
46
- organizationId = invOrg.id;
47
- useSystemStoreHook().setOrganizationId(organizationId);
48
- }
49
- const param = { orgId, organizationId };
50
- cookies.set('kCookies_param', JSON.stringify(param));
51
- usePermissionStoreHook().cacheOperate({ mode: 'reset' });
52
- onFresh();
53
- }
54
- };
55
-
56
- /** 刷新路由 */
57
- function onFresh() {
58
- const { fullPath, query } = unref(route);
59
- router.replace({
60
- path: '/redirect' + fullPath,
61
- query: query
62
- });
63
- }
64
- </script>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2021-11-27 16:16:11
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-09-22 09:47:39
6
+ * @Description: file content
7
+ -->
8
+
9
+ <!-- 业务单元选择 -->
10
+ <template>
11
+ <div style="width: 240px">
12
+ <el-select v-model="orgId" size="small" @change="onChange">
13
+ <el-option v-for="element in orgList" :key="element.id" :label="element.orgName" :value="element.id" />
14
+ </el-select>
15
+ </div>
16
+ </template>
17
+
18
+ <script lang="ts">
19
+ export default { name: 'OrgSelect' };
20
+ </script>
21
+
22
+ <script setup lang="ts">
23
+ import { unref, computed } from 'vue';
24
+ import to from 'await-to-js';
25
+ import { getServiceApi } from '../../../api';
26
+ import { useRoute, useRouter } from 'vue-router';
27
+ import { cookies } from '@utogether/utils';
28
+ import { useSystemStoreHook } from '../../../store/modules/system';
29
+ import { usePermissionStoreHook } from '../../../store/modules/permission';
30
+
31
+ const route = useRoute();
32
+ const router = useRouter();
33
+ const orgList = computed(() => useSystemStoreHook().getOrglist);
34
+ const orgId = computed(() => useSystemStoreHook().getOrgId);
35
+
36
+ const onChange = async orgId => {
37
+ const [err] = await to(getServiceApi().post('/uums/org/toggle', { orgId }));
38
+ if (!err) {
39
+ useSystemStoreHook().setOrgId(orgId);
40
+ let organizationId;
41
+ const query = { pageSize: 100, pageNum: 1 };
42
+ const [err, data]: [Error, any] = await to(getServiceApi().get('/uums/cusOrganization', query));
43
+ if (!err && data.list?.length) {
44
+ useSystemStoreHook().setInvOrgList(data.list || []);
45
+ const invOrg = data?.list?.find(f => f.orgId === orgId);
46
+ organizationId = invOrg?.id;
47
+ useSystemStoreHook().setOrganizationId(organizationId);
48
+ }
49
+ const param = { orgId, organizationId };
50
+ cookies.set('kCookies_param', JSON.stringify(param));
51
+ usePermissionStoreHook().cacheOperate({ mode: 'reset' });
52
+ onFresh();
53
+ }
54
+ };
55
+
56
+ /** 刷新路由 */
57
+ function onFresh() {
58
+ const { fullPath, query } = unref(route);
59
+ router.replace({
60
+ path: '/redirect' + fullPath,
61
+ query: query
62
+ });
63
+ }
64
+ </script>