App.vue 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <ConfigProvider :locale="getAntdLocale" :theme="themeConfig">
  3. <AppProvider>
  4. <RouterView />
  5. </AppProvider>
  6. </ConfigProvider>
  7. </template>
  8. <script lang="ts" setup>
  9. import { AppProvider } from '@/components/Application';
  10. import { useTitle } from '@/hooks/web/useTitle';
  11. import { useLocale } from '@/locales/useLocale';
  12. import { ConfigProvider } from 'ant-design-vue';
  13. import { useDarkModeTheme } from '@/hooks/setting/useDarkModeTheme';
  14. import 'dayjs/locale/zh-cn';
  15. import { computed } from 'vue';
  16. // support Multi-language
  17. const { getAntdLocale } = useLocale();
  18. const { isDark, darkTheme } = useDarkModeTheme();
  19. const themeConfig = computed(() =>
  20. Object.assign(
  21. {
  22. token: {
  23. colorPrimary: '#0960bd',
  24. colorSuccess: '#55D187',
  25. colorWarning: '#EFBD47',
  26. colorError: '#ED6F6F',
  27. colorInfo: '#0960bd',
  28. },
  29. },
  30. isDark.value ? darkTheme : {},
  31. ),
  32. );
  33. // Listening to page changes and dynamically changing site titles
  34. useTitle();
  35. </script>