<template> <el-container :class="classObj" class="app-wrapper"> <div style="width: 100%;height:100%;"> <router-view/> </div> </el-container> </template> <script> import ResizeMixin from './mixin/ResizeHandler' import { mapState } from 'vuex' export default { name: 'Layout', mixins: [ResizeMixin], computed: { ...mapState({ sidebar: state => state.app.sidebar, device: state => state.app.device, showSettings: state => state.settings.showSettings, needTagsView: state => state.settings.tagsView, fixedHeader: state => state.settings.fixedHeader }), classObj() { return { hideSidebar: !this.sidebar.opened, openSidebar: this.sidebar.opened, withoutAnimation: this.sidebar.withoutAnimation, mobile: this.device === 'mobile' } } }, methods: { handleClickOutside() { this.$store.dispatch('CloseSideBar', { withoutAnimation: false }) } } } </script> <style rel="stylesheet/scss" lang="scss" scoped> @import "src/styles/mixin.scss"; .app-wrapper { @include clearfix; position: relative; height: 100%; width: 100%; &.mobile.openSidebar{ position: fixed; top: 0; } } .drawer-bg { background: #000; opacity: 0.3; width: 100%; top: 0; height: 100%; position: absolute; z-index: 999; } /*.el-scrollbar{*/ /*height: calc(100vh - 50px);*/ /*}*/ .has-head-scrollbar{ height: 100vh; } </style>