AIoT前端公共UI

CommonContainer.vue 1.6KB

    <!-- * @Author: Devin * @Date: 2023-01-13 10:33:54 * @LastEditors: Devin * @LastEditTime: 2023-02-22 14:51:40 * @Description: 容器 --> <template> <div class="common-container"> <el-container> <el-header> <el-scrollbar> <slot name="header"></slot> </el-scrollbar> </el-header> <el-container> <el-aside :class=" isCollapse ? '__aside-collapse-left' : '__aside-collapse-right' " :width="asideWidth" > <slot name="menu"></slot> </el-aside> <el-main> <slot name="content"></slot> </el-main> </el-container> </el-container> </div> </template> <script setup lang="ts"> import { defineProps } from 'vue'; defineProps({ asideWidth: { type: String, default: () => '240px' }, isCollapse: { type: Boolean, default: false } }); </script> <script lang="ts"> export default { name: 'CommonContainer' }; </script> <style scoped lang="scss"> .common-container { width: 100%; height: 100%; overflow: hidden; .el-header { padding: 0; } .el-aside { height: 100%; } .__aside-collapse-left { -webkit-transition: width 0.4s ease-in-out; -moz-transition: width 0.4s ease-in-out; -o-transition: width 0.4s ease-in-out; transition: width 0.4s ease-in-out; } .__aside-collapse-right { -webkit-transition: width 0.4s ease-in-out; -moz-transition: width 0.4s ease-in-out; -o-transition: width 0.4s ease-in-out; transition: width 0.4s ease-in-out; } .el-container { height: 100%; } } </style>