chore: lazy load header widgets

This commit is contained in:
2026-06-12 16:18:49 +08:00
parent 8c5784e53a
commit b2664662b8
2 changed files with 24 additions and 11 deletions
+2 -2
View File
@@ -13,7 +13,7 @@ export const overridesPreferences = defineOverridesPreferences({
name: import.meta.env.VITE_APP_TITLE, name: import.meta.env.VITE_APP_TITLE,
enableRefreshToken: true, enableRefreshToken: true,
enableCheckUpdates: false, enableCheckUpdates: false,
enablePreferences: true, enablePreferences: false,
accessMode: 'mixed', accessMode: 'mixed',
authPageLayout: 'panel-center', authPageLayout: 'panel-center',
defaultHomePath: '/ai-platform/agent', defaultHomePath: '/ai-platform/agent',
@@ -24,7 +24,7 @@ export const overridesPreferences = defineOverridesPreferences({
enable: true, enable: true,
globalLockScreen: false, globalLockScreen: false,
globalLogout: true, globalLogout: true,
globalPreferences: true, globalPreferences: false,
globalSearch: true, globalSearch: true,
}, },
theme: { theme: {
@@ -1,20 +1,33 @@
<script lang="ts" setup> <script lang="ts" setup>
import { computed, useSlots } from 'vue'; import { computed, defineAsyncComponent, useSlots } from 'vue';
import { useRefresh } from '@vben/hooks'; import { useRefresh } from '@vben/hooks';
import { RotateCw } from '@vben/icons'; import { RotateCw } from '@vben/icons';
import { preferences, usePreferences } from '@vben/preferences'; import { preferences, usePreferences } from '@vben/preferences';
import { useAccessStore } from '@vben/stores'; import { useAccessStore } from '@vben/stores';
import { VbenFullScreen, VbenIconButton } from '@vben-core/shadcn-ui'; import { VbenIconButton } from '@vben-core/shadcn-ui';
import { const GlobalSearch = defineAsyncComponent(() =>
GlobalSearch, import('../../widgets/global-search').then((module) => module.GlobalSearch),
LanguageToggle, );
PreferencesButton, const LanguageToggle = defineAsyncComponent(
ThemeToggle, () => import('../../widgets/language-toggle.vue'),
TimezoneButton, );
} from '../../widgets'; const PreferencesButton = defineAsyncComponent(() =>
import('../../widgets/preferences').then((module) => module.PreferencesButton),
);
const ThemeToggle = defineAsyncComponent(() =>
import('../../widgets/theme-toggle').then((module) => module.ThemeToggle),
);
const TimezoneButton = defineAsyncComponent(() =>
import('../../widgets/timezone').then((module) => module.TimezoneButton),
);
const VbenFullScreen = defineAsyncComponent(() =>
import(
'../../../../../@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue'
),
);
interface Props { interface Props {
/** /**