default.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. </el-header>
  7. <layout-nav />
  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,useRoute} from 'vue-router';
  21. const route = useRoute();
  22. const router = useRouter();
  23. watch(() => router.currentRoute.value.path, (newValue, oldValue) => {
  24. nextTick(() => {
  25. document.getElementById('main').scrollTop = 0
  26. })
  27. }, {immediate: true})
  28. </script>
  29. <style lang="scss" scoped>
  30. .el-header {
  31. --el-header-padding: 0;
  32. height: 140px;
  33. }
  34. .el-main {
  35. --el-main-padding: 0;
  36. }
  37. </style>