default.vue 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <el-container class="w-screen h-screen">
  3. <el-main class="p-0 min-w-[1200px]" id="main">
  4. <el-header class="z-10 sticky top-0">
  5. <layout-header />
  6. <layout-nav />
  7. </el-header>
  8. <slot></slot>
  9. <layout-footer />
  10. <layout-fixed />
  11. </el-main>
  12. </el-container>
  13. </template>
  14. <script lang="ts" setup>
  15. import layoutHeader from './default/components/header/index.vue'
  16. import layoutFooter from './default/components/footer/index.vue'
  17. import layoutNav from './default/components/nav/index.vue'
  18. import layoutFixed from './default/components/fiexd/index.vue'
  19. import {watch, nextTick} from 'vue'
  20. import {useRouter} from 'vue-router';
  21. const router = useRouter();
  22. watch(() => router.currentRoute.value.path, (newValue, oldValue) => {
  23. nextTick(() => {
  24. document.getElementById('main').scrollTop = 0
  25. })
  26. }, {immediate: true})
  27. </script>
  28. <style lang="scss" scoped>
  29. .el-header {
  30. --el-header-padding: 0;
  31. height: 188px;
  32. }
  33. .el-main {
  34. --el-main-padding: 0;
  35. }
  36. </style>