App.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <AdaptiveContainer
  3. v-if="runSelf"
  4. :options="{ width: width, height: height }"
  5. style="overflow-y: hidden"
  6. >
  7. <ConfigProvider :locale="getAntdLocale" :theme="themeConfig" prefixCls="vMonitor">
  8. <AppProvider>
  9. <RouterView />
  10. </AppProvider>
  11. </ConfigProvider>
  12. </AdaptiveContainer>
  13. <ConfigProvider v-else :locale="getAntdLocale" :theme="themeConfig" prefixCls="vMonitor">
  14. <AppProvider>
  15. <RouterView />
  16. </AppProvider>
  17. </ConfigProvider>
  18. </template>
  19. <script lang="ts" setup>
  20. import { AppProvider } from '@/components/Application';
  21. import { useTitle } from '@/hooks/web/useTitle';
  22. import { useLocale } from '@/locales/useLocale';
  23. import { ConfigProvider } from 'ant-design-vue';
  24. import AdaptiveContainer from '/@/components/Container/src/Adaptive.vue';
  25. import { useDarkModeTheme } from '@/hooks/setting/useDarkModeTheme';
  26. import 'dayjs/locale/zh-cn';
  27. import { computed, ref } from 'vue';
  28. // support Multi-language
  29. const { getAntdLocale } = useLocale();
  30. const width = ref(1920);
  31. const height = ref(928);
  32. const { isDark, darkTheme } = useDarkModeTheme();
  33. const runSelf = ref(true);
  34. const themeConfig = computed(() =>
  35. Object.assign(
  36. {
  37. token: {
  38. colorPrimary: '#0960bd',
  39. colorSuccess: '#55D187',
  40. colorWarning: '#EFBD47',
  41. colorError: '#ED6F6F',
  42. colorInfo: '#0960bd',
  43. },
  44. },
  45. isDark.value ? darkTheme : {},
  46. ),
  47. );
  48. // Listening to page changes and dynamically changing site titles
  49. useTitle();
  50. </script>