Browse Source

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

pull/4258/head
Li Kui 2 years ago
committed by GitHub
parent
commit
c6b9a56b73
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      packages/@core/ui-kit/layout-ui/src/vben-layout.vue
  2. 11
      packages/effects/layouts/src/basic/header/header.vue
  3. 5
      packages/effects/layouts/src/basic/layout.vue
  4. 8
      packages/effects/layouts/src/widgets/preferences/preferences-button.vue
  5. 1
      packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue

3
packages/@core/ui-kit/layout-ui/src/vben-layout.vue

@ -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;
}); });

11
packages/effects/layouts/src/basic/header/header.vue

@ -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]" />

5
packages/effects/layouts/src/basic/layout.vue

@ -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

8
packages/effects/layouts/src/widgets/preferences/preferences-button.vue

@ -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>

1
packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue

@ -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>

Loading…
Cancel
Save