| | |
| | | <template> |
| | | <el-container class="app-layout"> |
| | | <el-aside :class="{collapse:menuData.collapse}"> |
| | | <Menu/> |
| | | </el-aside> |
| | | <el-main> |
| | | <header> |
| | | <AppHeader/> |
| | | </header> |
| | | <main> |
| | | <transition name="fade"> |
| | | <router-view></router-view> |
| | | </transition> |
| | | </main> |
| | | </el-main> |
| | | </el-container> |
| | | <div> |
| | | <CommonHeader /> |
| | | <div style="height:10px; background: #fff"></div> |
| | | <el-container class="app-layout"> |
| | | <el-aside :class="{collapse:menuData.collapse}"> |
| | | <Menu/> |
| | | </el-aside> |
| | | <el-main> |
| | | <header> |
| | | <AppHeader/> |
| | | </header> |
| | | <div style="height:10px;"></div> |
| | | <main> |
| | | <transition name="fade"> |
| | | <keep-alive> |
| | | <router-view></router-view> |
| | | </keep-alive> |
| | | </transition> |
| | | </main> |
| | | </el-main> |
| | | </el-container> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | import Header from '@/components/common/Header' |
| | | import CommonHeader from '@/components/common/CommonHeader' |
| | | import Menu from '@/components/common/Menu' |
| | | export default { |
| | | name: 'DefaultLayout', |
| | | components: { AppHeader: Header, Menu }, |
| | | components: { AppHeader: Header, Menu, CommonHeader }, |
| | | data() { |
| | | return { |
| | | isFinishData: false |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState(['menuData']) |
| | | } |
| | | ...mapState(['menuData', 'userInfo']) |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | |
| | | .el-container { |
| | | background: #F7F8F9; |
| | | height: 100%; |
| | | |
| | | display: flex; |
| | | overflow: hidden; |
| | | // overflow: hidden; |
| | | overflow: scroll; |
| | | // 左边菜单 |
| | | .el-aside { |
| | | width: $menu-width !important; |
| | | flex-shrink: 0; |
| | | height: 100%; |
| | | overflow-y: auto; |
| | | // height: 100%; |
| | | // height: 900px; |
| | | height: calc(100vh - 80px); |
| | | overflow-y: scroll; |
| | | overflow-x: hidden; |
| | | background: $primary-color; |
| | | color: #fff; |
| | | transition: width ease .3s; |
| | | scrollbar-width: none; /* firefox */ |
| | | -ms-overflow-style: none; /* IE 10+ */ |
| | | &::-webkit-scrollbar { |
| | | display: none; /* Chrome Safari */ |
| | | } |
| | | &.collapse { |
| | | width: 64px !important; |
| | | } |
| | |
| | | // 右边内容 |
| | | .el-main { |
| | | width: 100%; |
| | | height: 100%; |
| | | // height: 100%; |
| | | height: calc(100vh - 90px); |
| | | padding: 0; |
| | | position: relative; |
| | | display: flex; |
| | | flex-direction: column; |
| | | overflow: hidden; |
| | | overflow-y: scroll; |
| | | overflow-x: hidden; |
| | | scrollbar-width: none; /* firefox */ |
| | | -ms-overflow-style: none; /* IE 10+ */ |
| | | &::-webkit-scrollbar { |
| | | display: none; /* Chrome Safari */ |
| | | } |
| | | & > header { |
| | | height: $header-height; |
| | | height: 48px; |
| | | flex-shrink: 0; |
| | | } |
| | | & > main { |
| | |
| | | transition: all .5s; |
| | | position: absolute; |
| | | } |
| | | .comfirm { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | background-color: rgba(0, 0, 0, 0.3); |
| | | z-index: 1000; |
| | | .container { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | margin: auto; |
| | | background-color: #fff; |
| | | width: 500px; |
| | | height: 120px; |
| | | padding: 30px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | .complete { |
| | | display: flex; |
| | | flex-direction: row-reverse; |
| | | } |
| | | } |
| | | } |
| | | </style> |