@utogether/udp-core 1.0.1-beta.26 → 1.0.1-beta.27

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 (70) hide show
  1. package/build/plugins.ts +37 -39
  2. package/dist/{403-CRaWlpO4.js → 403-A9aD_bZN.js} +1 -1
  3. package/dist/{404-CO17saLh.js → 404-DREd70aQ.js} +1 -1
  4. package/dist/{500-CZSo9D7b.js → 500-C5qVXkGt.js} +1 -1
  5. package/dist/{AuthorityInfo-B5CBOT-E.js → AuthorityInfo-CYO2IVau.js} +1 -1
  6. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-BAUfnndO.js → AuthorityInfo.vue_vue_type_style_index_0_lang-V7e_KwWp.js} +1 -1
  7. package/dist/{Company-DyulR9z3.js → Company-CaottHQO.js} +3 -3
  8. package/dist/{CompanyPanel-B1FObbfo.js → CompanyPanel-B3hOiXqj.js} +1 -1
  9. package/dist/{Department-BwqHGgU6.js → Department-CHkuRvJN.js} +3 -3
  10. package/dist/{DepartmentPanel-BdSArfIb.js → DepartmentPanel-DieWfIxW.js} +1 -1
  11. package/dist/{DesignPanel-CM7POFYL.js → DesignPanel-REWXp3x4.js} +1 -1
  12. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-L2wuXnfS.js → DesignPanel.vue_vue_type_style_index_0_lang-Df0xc5XP.js} +2 -2
  13. package/dist/{DictView-Cz1HXcLI.js → DictView-DnpDHskG.js} +1 -1
  14. package/dist/{InvOrganization-B570Y7CZ.js → InvOrganization-DoIsDrAx.js} +1 -1
  15. package/dist/{Org-4_PyJCn0.js → Org-C4P5Cwia.js} +1 -1
  16. package/dist/{Preview-QgpTybOh.js → Preview-d90pQdFJ.js} +1 -1
  17. package/dist/{ReportDefine-BCqCBlDX.js → ReportDefine-DNrp4lFP.js} +1 -1
  18. package/dist/{ReportDesign-BjxuRAVL.js → ReportDesign-Ch8x6_mW.js} +2 -2
  19. package/dist/{ReportQuery-CEKmzHT5.js → ReportQuery-C1yR0ULS.js} +1 -1
  20. package/dist/{ReportQueryFrom-BTppicSp.js → ReportQueryFrom-BKwf61CL.js} +1 -1
  21. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CNyJtLRf.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-D2ddteNz.js} +1 -1
  22. package/dist/{ReportTemplate-BK4hDrL1.js → ReportTemplate-HLHli4Cc.js} +1 -1
  23. package/dist/{Role-BWXsp5qm.js → Role-4GbuIhk6.js} +3 -3
  24. package/dist/{RoleAssign-BhdOusLw.js → RoleAssign-FGrSCg5R.js} +3 -3
  25. package/dist/{RolePanel-D5EvY_-Q.js → RolePanel-BcCozGfv.js} +1 -1
  26. package/dist/{RolePanel-BAc0l-2F.js → RolePanel-Ce1eKsM8.js} +1 -1
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-DFzyHc1T.js → RolePanel.vue_vue_type_script_setup_true_lang-BiOcU5GE.js} +1 -1
  28. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-DLCmeXCd.js → RolePanel.vue_vue_type_script_setup_true_lang-CqER1M9Y.js} +3 -3
  29. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-ie9JsdEr.js → ScrollPanel.vue_vue_type_style_index_0_lang-BbgS5f79.js} +1 -1
  30. package/dist/{Staff-Dz1Wf9V4.js → Staff-CBt_0rqg.js} +3 -3
  31. package/dist/{StaffInfo-FQZG2fGB.js → StaffInfo-RCdWZr1r.js} +1 -1
  32. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-Do1yHo6J.js → StaffInfo.vue_vue_type_script_setup_true_lang-Dm8Yin3r.js} +1 -1
  33. package/dist/{StaffPanel-CU-StSY2.js → StaffPanel-2ka-H3IV.js} +1 -1
  34. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-DgXY4cfW.js → StaffPanel.vue_vue_type_script_setup_true_lang-B0u-PqTe.js} +2 -2
  35. package/dist/{SysUser-B7uyZeA3.js → SysUser-Cs7uN3HU.js} +2 -2
  36. package/dist/{SysUserPanel-DqQ3U-nX.js → SysUserPanel-Df3qGMep.js} +1 -1
  37. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-oggT9dvZ.js → SysUserPanel.vue_vue_type_script_setup_true_lang-ClwozbZE.js} +17 -14
  38. package/dist/{SystemMenu-CkilYlRc.js → SystemMenu-BMYVQd-E.js} +2 -2
  39. package/dist/{UserInfo-B_u9-T_L.js → UserInfo-DDk2iOqY.js} +1 -1
  40. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-DdeVvUqP.js → UserInfo.vue_vue_type_style_index_0_lang-CEccCnDi.js} +1 -1
  41. package/dist/{childView-1gXcTDxu.js → childView-C7u4Budn.js} +1 -1
  42. package/dist/{childView-DWEAMuXh.js → childView-DFPGu0W-.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-feFKg1Nw.js → childView.vue_vue_type_style_index_0_lang-B3fNaibG.js} +1 -1
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-CG2wvaUS.js → childView.vue_vue_type_style_index_0_lang-BUMcbqzM.js} +1 -1
  45. package/dist/{code-rule-D1Ft0jcV.js → code-rule-BcaRQ1zV.js} +1 -1
  46. package/dist/core.es.js +1 -1
  47. package/dist/{cron-task-1nATKU7t.js → cron-task-DJQLZCsO.js} +1 -1
  48. package/dist/{frameView-Cfzchx0E.js → frameView-uPEaJRC7.js} +1 -1
  49. package/dist/index-D7BXpJPu.js +2904 -0
  50. package/dist/{layoutView-B4YfJktL.js → layoutView-zw1-fplL.js} +1059 -1053
  51. package/dist/{login-C4w14hqN.js → login-M-rLGYIn.js} +1 -1
  52. package/dist/{lov-view-CKfqoFML.js → lov-view-BVfIna0M.js} +2 -2
  53. package/dist/{menuInfo-HGi2h2YV.js → menuInfo-BTqoNOuZ.js} +1 -1
  54. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-CK_IA37Z.js → menuInfo.vue_vue_type_style_index_0_lang-CHco0XcS.js} +1 -1
  55. package/dist/{pda-app-BTsz1e9J.js → pda-app-BzzynCVk.js} +1 -1
  56. package/dist/{resource-CRLHuOfC.js → resource-CJQV7_75.js} +1 -1
  57. package/dist/{su-welcome-CBdJlKhI.js → su-welcome-BxQYF4Ou.js} +1 -1
  58. package/dist/{sys-config-M3ZUrG9m.js → sys-config-DNFqTmvL.js} +62 -47
  59. package/dist/udp-core.css +1 -1
  60. package/package.json +3 -3
  61. package/src/components/udp/grid/index.vue +524 -514
  62. package/src/components/udp/utils.ts +2 -2
  63. package/src/layout/components/lay-sidebar/horizontal.vue +4 -1
  64. package/src/layout/components/lay-sidebar/mixNav.vue +260 -260
  65. package/src/layout/components/lay-sidebar/sidebar-logo.vue +3 -3
  66. package/src/main.ts +17 -17
  67. package/src/plugins/i18n/zh.ts +362 -361
  68. package/src/views/system/sys/sys-config.vue +4 -0
  69. package/src/views/system/sysUser/SysUserPanel.vue +4 -2
  70. package/dist/index-CrL4X6FE.js +0 -6498
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2022-06-23 17:29:11
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-11-06 19:44:16
5
+ * @LastEditTime: 2025-11-18 16:35:57
6
6
  * @Description: file content
