App.vue 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <template>
  2. <div id="app">
  3. <Nav v-if="!isFixedScreen" />
  4. <div class="content" :class="{ 'fixed-screen': isFixedScreen }">
  5. <router-view />
  6. </div>
  7. </div>
  8. </template>
  9. <script setup lang="ts">
  10. import { useRoute } from 'vue-router';
  11. import { computed } from 'vue';
  12. import Nav from '@/components/Nav.vue';
  13. const route = useRoute();
  14. const isFixedScreen = computed(
  15. () => route.matched.some((r) => r.meta?.fixedScreen === true) || route.path.startsWith('/institute-safety'),
  16. );
  17. </script>
  18. <style scoped lang="scss">
  19. #app {
  20. display: flex;
  21. flex-direction: column;
  22. width: 100vw;
  23. height: 100vh;
  24. }
  25. .content {
  26. flex: 1;
  27. overflow-y: auto;
  28. overflow-x: hidden;
  29. display: flex;
  30. align-items: center;
  31. justify-content: center;
  32. &.fixed-screen {
  33. overflow-y: hidden;
  34. }
  35. }
  36. @font-face {
  37. font-family: 'YouSheBiaoTiYuan';
  38. src: url('@/assets/fonts/YouSheBiaoTiYuan.otf');
  39. }
  40. @font-face {
  41. font-family: 'DINAlternate';
  42. src: url('@/assets/fonts/DINAlternate-Bold.ttf');
  43. }
  44. </style>