index.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <template>
  2. <n-dialog-provider>
  3. <div class="layout">
  4. <div class="fixed-mask"></div>
  5. <HeadCpt></HeadCpt>
  6. <router-view v-slot="{ Component }">
  7. <component :is="Component"></component>
  8. </router-view>
  9. <ModalCpt></ModalCpt>
  10. <SidebarCpt v-if="MODULE_CONFIG_SWITCH.sidebar"></SidebarCpt>
  11. <LoginModal v-if="appStore.showLoginModal"></LoginModal>
  12. </div>
  13. </n-dialog-provider>
  14. </template>
  15. <script lang="ts" setup>
  16. import { MODULE_CONFIG_SWITCH } from '@/constant';
  17. import { useAppStore } from '@/store/app';
  18. import HeadCpt from './head/index.vue';
  19. import ModalCpt from './modal/index.vue';
  20. import SidebarCpt from './sidebar/index.vue';
  21. document.body.style.minWidth = '1200px';
  22. const appStore = useAppStore();
  23. </script>
  24. <style lang="scss" scoped>
  25. .layout {
  26. box-sizing: border-box;
  27. padding-top: $header-height;
  28. min-height: 100vh;
  29. .fixed-mask {
  30. position: fixed;
  31. top: 0;
  32. right: 0;
  33. z-index: 50;
  34. width: 400px;
  35. height: 300px;
  36. background-color: #ffd700;
  37. background-image: linear-gradient(239deg, #ffd700 0%, #ffffff 100%);
  38. opacity: 0.2;
  39. filter: blur(70px);
  40. pointer-events: none;
  41. }
  42. }
  43. </style>