|
@@ -18,6 +18,7 @@
|
|
<MenuItem key="depart" :text="t('layout.header.dropdownItemSwitchDepart')" icon="ant-design:cluster-outlined" />
|
|
<MenuItem key="depart" :text="t('layout.header.dropdownItemSwitchDepart')" icon="ant-design:cluster-outlined" />
|
|
<MenuItem key="cache" :text="t('layout.header.dropdownItemRefreshCache')" icon="ion:sync-outline" />
|
|
<MenuItem key="cache" :text="t('layout.header.dropdownItemRefreshCache')" icon="ion:sync-outline" />
|
|
<MenuItem key="modalCache" :text="t('layout.header.dropdownItemSwitchModal')" icon="ion:sync-outline" />
|
|
<MenuItem key="modalCache" :text="t('layout.header.dropdownItemSwitchModal')" icon="ion:sync-outline" />
|
|
|
|
+ <MenuItem key="switchTheme" :text="t('layout.header.dropdownItemSwitchTheme')" icon="ion:color-palette" />
|
|
<!-- <MenuItem
|
|
<!-- <MenuItem
|
|
v-if="getUseLockPage"
|
|
v-if="getUseLockPage"
|
|
key="lock"
|
|
key="lock"
|
|
@@ -30,6 +31,7 @@
|
|
</Dropdown>
|
|
</Dropdown>
|
|
<LockAction v-if="lockActionVisible" ref="lockActionRef" @register="register" />
|
|
<LockAction v-if="lockActionVisible" ref="lockActionRef" @register="register" />
|
|
<DepartSelect ref="loginSelectRef" />
|
|
<DepartSelect ref="loginSelectRef" />
|
|
|
|
+ <ThemeSelect ref="themeSelectRef" />
|
|
<UpdatePassword v-if="passwordVisible" ref="updatePasswordRef" />
|
|
<UpdatePassword v-if="passwordVisible" ref="updatePasswordRef" />
|
|
</template>
|
|
</template>
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
@@ -59,7 +61,7 @@
|
|
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
|
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
|
import { getRefPromise } from '/@/utils/index';
|
|
import { getRefPromise } from '/@/utils/index';
|
|
|
|
|
|
- type MenuEvent = 'logout' | 'doc' | 'lock' | 'cache' | 'depart' | 'modalCache';
|
|
|
|
|
|
+ type MenuEvent = 'logout' | 'doc' | 'lock' | 'cache' | 'depart' | 'modalCache' | 'switchTheme';
|
|
const { createMessage } = useMessage();
|
|
const { createMessage } = useMessage();
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
name: 'UserDropdown',
|
|
name: 'UserDropdown',
|
|
@@ -70,6 +72,7 @@
|
|
MenuDivider: Menu.Divider,
|
|
MenuDivider: Menu.Divider,
|
|
LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')),
|
|
LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')),
|
|
DepartSelect: createAsyncComponent(() => import('./DepartSelect.vue')),
|
|
DepartSelect: createAsyncComponent(() => import('./DepartSelect.vue')),
|
|
|
|
+ ThemeSelect: createAsyncComponent(() => import('./ThemeSelect.vue')),
|
|
UpdatePassword: createAsyncComponent(() => import('./UpdatePassword.vue')),
|
|
UpdatePassword: createAsyncComponent(() => import('./UpdatePassword.vue')),
|
|
},
|
|
},
|
|
props: {
|
|
props: {
|
|
@@ -175,6 +178,9 @@
|
|
case 'depart':
|
|
case 'depart':
|
|
updateCurrentDepart();
|
|
updateCurrentDepart();
|
|
break;
|
|
break;
|
|
|
|
+ case 'switchTheme':
|
|
|
|
+ updateTheme();
|
|
|
|
+ break;
|
|
case 'password':
|
|
case 'password':
|
|
updatePassword();
|
|
updatePassword();
|
|
break;
|
|
break;
|
|
@@ -186,6 +192,14 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 切换主题弹窗
|
|
|
|
+ */
|
|
|
|
+ const themeSelectRef = ref();
|
|
|
|
+ function updateTheme() {
|
|
|
|
+ themeSelectRef.value.show();
|
|
|
|
+ }
|
|
|
|
+
|
|
return {
|
|
return {
|
|
prefixCls,
|
|
prefixCls,
|
|
t,
|
|
t,
|
|
@@ -196,6 +210,7 @@
|
|
register,
|
|
register,
|
|
getUseLockPage,
|
|
getUseLockPage,
|
|
loginSelectRef,
|
|
loginSelectRef,
|
|
|
|
+ themeSelectRef,
|
|
updatePasswordRef,
|
|
updatePasswordRef,
|
|
passwordVisible,
|
|
passwordVisible,
|
|
lockActionVisible,
|
|
lockActionVisible,
|