chore: lazy load layout preferences

This commit is contained in:
2026-06-12 16:39:41 +08:00
parent df8336ccd8
commit f5f345d326
2 changed files with 17 additions and 5 deletions
@@ -4,7 +4,13 @@ import type { RouteLocationNormalizedLoaded } from 'vue-router';
import type { MenuRecordRaw } from '@vben/types';
import { computed, onMounted, useSlots, watch } from 'vue';
import {
computed,
defineAsyncComponent,
onMounted,
useSlots,
watch,
} from 'vue';
import { useRoute } from 'vue-router';
import { useRefresh } from '@vben/hooks';
@@ -18,9 +24,11 @@ import { useAccessStore } from '@vben/stores';
import { cloneDeep, mapTree } from '@vben/utils';
import { VbenAdminLayout } from '@vben-core/layout-ui';
import { VbenBackTop, VbenLogo } from '@vben-core/shadcn-ui';
import { Breadcrumb, CheckUpdates, Preferences } from '../widgets';
import VbenBackTop from '../../../../@core/ui-kit/shadcn-ui/src/components/back-top/back-top.vue';
import VbenLogo from '../../../../@core/ui-kit/shadcn-ui/src/components/logo/logo.vue';
import Breadcrumb from '../widgets/breadcrumb.vue';
import CheckUpdates from '../widgets/check-updates/check-updates.vue';
import { LayoutContent, LayoutContentSpinner } from './content';
import { Copyright } from './copyright';
import { LayoutFooter } from './footer';
@@ -36,6 +44,10 @@ import { LayoutTabbar } from './tabbar';
defineOptions({ name: 'BasicLayout' });
const Preferences = defineAsyncComponent(
() => import('../widgets/preferences/preferences.vue'),
);
const emit = defineEmits<{ clearPreferencesAndLogout: []; clickLogo: [] }>();
const {
@@ -1,14 +1,14 @@
<script lang="ts" setup>
import type { BreadcrumbStyleType } from '@vben/types';
import type { IBreadcrumb } from '@vben-core/shadcn-ui';
import type { IBreadcrumb } from '../../../../@core/ui-kit/shadcn-ui/src/components/breadcrumb/types';
import { computed } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { $t } from '@vben/locales';
import { VbenBreadcrumbView } from '@vben-core/shadcn-ui';
import VbenBreadcrumbView from '../../../../@core/ui-kit/shadcn-ui/src/components/breadcrumb/breadcrumb-view.vue';
interface Props {
hideWhenOnlyOne?: boolean;