| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <script lang="ts" setup>
- import { computed, watch } from 'vue';
- import { useAntdDesignTokens } from '@vben/hooks';
- import { preferences, usePreferences } from '@vben/preferences';
- import { App, ConfigProvider, theme } from 'antdv-next';
- import { antdLocale } from '#/locales';
- defineOptions({ name: 'App' });
- const { isDark } = usePreferences();
- const { tokens } = useAntdDesignTokens();
- const tokenTheme = computed(() => {
- const algorithm = isDark.value
- ? [theme.darkAlgorithm]
- : [theme.defaultAlgorithm];
- // antd 紧凑模式算法
- if (preferences.app.compact) {
- algorithm.push(theme.compactAlgorithm);
- }
- return {
- algorithm,
- token: tokens,
- };
- });
- watch(
- tokenTheme,
- (themeConfig) => {
- ConfigProvider.config({ theme: themeConfig });
- },
- { immediate: true },
- );
- </script>
- <template>
- <ConfigProvider :locale="antdLocale" :theme="tokenTheme">
- <App>
- <RouterView />
- </App>
- </ConfigProvider>
- </template>
|