Index.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <script setup lang="ts">
  2. import { onMounted, computed } from 'vue'
  3. import SubMenu from '@/layouts/Menu/SubMenu.vue'
  4. import Main from '@/layouts/Main/index.vue'
  5. import Header from '@/layouts/Header/index.vue'
  6. import { GlobalStore } from '@/stores/index'
  7. import { useRoute } from 'vue-router'
  8. import Logo from '@/layouts/Menu/Logo.vue'
  9. const globalStore = GlobalStore()
  10. const routerList = computed(() => globalStore.expandMenuList)
  11. onMounted(() => {
  12. globalStore.SET_User_Dept_List()
  13. })
  14. const route = useRoute()
  15. const defaultActive = computed(() => route.path)
  16. </script>
  17. <template>
  18. <el-container class="home-container">
  19. <el-aside>
  20. <div class="menu" :style="{ width: globalStore.GET_isCollapse ? '65px' : '210px' }">
  21. <Logo />
  22. <el-scrollbar>
  23. <el-menu
  24. :default-active="defaultActive"
  25. :collapse="globalStore.GET_isCollapse"
  26. :collapse-transition="false"
  27. :unique-opened="true"
  28. active-text-color="#ffd04b"
  29. text-color="#fff"
  30. background-color="rgba(18, 21, 39, 0.86)"
  31. >
  32. <SubMenu :menu-list="routerList"></SubMenu>
  33. </el-menu>
  34. </el-scrollbar>
  35. </div>
  36. </el-aside>
  37. <el-container>
  38. <el-header>
  39. <Header />
  40. </el-header>
  41. <Main />
  42. </el-container>
  43. </el-container>
  44. </template>
  45. <style scoped lang="scss">
  46. .home-container {
  47. height: 100%;
  48. .scrollbar {
  49. border-right: solid 1px var(--el-menu-border-color);
  50. :deep(.el-menu) {
  51. border-right: none;
  52. }
  53. }
  54. .el-aside {
  55. width: auto;
  56. overflow: inherit;
  57. background-color: rgba(18, 21, 39);
  58. border-right: 1px solid var(--el-border-color);
  59. transition: all 0.3s ease;
  60. .menu {
  61. display: flex;
  62. flex-direction: column;
  63. height: 100%;
  64. transition: all 0.3s ease;
  65. // background-color: rgba(18, 21, 39, 0.86);
  66. .el-menu {
  67. overflow-x: hidden;
  68. border-right: none;
  69. // background-color: rgba(18, 21, 39, 0.86);
  70. }
  71. }
  72. }
  73. .el-header {
  74. display: flex;
  75. align-items: center;
  76. z-index: 10;
  77. box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
  78. }
  79. }
  80. </style>