fix: 修复锁定屏幕和退出登录小部件,位置在 user-dropdown 时,使用快捷键唤出两个模态窗
This commit is contained in:
@@ -69,6 +69,24 @@ const {
|
|||||||
const slots = useSlots();
|
const slots = useSlots();
|
||||||
const { refresh } = useRefresh();
|
const { refresh } = useRefresh();
|
||||||
|
|
||||||
|
const showLockInHeader = computed(
|
||||||
|
() =>
|
||||||
|
preferences.widget.lockScreen &&
|
||||||
|
preferences.widget.lockScreenButtonPosition === 'header',
|
||||||
|
);
|
||||||
|
|
||||||
|
const showLogoutInHeader = computed(
|
||||||
|
() => preferences.widget.logoutButtonPosition === 'header',
|
||||||
|
);
|
||||||
|
|
||||||
|
const enableLockScreenShortcutKey = computed(() => {
|
||||||
|
return showLockInHeader.value && globalLockScreenShortcutKey.value;
|
||||||
|
});
|
||||||
|
|
||||||
|
const enableLogoutShortcutKey = computed(() => {
|
||||||
|
return showLogoutInHeader.value && globalLogoutShortcutKey.value;
|
||||||
|
});
|
||||||
|
|
||||||
const [LockModal, lockModalApi] = useVbenModal({
|
const [LockModal, lockModalApi] = useVbenModal({
|
||||||
connectedComponent: LockScreenModal,
|
connectedComponent: LockScreenModal,
|
||||||
});
|
});
|
||||||
@@ -104,7 +122,7 @@ if (preferences.shortcutKeys.enable) {
|
|||||||
|
|
||||||
if (lockKey) {
|
if (lockKey) {
|
||||||
whenever(lockKey, () => {
|
whenever(lockKey, () => {
|
||||||
if (globalLockScreenShortcutKey?.value) {
|
if (enableLockScreenShortcutKey.value) {
|
||||||
handleOpenLock();
|
handleOpenLock();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -112,7 +130,7 @@ if (preferences.shortcutKeys.enable) {
|
|||||||
|
|
||||||
if (logoutKey) {
|
if (logoutKey) {
|
||||||
whenever(logoutKey, () => {
|
whenever(logoutKey, () => {
|
||||||
if (globalLogoutShortcutKey?.value) {
|
if (enableLogoutShortcutKey.value) {
|
||||||
handleLogout();
|
handleLogout();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -242,13 +260,14 @@ function clearPreferencesAndLogout() {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<LockModal
|
<LockModal
|
||||||
v-if="preferences.widget.lockScreen"
|
v-if="showLockInHeader"
|
||||||
:avatar="avatar"
|
:avatar="avatar"
|
||||||
:text="text"
|
:text="text"
|
||||||
@submit="handleSubmitLock"
|
@submit="handleSubmitLock"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<LogoutModal
|
<LogoutModal
|
||||||
|
v-if="showLogoutInHeader"
|
||||||
:cancel-text="$t('common.cancel')"
|
:cancel-text="$t('common.cancel')"
|
||||||
:confirm-text="$t('common.confirm')"
|
:confirm-text="$t('common.confirm')"
|
||||||
:fullscreen-button="false"
|
:fullscreen-button="false"
|
||||||
|
|||||||
@@ -212,13 +212,6 @@ const enableLockScreenShortcutKey = computed(() => {
|
|||||||
return showLockInDropdown.value && globalLockScreenShortcutKey.value;
|
return showLockInDropdown.value && globalLockScreenShortcutKey.value;
|
||||||
});
|
});
|
||||||
|
|
||||||
const enableShortcutKey = computed(() => {
|
|
||||||
return (
|
|
||||||
(showLockInDropdown.value || showLogoutInDropdown.value) &&
|
|
||||||
preferences.shortcutKeys.enable
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
function handleOpenLock() {
|
function handleOpenLock() {
|
||||||
lockModalApi.open();
|
lockModalApi.open();
|
||||||
}
|
}
|
||||||
@@ -269,7 +262,7 @@ async function handleLocaleChange(event: Event, value: 'en-US' | 'zh-CN') {
|
|||||||
openPopover.value = false;
|
openPopover.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enableShortcutKey.value) {
|
if (preferences.shortcutKeys.enable) {
|
||||||
const keys = useMagicKeys();
|
const keys = useMagicKeys();
|
||||||
const logoutKey = keys['Alt+KeyQ'];
|
const logoutKey = keys['Alt+KeyQ'];
|
||||||
const lockKey = keys['Alt+KeyL'];
|
const lockKey = keys['Alt+KeyL'];
|
||||||
|
|||||||
Reference in New Issue
Block a user