App.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <NuxtLoadingIndicator />
  3. <NavBar v-if="showNavAndFooter" />
  4. <main>
  5. <NuxtPage />
  6. </main>
  7. <Footer v-if="showNavAndFooter" />
  8. </template>
  9. <script setup lang="ts">
  10. import { onMounted, watch } from 'vue';
  11. import { useRoute } from 'vue-router'
  12. import NavBar from './components/NavBar.vue';
  13. import Footer from './components/Footer.vue';
  14. import { useAuthStore } from './stores/auth';
  15. import {initAMapApiLoader} from '@vuemap/vue-amap';
  16. import { registryConvert } from './common/ConvertRgeistry'
  17. const showNavAndFooter = computed(() => {
  18. return route.path !== '/exportToAiIch';
  19. });
  20. if (import.meta.client) {
  21. initAMapApiLoader({
  22. key: '212b86dc49a5116a34e945d31da7ad14',
  23. securityJsCode: '46cae8205a707cfaf5801abcc4301566',
  24. });
  25. }
  26. registryConvert();
  27. const authStore = useAuthStore();
  28. onMounted(() => {
  29. if (import.meta.server)
  30. return;
  31. authStore.loadLoginState();
  32. });
  33. const route = useRoute();
  34. watch(route, () => {
  35. window.scrollTo({
  36. top: 0,
  37. behavior: 'instant'
  38. })
  39. });
  40. </script>
  41. <style>
  42. @import "bootstrap/dist/css/bootstrap.css";
  43. @import "bootstrap/dist/css/bootstrap-grid.css";
  44. @import "bootstrap/dist/css/bootstrap-utilities.css";
  45. @import "./assets/scss/main.scss";
  46. @import "vue3-carousel/carousel.css";
  47. @import "@vuemap/vue-amap/dist/style.css";
  48. @import "@imengyu/vue-scroll-rect/lib/vue-scroll-rect.css";
  49. </style>