home.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <el-container class="main">
  3. <el-header :style="{ padding: 0 }">
  4. <component :is="cHeader"></component>
  5. </el-header>
  6. <el-container>
  7. <el-aside width="200px" :style="{ 'background-color': '#242f42' }">
  8. <component :is="cAside"></component>
  9. </el-aside>
  10. <el-main>
  11. <div class="content-box" :class="{ 'content-collapse': collapse }">
  12. <el-col :span="24" class="content">
  13. <transition name="move" mode="out-in">
  14. <el-row>
  15. <component :is="cBreadcrumb" :breadcrumbTitle="title"></component>
  16. <el-col :span="24" class="container" :style="{ padding: '10px 0' }"><router-view :style="testInfo"></router-view></el-col>
  17. </el-row>
  18. </transition>
  19. <el-backtop target=".content"></el-backtop>
  20. </el-col>
  21. </div>
  22. </el-main>
  23. </el-container>
  24. </el-container>
  25. </template>
  26. <script setup lang="ts">
  27. // 组件
  28. import cHeader from './parts/Header.vue';
  29. import cAside from './parts/Sidebar.vue';
  30. import cBreadcrumb from './parts/breadcrumb.vue';
  31. import { useRoute } from 'vue-router';
  32. import type { Ref } from 'vue';
  33. import { ref } from 'vue';
  34. // 路由
  35. const route = useRoute();
  36. // const breadcrumbTitle: Ref<any> = ref();
  37. let collapse: Ref<any> = ref(false);
  38. const title: Ref<any> = ref(route.meta.title);
  39. const testInfo: Ref<any> = ref({
  40. height: '85vh',
  41. background: '#ffffff',
  42. 'overflow-x': 'hidden',
  43. 'overflow-y': 'auto',
  44. border: '1px solid #f0f0f0',
  45. padding: '10px'
  46. });
  47. </script>
  48. <style scoped lang="scss">
  49. .main {
  50. height: 100vh;
  51. background-color: #f0f0f0;
  52. .el-header {
  53. border-bottom: 1px solid;
  54. }
  55. .el-aside {
  56. height: 93.3vh;
  57. overflow-x: auto;
  58. overflow-y: auto;
  59. }
  60. .el-main {
  61. padding: 10px;
  62. }
  63. }
  64. </style>