|
@@ -1,20 +1,21 @@
|
|
|
<template>
|
|
|
<el-container style="height: 100vh">
|
|
|
<div class="mask" v-show="!isCollapse && !contentFullScreen" @click="hideMenu"></div>
|
|
|
- <el-aside :width="isCollapse ? '60px' : '250px'" :class="isCollapse ? 'hide-aside' : 'show-side'" v-show="!contentFullScreen">
|
|
|
- <Logo v-if="showLogo" />
|
|
|
- <Menu />
|
|
|
+ <el-aside :width="isCollapse ? '60px' : '250px'" :class="isCollapse ? 'hide-aside' : 'show-side'"
|
|
|
+ v-show="!contentFullScreen">
|
|
|
+ <Logo v-if="showLogo"/>
|
|
|
+ <Menu/>
|
|
|
</el-aside>
|
|
|
<el-container>
|
|
|
<el-header v-show="!contentFullScreen">
|
|
|
- <Header />
|
|
|
+ <Header/>
|
|
|
</el-header>
|
|
|
- <Tabs v-show="showTabs" />
|
|
|
+ <Tabs v-show="showTabs"/>
|
|
|
<el-main>
|
|
|
<router-view v-slot="{ Component }" v-loading="loading">
|
|
|
<transition name="fade-transform" mode="out-in">
|
|
|
<keep-alive>
|
|
|
- <component :is="Component" />
|
|
|
+ <component :is="Component"/>
|
|
|
</keep-alive>
|
|
|
</transition>
|
|
|
</router-view>
|
|
@@ -24,15 +25,16 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { defineComponent, computed, onBeforeMount, onMounted } from 'vue'
|
|
|
-import { useStore } from 'vuex'
|
|
|
-import { useEventListener } from '@vueuse/core'
|
|
|
+import {defineComponent, computed, onBeforeMount, onMounted} from 'vue'
|
|
|
+import {useStore} from 'vuex'
|
|
|
+import {useEventListener} from '@vueuse/core'
|
|
|
import Menu from './Menu/index.vue'
|
|
|
import Logo from './Logo/index.vue'
|
|
|
import Header from './Header/index.vue'
|
|
|
import Tabs from './Tabs/index.vue'
|
|
|
-import { useRouter } from 'vue-router'
|
|
|
-import { initWebSocket } from '@/utils/websocket'
|
|
|
+import {useRouter} from 'vue-router'
|
|
|
+import {initWebSocket} from '@/utils/websocket'
|
|
|
+
|
|
|
export default defineComponent({
|
|
|
components: {
|
|
|
Menu,
|
|
@@ -103,27 +105,32 @@ export default defineComponent({
|
|
|
padding-left: 0;
|
|
|
padding-right: 0;
|
|
|
}
|
|
|
+
|
|
|
.el-aside {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
- transition: 0.2s;
|
|
|
overflow-x: hidden;
|
|
|
transition: 0.3s;
|
|
|
+
|
|
|
&::-webkit-scrollbar {
|
|
|
width: 0 !important;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.el-main {
|
|
|
background-color: var(--system-container-background);
|
|
|
height: 100%;
|
|
|
padding: 0;
|
|
|
}
|
|
|
+
|
|
|
.el-main-box {
|
|
|
width: 100%;
|
|
|
+ min-width: 1200px;
|
|
|
height: 100%;
|
|
|
overflow-y: auto;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
+
|
|
|
@media screen and (max-width: 1000px) {
|
|
|
.el-aside {
|
|
|
position: fixed;
|
|
@@ -131,6 +138,7 @@ export default defineComponent({
|
|
|
left: 0;
|
|
|
height: 100vh;
|
|
|
z-index: 1000;
|
|
|
+
|
|
|
&.hide-aside {
|
|
|
left: -250px;
|
|
|
}
|