Files
nl-admin-view/apps/web-antdv-next/src/app.vue

51 lines
1.1 KiB
Vue
Raw Normal View History

2026-02-08 23:00:19 +08:00
<script lang="ts" setup>
import { computed, watch } from 'vue';
2026-02-08 23:00:19 +08:00
import { useAntdDesignTokens } from '@vben/hooks';
import { preferences, usePreferences } from '@vben/preferences';
import { App, ConfigProvider, StyleProvider, theme } from 'antdv-next';
2026-02-08 23:00:19 +08:00
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 },
);
2026-02-08 23:00:19 +08:00
</script>
<template>
<!-- layer: antd 组件样式注入 @layer antd Tailwind 工具类可以覆盖组件样式 -->
<StyleProvider layer>
<ConfigProvider :locale="antdLocale" :theme="tokenTheme">
<App>
<RouterView />
</App>
</ConfigProvider>
</StyleProvider>
2026-02-08 23:00:19 +08:00
</template>