@utogether/udp-core 1.0.1-beta.16 → 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 (122) hide show
  1. package/build/plugins.ts +39 -39
  2. package/dist/{403-RBzulrcG.js → 403-C3cfjZIT.js} +1 -1
  3. package/dist/{404-DX-dU_6C.js → 404-Bg3j7QIo.js} +1 -1
  4. package/dist/{500-BCTk0__d.js → 500-CMT7Zyy7.js} +1 -1
  5. package/dist/{AuthorityInfo-BADTOenq.js → AuthorityInfo-B1mvqs4x.js} +1 -1
  6. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-Cv46yAx_.js → AuthorityInfo.vue_vue_type_style_index_0_lang-DwoW7QWO.js} +1 -1
  7. package/dist/{Company-B-61KrWd.js → Company-qTguidK8.js} +3 -3
  8. package/dist/{CompanyPanel-CawSrEff.js → CompanyPanel-BBC-o-k3.js} +8 -8
  9. package/dist/{Department-CrzJPtvP.js → Department-C3mKZOnK.js} +3 -3
  10. package/dist/{DepartmentPanel-DYuL8H-j.js → DepartmentPanel-CNdpOHBT.js} +3 -3
  11. package/dist/{DesignPanel-DEAv6V68.js → DesignPanel-D9jrRCoG.js} +1 -1
  12. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-BsnXZ2td.js → DesignPanel.vue_vue_type_style_index_0_lang-A-Aj1Hl0.js} +2 -2
  13. package/dist/{DictView-BuO-2b-c.js → DictView-CgdVkSiP.js} +1 -1
  14. package/dist/{InvOrganization-CBgKBJAn.js → InvOrganization-RE7s3vBq.js} +1 -1
  15. package/dist/{Org-BaQw2r-o.js → Org-wXDGvTrS.js} +1 -1
  16. package/dist/{Preview-DvCrmKNk.js → Preview-Pvt1__BV.js} +1 -1
  17. package/dist/{ReportDefine-DyhWz0as.js → ReportDefine-xEQsgFyv.js} +1 -1
  18. package/dist/{ReportDesign-DgZ2f2zv.js → ReportDesign-jOSuEFH9.js} +2 -2
  19. package/dist/{ReportQuery-DTZYbCDi.js → ReportQuery-DxEmmGiN.js} +1 -1
  20. package/dist/{ReportQueryFrom-B-vtJegP.js → ReportQueryFrom-CFlxfS5M.js} +1 -1
  21. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-D6izgxph.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-iHpiYz8f.js} +1 -1
  22. package/dist/{ReportTemplate-DA1ZqKGf.js → ReportTemplate-Dtz3aet7.js} +1 -1
  23. package/dist/{Role-mbqoav5t.js → Role-B_NsHIyE.js} +3 -3
  24. package/dist/{RoleAssign-ltEJIEcr.js → RoleAssign-C9wm4zq4.js} +8 -8
  25. package/dist/{RolePanel-u90v9eS0.js → RolePanel-BlHidBR0.js} +1 -1
  26. package/dist/{RolePanel-1g1a-G8D.js → RolePanel-DWM9mfNs.js} +1 -1
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-D9YxpGnt.js → RolePanel.vue_vue_type_script_setup_true_lang-Cn4RRzXm.js} +1 -1
  28. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-LC4Egk-Q.js → RolePanel.vue_vue_type_script_setup_true_lang-DVQ9aqb1.js} +3 -3
  29. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DZ3W1epK.js → ScrollPanel.vue_vue_type_style_index_0_lang-CCm-_i8O.js} +1 -1
  30. package/dist/{Staff-CJ2GgCL3.js → Staff-BfDc61QS.js} +3 -3
  31. package/dist/{StaffInfo-3KkodDCK.js → StaffInfo-BaJFo4mg.js} +1 -1
  32. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-CW-isIxJ.js → StaffInfo.vue_vue_type_script_setup_true_lang-Bwj4x1wu.js} +1 -1
  33. package/dist/{StaffPanel-DoXPSoY5.js → StaffPanel-B6I2ZS6A.js} +1 -1
  34. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-DvhGnOMZ.js → StaffPanel.vue_vue_type_script_setup_true_lang-vbyS4w3V.js} +2 -2
  35. package/dist/{SysUser-BuIZhMPh.js → SysUser-B_r9LYc5.js} +2 -2
  36. package/dist/{SysUserPanel-t1GJcJGM.js → SysUserPanel-C4ajcHPV.js} +1 -1
  37. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-CDDkFLlN.js → SysUserPanel.vue_vue_type_script_setup_true_lang-8Q0VvC9B.js} +43 -39
  38. package/dist/{SystemMenu-DuLEL6_l.js → SystemMenu-CyPG23uP.js} +2 -2
  39. package/dist/{UserInfo-WWby4lts.js → UserInfo-BkoGt4ib.js} +1 -1
  40. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-B06ZSrJV.js → UserInfo.vue_vue_type_style_index_0_lang-DrzF1YYG.js} +1 -1
  41. package/dist/{childView-B0-EAoAi.js → childView-9vEO8ymO.js} +1 -1
  42. package/dist/{childView-IYY4L8VK.js → childView-Dh0NyiQe.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-CjF8nZuj.js → childView.vue_vue_type_style_index_0_lang-BOeoZuAK.js} +2 -2
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-B56v6yK7.js → childView.vue_vue_type_style_index_0_lang-CMOjfXBX.js} +1 -1
  45. package/dist/{code-rule-DDLdi3pP.js → code-rule-C7jI_1gJ.js} +1 -1
  46. package/dist/core.es.js +1 -1
  47. package/dist/{cron-task-p3-AFN1w.js → cron-task-Dg9DJXvv.js} +1 -1
  48. package/dist/{frameView-B_WAZErD.js → frameView-CeR-_hjB.js} +1 -1
  49. package/dist/{index-24fnvUBy.js → index-Bb7gIEvu.js} +611 -569
  50. package/dist/{layoutView-CoEp2afn.js → layoutView-wsLHrEeX.js} +1340 -1337
  51. package/dist/{login-DP0oP70W.js → login-CluzzdqH.js} +2 -2
  52. package/dist/{lov-view-BDoZRK-v.js → lov-view-BvQCvwbW.js} +2 -2
  53. package/dist/{menuInfo-5Xls76qB.js → menuInfo-B8RLelIC.js} +1 -1
  54. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-BfZczW9a.js → menuInfo.vue_vue_type_style_index_0_lang-DvkapEZr.js} +1 -1
  55. package/dist/{pda-app-DxGYn4G7.js → pda-app-D3LNmD9a.js} +2 -2
  56. package/dist/{resource-BnYWe_-Q.js → resource-D8JA_03-.js} +1 -1
  57. package/dist/{su-welcome-B2rNhhDH.js → su-welcome-BjxeEKSo.js} +1 -1
  58. package/dist/{sys-config-Bb4WkxZK.js → sys-config-sbeLk9bP.js} +1 -1
  59. package/dist/udp-core.css +1 -9
  60. package/index.ts +48 -48
  61. package/package.json +1 -1
  62. package/src/App.vue +65 -65
  63. package/src/components/SuCharts/src/UserInfo.vue +78 -78
  64. package/src/components/SuScrollTree/ScrollPanel.vue +170 -175
  65. package/src/components/udp/{grid.vue → grid/index.vue} +27 -24
  66. package/src/components/udp/index.ts +2 -9
  67. package/src/components/udp/utils.ts +60 -107
  68. package/src/layout/components/lay-navbar/index.vue +239 -239
  69. package/src/layout/components/lay-panel/index.vue +150 -150
  70. package/src/layout/components/lay-search/index.vue +25 -25
  71. package/src/layout/components/lay-select-org/index.vue +64 -64
  72. package/src/layout/components/lay-sidebar/horizontal.vue +190 -190
  73. package/src/layout/components/lay-sidebar/mixNav.vue +260 -260
  74. package/src/layout/components/lay-sidebar/sidebar-logo.vue +92 -92
  75. package/src/layout/components/lay-tag/index.vue +20 -48
  76. package/src/layout/hooks/useNav.ts +173 -173
  77. package/src/layout/hooks/useTag.ts +5 -3
  78. package/src/layout/types.ts +3 -2
  79. package/src/main.ts +9 -6
  80. package/src/plugins/i18n/en.ts +302 -302
  81. package/src/plugins/i18n/zh.ts +356 -354
  82. package/src/plugins/vxe-table/index.ts +116 -53
  83. package/src/plugins/vxe-table/render.tsx +956 -956
  84. package/src/router/index.ts +186 -177
  85. package/src/router/modules/remaining.ts +58 -58
  86. package/src/router/utils.ts +393 -377
  87. package/src/store/modules/app.ts +1 -3
  88. package/src/store/modules/multiTags.ts +110 -109
  89. package/src/store/modules/permission.ts +113 -100
  90. package/src/style/button.scss +85 -85
  91. package/src/style/login.css +336 -336
  92. package/src/style/vxetable.scss +13 -3
  93. package/src/views/organization/company/CompanyPanel.vue +259 -259
  94. package/src/views/organization/department/DepartmentPanel.vue +269 -283
  95. package/src/views/system/menu/SystemMenu.vue +183 -183
  96. package/src/views/system/menu/menuInfo.vue +363 -363
  97. package/src/views/system/role/UserInfo.vue +195 -195
  98. package/src/views/system/role-assign/RoleAssign.vue +57 -57
  99. package/src/views/system/role-assign/RolePanel.vue +139 -139
  100. package/src/views/system/sys/sys-config.vue +336 -336
  101. package/src/views/system/sysUser/SysUserPanel.vue +279 -278
  102. package/src/views/uapp/pda/pda-app.vue +208 -208
  103. package/src/views/udev/dict/DictView.vue +118 -118
  104. package/src/views/udev/dict/childView.vue +1 -1
  105. package/src/views/udev/lov/lov-view.vue +91 -91
  106. package/src/views/ulogin/login.vue +323 -323
  107. package/src/views/upms/interface/log-out.vue +101 -101
  108. package/src/views/urpt/design/DesignPanel.vue +507 -507
  109. package/types/global.d.ts +230 -230
  110. package/src/components/udp/count-down.vue +0 -536
  111. package/src/components/udp/flip-down/FlipCard/flip-card.vue +0 -251
  112. package/src/components/udp/flip-down/FlipCard/interfaces.ts +0 -4
  113. package/src/components/udp/flip-down/FlipClock/flip-clock.vue +0 -113
  114. package/src/components/udp/form-upload.vue +0 -482
  115. package/src/components/udp/form.vue +0 -112
  116. package/src/components/udp/lov.vue +0 -388
  117. package/src/components/udp/modal-form.vue +0 -190
  118. package/src/components/udp/modal-grid.vue +0 -298
  119. package/src/components/udp/upload.vue +0 -423
  120. package/src/utils/udp/http/index.ts +0 -294
  121. package/src/utils/udp/http/types.d.ts +0 -49
  122. package/src/utils/udp/useRender.ts +0 -431
