App.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <NConfigProvider
  3. :locale="zhCN"
  4. :theme="getDarkTheme"
  5. :theme-overrides="getThemeOverrides"
  6. :date-locale="dateZhCN"
  7. >
  8. <AppProvider>
  9. <RouterView />
  10. <RouterError />
  11. </AppProvider>
  12. </NConfigProvider>
  13. </template>
  14. <script lang="ts" setup>
  15. import { computed, onMounted, onUnmounted } from "vue";
  16. import { zhCN, dateZhCN, darkTheme, useDialog } from "naive-ui";
  17. import { AppProvider } from "@/components/Application";
  18. import { RouterError } from "@/components/RouterError";
  19. import { useRoute, useRouter } from "vue-router";
  20. import { useDesignSettingStore } from "@/store/modules/designSetting";
  21. import { lighten } from "@/utils/index";
  22. const route = useRoute();
  23. const designStore = useDesignSettingStore();
  24. /**
  25. * @type import('naive-ui').GlobalThemeOverrides
  26. */
  27. const getThemeOverrides = computed(() => {
  28. const appTheme = designStore.appTheme;
  29. const lightenStr = lighten(designStore.appTheme, 6);
  30. return {
  31. common: {
  32. primaryColor: appTheme,
  33. primaryColorHover: lightenStr,
  34. primaryColorPressed: lightenStr,
  35. },
  36. LoadingBar: {
  37. colorLoading: appTheme,
  38. },
  39. };
  40. });
  41. const getDarkTheme = computed(() => (designStore.darkTheme ? darkTheme : undefined));
  42. let timer: string | number | NodeJS.Timeout | undefined;
  43. onMounted(() => {});
  44. onUnmounted(() => {});
  45. </script>
  46. <style lang="less">
  47. @import "styles/index.less";
  48. </style>