fix: clearPreferencesAndLogout does not take effect when the preferences button is at the top (#4253)

pull/48/MERGE
Li Kui 2024-08-28 09:58:59 +08:00 committed by GitHub
parent 6d24369272
commit c6b9a56b73
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 21 additions and 7 deletions

View File

@ -184,9 +184,6 @@ const headerFixed = computed(() => {
}); });
const showSidebar = computed(() => { const showSidebar = computed(() => {
// if (isMixedNav.value && !props.sideHidden) {
// return false;
// }
return isSideMode.value && sidebarEnable.value; return isSideMode.value && sidebarEnable.value;
}); });

View File

@ -27,6 +27,8 @@ withDefaults(defineProps<Props>(), {
theme: 'light', theme: 'light',
}); });
const emit = defineEmits<{ clearPreferencesAndLogout: [] }>();
const accessStore = useAccessStore(); const accessStore = useAccessStore();
const { globalSearchShortcutKey, preferencesButtonPosition } = usePreferences(); const { globalSearchShortcutKey, preferencesButtonPosition } = usePreferences();
const slots = useSlots(); const slots = useSlots();
@ -90,6 +92,10 @@ const leftSlots = computed(() => {
}); });
return list.sort((a, b) => a.index - b.index); return list.sort((a, b) => a.index - b.index);
}); });
function clearPreferencesAndLogout() {
emit('clearPreferencesAndLogout');
}
</script> </script>
<template> <template>
@ -123,7 +129,10 @@ const leftSlots = computed(() => {
</template> </template>
<template v-else-if="slot.name === 'preferences'"> <template v-else-if="slot.name === 'preferences'">
<PreferencesButton class="mr-2" /> <PreferencesButton
class="mr-2"
@clear-preferences-and-logout="clearPreferencesAndLogout"
/>
</template> </template>
<template v-else-if="slot.name === 'theme-toggle'"> <template v-else-if="slot.name === 'theme-toggle'">
<ThemeToggle class="mr-2 mt-[2px]" /> <ThemeToggle class="mr-2 mt-[2px]" />

View File

@ -202,7 +202,10 @@ const headerSlots = computed(() => {
</template> </template>
<!-- 头部区域 --> <!-- 头部区域 -->
<template #header> <template #header>
<LayoutHeader :theme="theme"> <LayoutHeader
:theme="theme"
@clear-preferences-and-logout="clearPreferencesAndLogout"
>
<template <template
v-if="!showHeaderNav && preferences.breadcrumb.enable" v-if="!showHeaderNav && preferences.breadcrumb.enable"
#breadcrumb #breadcrumb

View File

@ -3,9 +3,15 @@ import { Settings } from '@vben/icons';
import { VbenIconButton } from '@vben-core/shadcn-ui'; import { VbenIconButton } from '@vben-core/shadcn-ui';
import Preferences from './preferences.vue'; import Preferences from './preferences.vue';
const emit = defineEmits<{ clearPreferencesAndLogout: [] }>();
function clearPreferencesAndLogout() {
emit('clearPreferencesAndLogout');
}
</script> </script>
<template> <template>
<Preferences> <Preferences @clear-preferences-and-logout="clearPreferencesAndLogout">
<VbenIconButton> <VbenIconButton>
<Settings class="size-4" /> <Settings class="size-4" />
</VbenIconButton> </VbenIconButton>

View File

@ -413,7 +413,6 @@ async function handleReset() {
variant="ghost" variant="ghost"
@click="handleClearCache" @click="handleClearCache"
> >
<!-- <RotateCw class="mr-2 size-4" /> -->
{{ $t('preferences.clearAndLogout') }} {{ $t('preferences.clearAndLogout') }}
</VbenButton> </VbenButton>
</template> </template>