| | |
| | | <template> |
| | | <el-container class="el-container"> |
| | | <el-aside class="el-aside" |
| | | ><SiderMenu :collapse="isCollapsed" @nav-page="navPage"></SiderMenu |
| | | ></el-aside> |
| | | <el-aside class="el-aside"> |
| | | <SiderMenu :collapse="isCollapsed" @nav-page="navPage"></SiderMenu> |
| | | </el-aside> |
| | | <el-container> |
| | | <el-header class="el-header" |
| | | ><Header |
| | | <el-header ref="headerRef" class="el-header"> |
| | | <Header |
| | | :navTitles="navTitles" |
| | | :collapse="isCollapsed" |
| | | @collapsed-sider="collapsedSider" |
| | |
| | | ></el-header> |
| | | <el-main class="el-main"> |
| | | <el-scrollbar> |
| | | <div class="el-main__content"> |
| | | <div |
| | | class="el-main__content" |
| | | :style="{ |
| | | maxHeight: contentMaxHeight + 'px', |
| | | padding: mainPadding + 'px' |
| | | }" |
| | | > |
| | | <Content></Content> |
| | | <!-- <el-backtop |
| | | target=".el-main .el-scrollbar__wrap" |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { computed } from 'vue'; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | isCollapsed: false, |
| | | navTitles: [] |
| | | navTitles: [], |
| | | headerHeight: 60, |
| | | mainPadding: 10, |
| | | contentMaxHeight: NaN |
| | | }; |
| | | }, |
| | | methods: { |
| | |
| | | navPage(titles) { |
| | | this.navTitles = titles; |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.headerHeight = this.$refs.headerRef.$el.offsetHeight; |
| | | this.contentMaxHeight = |
| | | window.innerHeight - this.headerHeight - this.mainPadding * 2; |
| | | }, |
| | | provide() { |
| | | return { |
| | | headerHeight: computed(() => this.headerHeight), |
| | | mainPadding: computed(() => this.mainPadding), |
| | | contentMaxHeight: computed(() => this.contentMaxHeight) |
| | | }; |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | } |
| | | |
| | | .el-main__content { |
| | | padding: var(--el-main-padding) calc(var(--el-main-padding) / 2); |
| | | max-height: calc(100vh - 60px - var(--el-main-padding) * 2); |
| | | /* --main-padding: 10px; */ |
| | | /* padding: var(--main-padding) calc(var(--main-padding) / 2); */ |
| | | /* padding: var(--main-padding); */ |
| | | /* max-height: calc(100vh - 60px - var(--main-padding) * 2); */ |
| | | /* background-color: aqua; */ |
| | | /* overflow: auto; */ |
| | | } |