app.vue 890 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <script lang="ts" setup>
  2. import { computed } from 'vue';
  3. import { GlobalProvider } from '@vben/common-ui';
  4. import { preferences, usePreferences } from '@vben/preferences';
  5. import { App, ConfigProvider, theme } from 'ant-design-vue';
  6. import { antdLocale } from '#/locales';
  7. defineOptions({ name: 'App' });
  8. const { isDark } = usePreferences();
  9. const tokenTheme = computed(() => {
  10. const algorithm = isDark.value
  11. ? [theme.darkAlgorithm]
  12. : [theme.defaultAlgorithm];
  13. // antd 紧凑模式算法
  14. if (preferences.app.compact) {
  15. algorithm.push(theme.compactAlgorithm);
  16. }
  17. return {
  18. algorithm,
  19. token: { colorPrimary: preferences.theme.colorPrimary },
  20. };
  21. });
  22. </script>
  23. <template>
  24. <GlobalProvider>
  25. <ConfigProvider :locale="antdLocale" :theme="tokenTheme">
  26. <App>
  27. <RouterView />
  28. </App>
  29. </ConfigProvider>
  30. </GlobalProvider>
  31. </template>