| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <script lang="ts" setup>
- import { computed } from 'vue';
- import { useAntdDesignTokens } from '@velofex/hooks';
- import { preferences, usePreferences } from '@velofex/preferences';
- import { App, ConfigProvider, theme } from 'antdv-next';
- import { antdLocale } from '#/locales';
- defineOptions({ name: 'App' });
- const { isDark } = usePreferences();
- const { tokens } = useAntdDesignTokens();
- const antFontFamily =
- "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'";
- const tokenTheme = computed(() => {
- const algorithm = isDark.value
- ? [theme.darkAlgorithm]
- : [theme.defaultAlgorithm];
- // antd 紧凑模式算法
- if (preferences.app.compact) {
- algorithm.push(theme.compactAlgorithm);
- }
- return {
- algorithm,
- token: {
- ...tokens,
- fontFamily: antFontFamily,
- fontSize: 14,
- lineHeight: 22 / 14,
- },
- };
- });
- </script>
- <template>
- <ConfigProvider :locale="antdLocale" :theme="tokenTheme">
- <App>
- <RouterView />
- </App>
- </ConfigProvider>
- </template>
|