7
7
  */
8
8
  // @ts-nocheck
@@ -81,7 +81,7 @@ export const query = (props, form, page, http, code, isDoc) => {
81
81
  const commonParam = getCookieParam();
82
82
  Object.assign(params, commonParam, props.defaultParams || {}, form);
83
83
 
84
- let query = formatMultipleParams(params, props.items, form);
84
+ let query = formatMultipleParams(params, props.items);
85
85
  query = formatDateRange(query, props.items);
86
86
  const { url } = props;
87
87
  if (!url) return null;
@@ -21,6 +21,9 @@ const routeStore = usePermissionStoreHook();
21
21
  const sysConfig = storageLocal.getItem(kSYSCONFIG) || {};
22
22
 
23
23
  const logo = ref(sysConfig['logo'] || utogether);
24
+ const showTitle = ref(sysConfig['showTitle']);
25
+
26
+ console.log({ showTitle });
24
27
 
25
28
  const {
26
29
  title,
@@ -65,7 +68,7 @@ export default { name: 'LayoutHorizontal' };
65
68
  <div v-spinning="usePermissionStoreHook().wholeMenus.length === 0" class="horizontal-header">
66
69
  <div class="flex flex-1 horizontal-header-left" @click="backHome">
67
70
  <img :src="logo" class="h-full" />
68
- <span class="text-xl u-project-text">{{ title }}</span>
71
+ <span v-if="showTitle === 'Y'" class="text-xl u-project-text">{{ title }}</span>
69
72
  </div>
70
73
  <el-scrollbar ref="refScrollbar" class="flex-[3]" @wheel.prevent="handleScroll">
71
74
  <template #default>
@@ -1,260 +1,260 @@
1
- <script setup lang="ts">
2
- import { ref, watch, toRaw, onMounted, nextTick } from 'vue';
3
- import { storageLocal } from '@utogether/utils';
4
- import OrgSelect from '../lay-select-org/index.vue';
5
- import Search from '../lay-search/index.vue';
6
- // import Notice from '../lay-notice/index.vue';
7
- import extraIcon from './extraIcon.vue';
8
- import avatars from '../../../assets/images/avatars.jpg';
9
- import { transformI18n } from '../../../plugins/i18n';
10
- import { useRenderIcon } from '../../../components/ReIcon/src/hooks';
11
- import { useEpThemeStoreHook } from '../../../store/modules/epTheme';
12
- import { getParentPaths, findRouteByPath } from '../../../router/utils';
13
- import { useNav } from '../../hooks/useNav';
14
- import { useTranslationLang } from '../../hooks/useTranslationLang';
15
- import { usePermissionStoreHook } from '../../../store/modules/permission';
16
- import globalization from '../../../assets/svg/globalization.svg?component';
17
- import { kSYSCONFIG } from '../../../contant';
18
-
19
- const menuRef = ref();
20
- const { route, locale, translationCh, translationEn } = useTranslationLang(menuRef);
21
-
22
- const {
23
- device,
24
- logout,
25
- onPanel,
26
- toggleSideBar,
27
- resolvePath,
28
- appHook,
29
- userInfo,
30
- getDivStyle,
31
- avatarsStyle,
32
- getDropdownItemStyle,
33
- getDropdownItemClass,
34
- passwordItems
35
- } = useNav();
36
-
37
- const refScrollbar = ref(null);
38
- const defaultActive = ref(null);
39
- const record: IRecord = {};
40
-
41
- const showModal = ref(false);
42
-
43
- const sysConfig = storageLocal.getItem(kSYSCONFIG) || {};
44
-
45
- function getDefaultActive(routePath) {
46
- const wholeMenus = usePermissionStoreHook().wholeMenus;
47
- // 当前路由的父级路径
48
- const parentRoutes = getParentPaths(routePath, wholeMenus)[0];
49
- defaultActive.value = findRouteByPath(parentRoutes, wholeMenus)?.children[0]?.path;
50
- }
51
-
52
- onMounted(() => {
53
- getDefaultActive(route.path);
54
- });
55
-
56
- nextTick(() => {
57
- menuRef.value?.handleResize();
58
- });
59
-
60
- watch(
61
- () => route.path,
62
- () => {
63
- getDefaultActive(route.path);
64
- }
65
- );
66
-
67
- const handleResetPwd = (): void => {
68
- record.id = userInfo['id'];
69
- showModal.value = true;
70
- };
71
-
72
- const handleScroll = e => {
73
- const wheelDelta = e.wheelDelta || -e.deltaY * 40;
74
- const scrollbar = refScrollbar.value;
75
- // scrollbar.wrap$获取到包裹容器的element对象
76
- scrollbar.setScrollLeft(scrollbar.wrapRef.scrollLeft + wheelDelta);
77
- };
78
- </script>
79
-
80
- <template>
81
- <div v-if="device !== 'mobile'" class="horizontal-header">
82
- <div
83
- :class="classes.container"
84
- :title="appHook.sidebar.opened ? $t('message.udp.collapse') : $t('message.udp.expand')"
85
- @click="toggleSideBar"
86
- >
87
- <svg
88
- :fill="useEpThemeStoreHook().fill"
89
- :class="['hamburger', appHook.sidebar.opened ? 'is-active-hamburger' : '']"
90
- viewBox="0 0 1024 1024"
91
- xmlns="http://www.w3.org/2000/svg"
92
- width="64"
93
- height="64"
94
- >
95
- <path
96
- d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"
97
- />
98
- </svg>
99
- </div>
100
-
101
- <el-scrollbar ref="refScrollbar" style="max-width: 66%" @wheel.prevent="handleScroll">
102
- <template #default>
103
- <el-menu
104
- ref="menu"
105
- :default-active="defaultActive"
106
- :ellipsis="false"
107
- class="horizontal-header-menu"
108
- mode="horizontal"
109
- router
110
- >
111
- <el-menu-item
112
- v-for="route in usePermissionStoreHook().wholeMenus"
113
- :key="route.path"
114
- :index="resolvePath(route) || route.redirect"
115
- >
116
- <template #title>
117
- <div v-if="toRaw(route.meta.icon)" :class="['sub-menu-icon', route.meta.icon]">
118
- <component :is="useRenderIcon(route.meta && toRaw(route.meta.icon))" />
119
- </div>
120
- <!-- <span class="select-none">{{ transformI18n(route.meta.title) }}</span>
121
- <FontIcon
122
- v-if="route.meta.extraIcon"
123
- width="30px"
124
- height="30px"
125
- style="position: absolute; right: 10px"
126
- :icon="route.meta.extraIcon"
127
- :svg="route.meta.extraIcon ? true : false"
128
- /> -->
129
- <div :style="getDivStyle">
130
- <span class="select-none">
131
- {{ transformI18n(route.meta.title) }}
132
- </span>
133
- <extraIcon :extra-icon="route.meta.extraIcon" />
134
- </div>
135
- </template>
136
- </el-menu-item>
137
- </el-menu>
138
- </template>
139
- </el-scrollbar>
140
- <div class="horizontal-header-right">
141
- <!-- 业务单元选择 -->
142
- <OrgSelect v-if="sysConfig['orgTaggle'] === 'Y'" />
143
- <!-- 菜单搜索 -->
144
- <Search />
145
- <!-- 通知 -->
146
- <!-- <Notice id="header-notice" /> -->
147
- <!-- 国际化 -->
148
- <el-dropdown id="header-translation" trigger="click">
149
- <globalization class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-hidden" />
150
- <template #dropdown>
151
- <el-dropdown-menu class="translation">
152
- <el-dropdown-item
153
- :style="getDropdownItemStyle(locale, 'zh')"
154
- :class="['dark:text-white!', getDropdownItemClass(locale, 'zh')]"
155
- @click="translationCh"
156
- >
157
- <span v-show="locale === 'zh'" class="check-zh">
158
- <IconifyIconOffline icon="ri:check-line" />
159
- </span>
160
- 简体中文
161
- </el-dropdown-item>
162
- <el-dropdown-item
163
- :style="getDropdownItemStyle(locale, 'en')"
164
- :class="['dark:text-white!', getDropdownItemClass(locale, 'en')]"
165
- @click="translationEn"
166
- >
167
- <span v-show="locale === 'en'" class="check-en">
168
- <IconifyIconOffline icon="ri:check-line" />
169
- </span>
170
- English
171
- </el-dropdown-item>
172
- </el-dropdown-menu>
173
- </template>
174
- </el-dropdown>
175
- <!-- 退出登陆 -->
176
- <el-dropdown trigger="click">
177
- <span class="select-none el-dropdown-link navbar-bg-hover">
178
- <img v-if="avatars" :src="avatars" :style="avatarsStyle" />
179
- <p class="dark:text-white">{{ userInfo.name }}</p>
180
- </span>
181
- <template #dropdown>
182
- <el-dropdown-menu class="logout">
183
- <el-dropdown-item @click="handleResetPwd">
184
- <IconifyIconOffline icon="ri:edit-2-fill" />
185
- {{ $t('message.udp.passwordReset') }}
186
- </el-dropdown-item>
187
- <el-divider style="margin: 3px 0 !important" />
188
- <el-dropdown-item @click="logout">
189
- <IconifyIconOffline icon="switch-button" />
190
- {{ $t('message.udp.logout') }}
191
- </el-dropdown-item>
192
- </el-dropdown-menu>
193
- </template>
194
- </el-dropdown>
195
- <span class="el-icon-setting navbar-bg-hover" @click="onPanel">
196
- <IconifyIconOffline icon="ri:settings-5-fill" />
197
- </span>
198
- </div>
199
-
200
- <ut-modal-form
201
- v-if="showModal"
202
- :record="record"
203
- :items="passwordItems()"
204
- :width="360"
205
- :height="240"
206
- :title="$t('message.udp.passwordReset')"
207
- data-status="update"
208
- url="/uums/user/updatePwd"
209
- method="put"
210
- @close="showModal = false"
211
- />
212
- </div>
213
- </template>
214
-
215
- <style module="classes" scoped>
216
- .container {
217
- padding: 0 15px;
218
- }
219
- </style>
220
-
221
- <style lang="scss" scoped>
222
- .hamburger {
223
- width: 20px;
224
- height: 20px;
225
-
226
- &:hover {
227
- cursor: pointer;
228
- }
229
- }
230
-
231
- .is-active-hamburger {
232
- transform: rotate(180deg);
233
- }
234
-
235
- .translation {
236
- ::v-deep(.el-dropdown-menu__item) {
237
- padding: 5px 40px;
238
- }
239
-
240
- .check-zh {
241
- position: absolute;
242
- left: 20px;
243
- }
244
-
245
- .check-en {
246
- position: absolute;
247
- left: 20px;
248
- }
249
- }
250
-
251
- .logout {
252
- max-width: 120px;
253
-
254
- ::v-deep(.el-dropdown-menu__item) {
255
- display: inline-flex;
256
- flex-wrap: wrap;
257
- min-width: 100%;
258
- }
259
- }
260
- </style>
1
+ <script setup lang="ts">
2
+ import { ref, watch, toRaw, onMounted, nextTick } from 'vue';
3
+ import { storageLocal } from '@utogether/utils';
4
+ import OrgSelect from '../lay-select-org/index.vue';
5
+ import Search from '../lay-search/index.vue';
6
+ // import Notice from '../lay-notice/index.vue';
7
+ import extraIcon from './extraIcon.vue';
8
+ import avatars from '../../../assets/images/avatars.jpg';
9
+ import { transformI18n } from '../../../plugins/i18n';
10
+ import { useRenderIcon } from '../../../components/ReIcon/src/hooks';
11
+ import { useEpThemeStoreHook } from '../../../store/modules/epTheme';
12
+ import { getParentPaths, findRouteByPath } from '../../../router/utils';
13
+ import { useNav } from '../../hooks/useNav';
14
+ import { useTranslationLang } from '../../hooks/useTranslationLang';
15
+ import { usePermissionStoreHook } from '../../../store/modules/permission';
16
+ import globalization from '../../../assets/svg/globalization.svg?component';
17
+ import { kSYSCONFIG } from '../../../contant';
18
+
19
+ const menuRef = ref();
20
+ const { route, locale, translationCh, translationEn } = useTranslationLang(menuRef);
21
+
22
+ const {
23
+ device,
24
+ logout,
25
+ onPanel,
26
+ toggleSideBar,
27
+ resolvePath,
28
+ appHook,
29
+ userInfo,
30
+ getDivStyle,
31
+ avatarsStyle,
32
+ getDropdownItemStyle,
33
+ getDropdownItemClass,
34
+ passwordItems
35
+ } = useNav();
36
+
37
+ const refScrollbar = ref(null);
38
+ const defaultActive = ref(null);
39
+ const record: IRecord = {};
40
+
41
+ const showModal = ref(false);
42
+
43
+ const sysConfig = storageLocal.getItem(kSYSCONFIG) || {};
44
+
45
+ function getDefaultActive(routePath) {
46
+ const wholeMenus = usePermissionStoreHook().wholeMenus;
47
+ // 当前路由的父级路径
48
+ const parentRoutes = getParentPaths(routePath, wholeMenus)[0];
49
+ defaultActive.value = findRouteByPath(parentRoutes, wholeMenus)?.children[0]?.path;
50
+ }
51
+
52
+ onMounted(() => {
53
+ getDefaultActive(route.path);
54
+ });
55
+
56
+ nextTick(() => {
57
+ menuRef.value?.handleResize();
58
+ });
59
+
60
+ watch(
61
+ () => route.path,
62
+ () => {
63
+ getDefaultActive(route.path);
64
+ }
65
+ );
66
+
67
+ const handleResetPwd = (): void => {
68
+ record.id = userInfo['id'];
69
+ showModal.value = true;
70
+ };
71
+
72
+ const handleScroll = e => {
73
+ const wheelDelta = e.wheelDelta || -e.deltaY * 40;
74
+ const scrollbar = refScrollbar.value;
75
+ // scrollbar.wrap$获取到包裹容器的element对象
76
+ scrollbar.setScrollLeft(scrollbar.wrapRef.scrollLeft + wheelDelta);
77
+ };
78
+ </script>
79
+
80
+ <template>
81
+ <div v-if="device !== 'mobile'" class="horizontal-header">
82
+ <div
83
+ :class="classes.container"
84
+ :title="appHook.sidebar.opened ? $t('message.udp.collapse') : $t('message.udp.expand')"
85
+ @click="toggleSideBar"
86
+ >
87
+ <svg
88
+ :fill="useEpThemeStoreHook().fill"
89
+ :class="['hamburger', appHook.sidebar.opened ? 'is-active-hamburger' : '']"
90
+ viewBox="0 0 1024 1024"
91
+ xmlns="http://www.w3.org/2000/svg"
92
+ width="64"
93
+ height="64"
94
+ >
95
+ <path
96
+ d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"
97
+ />
98
+ </svg>
99
+ </div>
100
+
101
+ <el-scrollbar ref="refScrollbar" style="max-width: 66%" @wheel.prevent="handleScroll">
102
+ <template #default>
103
+ <el-menu
104
+ ref="menu"
105
+ :default-active="defaultActive"
106
+ :ellipsis="false"
107
+ class="horizontal-header-menu"
108
+ mode="horizontal"
109
+ router
110
+ >
111
+ <el-menu-item
112
+ v-for="route in usePermissionStoreHook().wholeMenus"
113
+ :key="route.path"
114
+ :index="resolvePath(route) || route.redirect"
115
+ >
116
+ <template #title>
117
+ <div v-if="toRaw(route.meta.icon)" :class="['sub-menu-icon', route.meta.icon]">
118
+ <component :is="useRenderIcon(route.meta && toRaw(route.meta.icon))" />
119
+ </div>
120
+ <!-- <span class="select-none">{{ transformI18n(route.meta.title) }}</span>
121
+ <FontIcon
122
+ v-if="route.meta.extraIcon"
123
+ width="30px"
124
+ height="30px"
125
+ style="position: absolute; right: 10px"
126
+ :icon="route.meta.extraIcon"
127
+ :svg="route.meta.extraIcon ? true : false"
128
+ /> -->
129
+ <div :style="getDivStyle">
130
+ <span class="select-none">
131
+ {{ transformI18n(route.meta.title) }}
132
+ </span>
133
+ <extraIcon :extra-icon="route.meta.extraIcon" />
134
+ </div>
135
+ </template>
136
+ </el-menu-item>
137
+ </el-menu>
138
+ </template>
139
+ </el-scrollbar>
140
+ <div class="horizontal-header-right">
141
+ <!-- 业务单元选择 -->
142
+ <OrgSelect v-if="sysConfig['orgTaggle'] === 'Y'" />
143
+ <!-- 菜单搜索 -->
144
+ <Search />
145
+ <!-- 通知 -->
146
+ <!-- <Notice id="header-notice" /> -->
147
+ <!-- 国际化 -->
148
+ <el-dropdown id="header-translation" trigger="click">
149
+ <globalization class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-hidden" />
150
+ <template #dropdown>
151
+ <el-dropdown-menu class="translation">
152
+ <el-dropdown-item
153
+ :style="getDropdownItemStyle(locale, 'zh')"
154
+ :class="['dark:text-white!', getDropdownItemClass(locale, 'zh')]"
155
+ @click="translationCh"
156
+ >
157
+ <span v-show="locale === 'zh'" class="check-zh">
158
+ <IconifyIconOffline icon="ri:check-line" />
159
+ </span>
160
+ 简体中文
161
+ </el-dropdown-item>
162
+ <el-dropdown-item
163
+ :style="getDropdownItemStyle(locale, 'en')"
164
+ :class="['dark:text-white!', getDropdownItemClass(locale, 'en')]"
165
+ @click="translationEn"
166
+ >
167
+ <span v-show="locale === 'en'" class="check-en">
168
+ <IconifyIconOffline icon="ri:check-line" />
169
+ </span>
170
+ English
171
+ </el-dropdown-item>
172
+ </el-dropdown-menu>
173
+ </template>
174
+ </el-dropdown>
175
+ <!-- 退出登陆 -->
176
+ <el-dropdown trigger="click">
177
+ <span class="select-none el-dropdown-link navbar-bg-hover">
178
+ <img v-if="avatars" :src="avatars" :style="avatarsStyle" />
179
+ <p class="dark:text-white">{{ userInfo.name }}</p>
180
+ </span>
181
+ <template #dropdown>
182
+ <el-dropdown-menu class="logout">
183
+ <el-dropdown-item @click="handleResetPwd">
184
+ <IconifyIconOffline icon="ri:edit-2-fill" />
185
+ {{ $t('message.udp.passwordReset') }}
186
+ </el-dropdown-item>
187
+ <el-divider style="margin: 3px 0 !important" />
188
+ <el-dropdown-item @click="logout">
189
+ <IconifyIconOffline icon="switch-button" />
190
+ {{ $t('message.udp.logout') }}
191
+ </el-dropdown-item>
192
+ </el-dropdown-menu>
193
+ </template>
194
+ </el-dropdown>
195
+ <span class="el-icon-setting navbar-bg-hover" @click="onPanel">
196
+ <IconifyIconOffline icon="ri:settings-5-fill" />
197
+ </span>
198
+ </div>
199
+
200
+ <ut-modal-form
201
+ v-if="showModal"
202
+ :record="record"
203
+ :items="passwordItems()"
204
+ :width="360"
205
+ :height="240"
206
+ :title="$t('message.udp.passwordReset')"
207
+ data-status="update"
208
+ url="/uums/user/updatePwd"
209
+ method="put"
210
+ @close="showModal = false"
211
+ />
212
+ </div>
213
+ </template>
214
+
215
+ <style module="classes" scoped>
216
+ .container {
217
+ padding: 0 15px;
218
+ }
219
+ </style>
220
+
221
+ <style lang="scss" scoped>
222
+ .hamburger {
223
+ width: 20px;
224
+ height: 20px;
225
+
226
+ &:hover {
227
+ cursor: pointer;
228
+ }
229
+ }
230
+
231
+ .is-active-hamburger {
232
+ transform: rotate(180deg);
233
+ }
234
+
235
+ .translation {
236
+ ::v-deep(.el-dropdown-menu__item) {
237
+ padding: 5px 40px;
238
+ }
239
+
240
+ .check-zh {
241
+ position: absolute;
242
+ left: 20px;
243
+ }
244
+
245
+ .check-en {
246
+ position: absolute;
247
+ left: 20px;
248
+ }
249
+ }
250
+
251
+ .logout {
252
+ max-width: 120px;
253
+
254
+ ::v-deep(.el-dropdown-menu__item) {
255
+ display: inline-flex;
256
+ flex-wrap: wrap;
257
+ min-width: 100%;
258
+ }
259
+ }
260
+ </style>
@@ -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: 2025-11-03 15:01:34
5
+ * @LastEditTime: 2025-11-18 11:52:49
6
6
  * @Description: file content
7
7
  -->
8
8
  <script setup lang="ts">
@@ -18,8 +18,8 @@ const props = defineProps({
18
18
  const sysConfig = storageLocal.getItem(kSYSCONFIG) || {};
19
19
 
20
20
  const title = sysConfig['title'];
21
+ const showTitle = sysConfig['showTitle'];
21
22
  const logo = ref(sysConfig['logo'] || utogether);
22
- // console.log(logo);
23
23
  </script>
24
24
 
25
25
  <template>
@@ -30,7 +30,7 @@ const logo = ref(sysConfig['logo'] || utogether);
30
30
  </router-link>
31
31
  <router-link v-else key="expand" :title="title" class="sidebar-logo-link" to="/">
32
32
  <img :src="logo" class="ut-sidebar-logo h-10" />
33
- <span class="sidebar-title">{{ title }}</span>
33
+ <span v-if="showTitle === 'Y'" class="sidebar-title">{{ title }}</span>
34
34
  </router-link>
35
35
  </transition>
36
36
  </div>
package/src/main.ts CHANGED
@@ -32,21 +32,21 @@ import './style/index.scss';
32
32
 
33
33
  // import SuTable from './components/SuTable/SuTable.vue';
34
34
 
35
- import {
36
- // utLov2,
37
- // UtDivider,
38
- // UtModalForm2
39
- // FormUpload2,
40
- UtForm2,
41
- UtGrid2
42
- // UtContent2,
43
- // UtStampBadge2
44
- // UtModalGrid2
45
- // UtUpload2
46
- // UtIconSelect,
47
- // UtCalendar
48
- // uAttachment
49
- } from './components/udp';
35
+ // import {
36
+ // utLov2,
37
+ // UtDivider,
38
+ // UtModalForm2
39
+ // FormUpload2,
40
+ // UtForm2,
41
+ // UtGrid2
42
+ // UtContent2,
43
+ // UtStampBadge2
44
+ // UtModalGrid2
45
+ // UtUpload2
46
+ // UtIconSelect,
47
+ // UtCalendar
48
+ // uAttachment
49
+ // } from './components/udp';
50
50
 
51
51
  const app = createApp(App);
52
52
 
@@ -91,8 +91,8 @@ const init = ({ router, config, lang, views, env, tableConfig }) => {
91
91
  // app.component('uAttachment', uAttachment).component('UGrid', UGrid);
92
92
  // .component('UtDivider', UtDivider)
93
93
  // app.component('UtModalForm2', UtModalForm2);
94
- app.component('UtGrid2', UtGrid2);
95
- app.component('UtForm2', UtForm2);
94
+ // app.component('UtGrid2', UtGrid2);
95
+ // app.component('UtForm2', UtForm2);
96
96
  // app.component('UtModalGrid2', UtModalGrid2);
97
97
  // .component('UtIconSelect', UtIconSelect)
98
98
  // app.component('FormUpload2', FormUpload2);