@@ -1,190 +1,190 @@
1
- <script setup lang="ts">
2
- import { ref, nextTick } from 'vue';
3
- import { storageLocal } from '@utogether/utils';
4
- import { useNav } from '../../hooks/useNav';
5
- import OrgSelect from '../lay-select-org/index.vue';
6
- import Search from '../lay-search/index.vue';
7
- // import Notice from '../lay-notice/index.vue';
8
- import SidebarItem from './sidebarItem.vue';
9
- import avatars from '../../../assets/images/avatars.jpg';
10
- import { kSYSCONFIG } from '../../../contant';
11
- import { useTranslationLang } from '../../hooks/useTranslationLang';
12
- import globalization from '../../../assets/svg/globalization.svg?component';
13
-
14
- import utogether from '../../../assets/images/utogether.png';
15
- import { usePermissionStoreHook } from '../../../store/modules/permission';
16
-
17
- const menuRef = ref();
18
- const { route, locale, translationCh, translationEn } = useTranslationLang(menuRef);
19
- const routeStore = usePermissionStoreHook();
20
-
21
- const sysConfig = storageLocal.getItem(kSYSCONFIG) || {};
22
-
23
- const logo = ref(sysConfig['logo'] || utogether);
24
-
25
- const {
26
- title,
27
- logout,
28
- backHome,
29
- onPanel,
30
- userInfo,
31
- avatarsStyle,
32
- getDropdownItemStyle,
33
- getDropdownItemClass,
34
- passwordItems
35
- } = useNav();
36
-
37
- const record: IRecord = {};
38
-
39
- const refScrollbar = ref(null);
40
- const showModal = ref(false);
41
-
42
- nextTick(() => {
43
- menuRef.value?.handleResize();
44
- });
45
-
46
- /**
47
- * @description: 重置密码
48
- */
49
- const handleResetPwd = (): void => {
50
- record.id = userInfo['id'];
51
- showModal.value = true;
52
- };
53
-
54
- const handleScroll = e => {
55
- const wheelDelta = e.wheelDelta || -e.deltaY * 40;
56
- const scrollbar = refScrollbar.value;
57
- // scrollbar.wrap$获取到包裹容器的element对象
58
- scrollbar.setScrollLeft(scrollbar.wrapRef.scrollLeft + wheelDelta);
59
- };
60
- </script>
61
- <script lang="ts">
62
- export default { name: 'LayoutHorizontal' };
63
- </script>
64
- <template>
65
- <div v-spinning="usePermissionStoreHook().wholeMenus.length === 0" class="horizontal-header">
66
- <div class="flex flex-1 horizontal-header-left" @click="backHome">
67
- <img :src="logo" class="h-full" />
68
- <span class="text-xl u-project-text">{{ title }}</span>
69
- </div>
70
- <el-scrollbar ref="refScrollbar" class="flex-[3]" @wheel.prevent="handleScroll">
71
- <template #default>
72
- <el-menu
73
- :default-active="route.path"
74
- :ellipsis="false"
75
- unique-opened
76
- router
77
- popper-class="udp-scrollbar"
78
- class="horizontal-header-menu"
79
- mode="horizontal"
80
- >
81
- <sidebar-item
82
- v-for="route in routeStore.wholeMenus"
83
- :key="route.path"
84
- :item="route"
85
- :base-path="route.path"
86
- />
87
- </el-menu>
88
- </template>
89
- </el-scrollbar>
90
- <div class="horizontal-header-right flex-[2]">
91
- <!-- 业务单元选择 -->
92
- <OrgSelect v-if="sysConfig['orgTaggle'] === 'Y'" class="udp-horizontal" />
93
- <!-- 菜单搜索 -->
94
- <Search />
95
- <!-- 通知 -->
96
- <!-- <Notice id="header-notice" /> -->
97
- <!-- 国际化 -->
98
- <el-dropdown id="header-translation" class="px-2" trigger="click">
99
- <globalization class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-hidden" />
100
- <template #dropdown>
101
- <el-dropdown-menu class="translation">
102
- <el-dropdown-item
103
- :style="getDropdownItemStyle(locale, 'zh')"
104
- :class="['dark:text-white!', getDropdownItemClass(locale, 'zh')]"
105
- @click="translationCh"
106
- >
107
- <span v-show="locale === 'zh'" class="check-zh">
108
- <IconifyIconOffline icon="check" />
109
- </span>
110
- 简体中文
111
- </el-dropdown-item>
112
- <el-dropdown-item
113
- :style="getDropdownItemStyle(locale, 'en')"
114
- :class="['dark:text-white!', getDropdownItemClass(locale, 'en')]"
115
- @click="translationEn"
116
- >
117
- <span v-show="locale === 'en'" class="check-en">
118
- <IconifyIconOffline icon="check" />
119
- </span>
120
- English
121
- </el-dropdown-item>
122
- </el-dropdown-menu>
123
- </template>
124
- </el-dropdown>
125
- <!-- 退出登录 -->
126
- <el-dropdown trigger="click">
127
- <span class="el-dropdown-link navbar-bg-hover">
128
- <img v-if="avatars" :src="avatars" :style="avatarsStyle" />
129
- <p class="dark:text-white">{{ userInfo.name }}</p>
130
- </span>
131
- <template #dropdown>
132
- <el-dropdown-menu class="user-dropdown">
133
- <el-dropdown-item @click="handleResetPwd">
134
- <IconifyIconOffline icon="edit" />
135
- {{ $t('message.udp.passwordReset') }}</el-dropdown-item
136
- >
137
- <el-divider style="margin: 3px 0 !important" />
138
- <el-dropdown-item @click="logout">
139
- <IconifyIconOffline icon="switch-button" />
140
- {{ $t('message.udp.logout') }}
141
- </el-dropdown-item>
142
- </el-dropdown-menu>
143
- </template>
144
- </el-dropdown>
145
- <span class="el-icon-setting navbar-bg-hover" @click="onPanel">
146
- <IconifyIconOffline icon="ri:settings-5-fill" />
147
- </span>
148
- </div>
149
- <ut-modal-form
150
- v-if="showModal"
151
- :record="record"
152
- :items="passwordItems()"
153
- :width="360"
154
- :height="240"
155
- :title="$t('message.udp.passwordReset')"
156
- data-status="update"
157
- url="/user/updatePwd"
158
- method="put"
159
- @close="showModal = false"
160
- />
161
- </div>
162
- </template>
163
-
164
- <style lang="scss" scoped>
165
- .translation {
166
- ::v-deep(.el-dropdown-menu__item) {
167
- padding: 5px 40px;
168
- }
169
-
170
- .check-zh {
171
- position: absolute;
172
- left: 20px;
173
- }
174
-
175
- .check-en {
176
- position: absolute;
177
- left: 20px;
178
- }
179
- }
180
-
181
- .logout {
182
- max-width: 120px;
183
-
184
- ::v-deep(.el-dropdown-menu__item) {
185
- display: inline-flex;
186
- flex-wrap: wrap;
187
- min-width: 100%;
188
- }
189
- }
190
- </style>
1
+ <script setup lang="ts">
2
+ import { ref, nextTick } from 'vue';
3
+ import { storageLocal } from '@utogether/utils';
4
+ import { useNav } from '../../hooks/useNav';
5
+ import OrgSelect from '../lay-select-org/index.vue';
6
+ import Search from '../lay-search/index.vue';
7
+ // import Notice from '../lay-notice/index.vue';
8
+ import SidebarItem from './sidebarItem.vue';
9
+ import avatars from '../../../assets/images/avatars.jpg';
10
+ import { kSYSCONFIG } from '../../../contant';
11
+ import { useTranslationLang } from '../../hooks/useTranslationLang';
12
+ import globalization from '../../../assets/svg/globalization.svg?component';
13
+
14
+ import utogether from '../../../assets/images/utogether.png';
15
+ import { usePermissionStoreHook } from '../../../store/modules/permission';
16
+
17
+ const menuRef = ref();
18
+ const { route, locale, translationCh, translationEn } = useTranslationLang(menuRef);
19
+ const routeStore = usePermissionStoreHook();
20
+
21
+ const sysConfig = storageLocal.getItem(kSYSCONFIG) || {};
22
+
23
+ const logo = ref(sysConfig['logo'] || utogether);
24
+
25
+ const {
26
+ title,
27
+ logout,
28
+ backHome,
29
+ onPanel,
30
+ userInfo,
31
+ avatarsStyle,
32
+ getDropdownItemStyle,
33
+ getDropdownItemClass,
34
+ passwordItems
35
+ } = useNav();
36
+
37
+ const record: IRecord = {};
38
+
39
+ const refScrollbar = ref(null);
40
+ const showModal = ref(false);
41
+
42
+ nextTick(() => {
43
+ menuRef.value?.handleResize();
44
+ });
45
+
46
+ /**
47
+ * @description: 重置密码
48
+ */
49
+ const handleResetPwd = (): void => {
50
+ record.id = userInfo['id'];
51
+ showModal.value = true;
52
+ };
53
+
54
+ const handleScroll = e => {
55
+ const wheelDelta = e.wheelDelta || -e.deltaY * 40;
56
+ const scrollbar = refScrollbar.value;
57
+ // scrollbar.wrap$获取到包裹容器的element对象
58
+ scrollbar.setScrollLeft(scrollbar.wrapRef.scrollLeft + wheelDelta);
59
+ };
60
+ </script>
61
+ <script lang="ts">
62
+ export default { name: 'LayoutHorizontal' };
63
+ </script>
64
+ <template>
65
+ <div v-spinning="usePermissionStoreHook().wholeMenus.length === 0" class="horizontal-header">
66
+ <div class="flex flex-1 horizontal-header-left" @click="backHome">
67
+ <img :src="logo" class="h-full" />
68
+ <span class="text-xl u-project-text">{{ title }}</span>
69
+ </div>
70
+ <el-scrollbar ref="refScrollbar" class="flex-[3]" @wheel.prevent="handleScroll">
71
+ <template #default>
72
+ <el-menu
73
+ :default-active="route.path"
74
+ :ellipsis="false"
75
+ unique-opened
76
+ router
77
+ popper-class="udp-scrollbar"
78
+ class="horizontal-header-menu"
79
+ mode="horizontal"
80
+ >
81
+ <sidebar-item
82
+ v-for="route in routeStore.wholeMenus"
83
+ :key="route.path"
84
+ :item="route"
85
+ :base-path="route.path"
86
+ />
87
+ </el-menu>
88
+ </template>
89
+ </el-scrollbar>
90
+ <div class="horizontal-header-right flex-[2]">
91
+ <!-- 业务单元选择 -->
92
+ <OrgSelect v-if="sysConfig['orgTaggle'] === 'Y'" class="udp-horizontal" />
93
+ <!-- 菜单搜索 -->
94
+ <Search />
95
+ <!-- 通知 -->
96
+ <!-- <Notice id="header-notice" /> -->
97
+ <!-- 国际化 -->
98
+ <el-dropdown id="header-translation" class="px-2" trigger="click">
99
+ <globalization class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-hidden" />
100
+ <template #dropdown>
101
+ <el-dropdown-menu class="translation">
102
+ <el-dropdown-item
103
+ :style="getDropdownItemStyle(locale, 'zh')"
104
+ :class="['dark:text-white!', getDropdownItemClass(locale, 'zh')]"
105
+ @click="translationCh"
106
+ >
107
+ <span v-show="locale === 'zh'" class="check-zh">
108
+ <IconifyIconOffline icon="check" />
109
+ </span>
110
+ 简体中文
111
+ </el-dropdown-item>
112
+ <el-dropdown-item
113
+ :style="getDropdownItemStyle(locale, 'en')"
114
+ :class="['dark:text-white!', getDropdownItemClass(locale, 'en')]"
115
+ @click="translationEn"
116
+ >
117
+ <span v-show="locale === 'en'" class="check-en">
118
+ <IconifyIconOffline icon="check" />
119
+ </span>
120
+ English
121
+ </el-dropdown-item>
122
+ </el-dropdown-menu>
123
+ </template>
124
+ </el-dropdown>
125
+ <!-- 退出登录 -->
126
+ <el-dropdown trigger="click">
127
+ <span class="el-dropdown-link navbar-bg-hover">
128
+ <img v-if="avatars" :src="avatars" :style="avatarsStyle" />
129
+ <p class="dark:text-white">{{ userInfo.name }}</p>
130
+ </span>
131
+ <template #dropdown>
132
+ <el-dropdown-menu class="user-dropdown">
133
+ <el-dropdown-item @click="handleResetPwd">
134
+ <IconifyIconOffline icon="edit" />
135
+ {{ $t('message.udp.passwordReset') }}</el-dropdown-item
136
+ >
137
+ <el-divider style="margin: 3px 0 !important" />
138
+ <el-dropdown-item @click="logout">
139
+ <IconifyIconOffline icon="switch-button" />
140
+ {{ $t('message.udp.logout') }}
141
+ </el-dropdown-item>
142
+ </el-dropdown-menu>
143
+ </template>
144
+ </el-dropdown>
145
+ <span class="el-icon-setting navbar-bg-hover" @click="onPanel">
146
+ <IconifyIconOffline icon="ri:settings-5-fill" />
147
+ </span>
148
+ </div>
149
+ <ut-modal-form
150
+ v-if="showModal"
151
+ :record="record"
152
+ :items="passwordItems()"
153
+ :width="360"
154
+ :height="240"
155
+ :title="$t('message.udp.passwordReset')"
156
+ data-status="update"
157
+ url="/user/updatePwd"
158
+ method="put"
159
+ @close="showModal = false"
160
+ />
161
+ </div>
162
+ </template>
163
+
164
+ <style lang="scss" scoped>
165
+ .translation {
166
+ ::v-deep(.el-dropdown-menu__item) {
167
+ padding: 5px 40px;
168
+ }
169
+
170
+ .check-zh {
171
+ position: absolute;
172
+ left: 20px;
173
+ }
174
+
175
+ .check-en {
176
+ position: absolute;
177
+ left: 20px;
178
+ }
179
+ }
180
+
181
+ .logout {
182
+ max-width: 120px;
183
+
184
+ ::v-deep(.el-dropdown-menu__item) {
185
+ display: inline-flex;
186
+ flex-wrap: wrap;
187
+ min-width: 100%;
188
+ }
189
+ }
190
+ </style>