App.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <a-config-provider
  3. :locale="zhCN"
  4. :theme="{
  5. token: {
  6. colorPrimary: '#bd4b36',
  7. },
  8. }"
  9. :componentSize="'large'"
  10. >
  11. <NavBar v-if="!isInMiniProgram" />
  12. <main>
  13. <RouterView v-slot="{ Component }">
  14. <KeepAlive :include="keepAliveStore.cachedViews">
  15. <component :is="Component" :key="route.name" />
  16. </KeepAlive>
  17. </RouterView>
  18. </main>
  19. <FooterSmall v-if="!isInMiniProgram" />
  20. </a-config-provider>
  21. </template>
  22. <script setup lang="ts">
  23. import { onMounted, watch } from 'vue';
  24. import { RouterView, useRoute } from 'vue-router'
  25. import { useAuthStore } from './stores/auth';
  26. import { useKeepAliveStore } from './stores/keepAlive';
  27. import { useRedirectLoginPage } from './common/LoginPageRedirect';
  28. import { useAppConfiguration } from './api/system/useAppConfiguration';
  29. import NavBar from './components/NavBar.vue';
  30. import zhCN from "ant-design-vue/es/locale/zh_CN";
  31. import FooterSmall from './components/FooterSmall.vue';
  32. import { isInMiniProgram } from './composeables/MiniProgramIng.ts';
  33. const authStore = useAuthStore();
  34. const keepAliveStore = useKeepAliveStore();
  35. const { checkAndRedirectLoginPage } = useRedirectLoginPage();
  36. const { loadAppConfiguration } = useAppConfiguration();
  37. onMounted(async () => {
  38. await authStore.loadLoginState();
  39. checkAndRedirectLoginPage();
  40. await loadAppConfiguration();
  41. });
  42. const route = useRoute();
  43. watch(route, () => {
  44. window.scrollTo({
  45. top: 0,
  46. behavior: 'instant'
  47. });
  48. checkAndRedirectLoginPage();
  49. });
  50. </script>
  51. <style>
  52. @import "./assets/scss/main.scss";
  53. @import "vue3-carousel/carousel.css";
  54. @import "@vuemap/vue-amap/dist/style.css";
  55. @import "@imengyu/vue-scroll-rect/lib/vue-scroll-rect.css";
  56. </style>