侧边菜单的睁开和折叠

[复制链接]
发表于 2026-1-16 04:20:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×


环境预备:Vue3+Element-UI Plus
  1. <script setup>
  2. import {ref} from "vue";
  3. // 是否折叠菜单,默认折叠
  4. const isCollapse = ref(true)
  5. // 退出登录
  6. function logout() {
  7.   alert('退出')
  8. }
  9. // 个人中心
  10. function profile() {
  11.   alert('个人中心')
  12. }
  13. </script>
  14. <template>
  15.   <el-container>
  16.     <el-aside>
  17.       <el-scrollbar>
  18.         <el-menu
  19.             :collapse="isCollapse"
  20.             active-text-color="#ffd04b"
  21.             background-color="#545c64"
  22.             class="el-menu-vertical-demo"
  23.             default-active="2"
  24.             text-color="#fff"
  25.         >
  26.           <el-sub-menu index="1">
  27.             <template #title>
  28.               <el-icon>
  29.                 <location/>
  30.               </el-icon>
  31.               <span>Navigator One</span>
  32.             </template>
  33.             <el-menu-item-group title="Group One">
  34.               <el-menu-item index="1-1">item one</el-menu-item>
  35.               <el-menu-item index="1-2">item two</el-menu-item>
  36.             </el-menu-item-group>
  37.             <el-menu-item-group title="Group Two">
  38.               <el-menu-item index="1-3">item three</el-menu-item>
  39.             </el-menu-item-group>
  40.             <el-sub-menu index="1-4">
  41.               <template #title>item four</template>
  42.               <el-menu-item index="1-4-1">item one</el-menu-item>
  43.             </el-sub-menu>
  44.           </el-sub-menu>
  45.           <el-menu-item index="2">
  46.             <el-icon>
  47.               <Menu/>
  48.             </el-icon>
  49.             <span>Navigator Two</span>
  50.           </el-menu-item>
  51.           <el-menu-item index="3" disabled>
  52.             <el-icon>
  53.               <document/>
  54.             </el-icon>
  55.             <span>Navigator Three</span>
  56.           </el-menu-item>
  57.           <el-menu-item index="4">
  58.             <el-icon>
  59.               <setting/>
  60.             </el-icon>
  61.             <span>Navigator Four</span>
  62.           </el-menu-item>
  63.         </el-menu>
  64.       </el-scrollbar>
  65.     </el-aside>
  66.     <el-container style="height: 100vh;">
  67.       <el-header>
  68.         <el-row align="middle" justify="space-between" style="height: 100%">
  69.           <el-col :span="1" style="cursor: pointer">
  70.             <el-icon v-show="isCollapse" @click="isCollapse=false">
  71.               <Expand/>
  72.             </el-icon>
  73.             <el-icon v-show="!isCollapse" @click="isCollapse=true">
  74.               <Fold/>
  75.             </el-icon>
  76.           </el-col>
  77.           <el-col :span="1">
  78.             <el-dropdown>
  79.               <el-image class="avatar" src="/public/vite.svg"></el-image>
  80.               <template #dropdown>
  81.                 <el-dropdown-menu>
  82.                   <el-dropdown-item @click="profile">个人信息</el-dropdown-item>
  83.                   <el-dropdown-item @click="logout" divided>退出</el-dropdown-item>
  84.                 </el-dropdown-menu>
  85.               </template>
  86.             </el-dropdown>
  87.           </el-col>
  88.         </el-row>
  89.       </el-header>
  90.       <el-main>
  91.       </el-main>
  92.     </el-container>
  93.   </el-container>
  94. </template>
  95. <style scoped lang="scss">
  96. .el-container {
  97.   .el-aside {
  98.     height: 100vh;
  99.     width: auto;
  100.     :deep(.el-scrollbar__view ){
  101.       height: 100%;
  102.       .el-menu {
  103.         height: 100%;
  104.         width: 100%;
  105.       }
  106.     }
  107.   }
  108.   .el-container {
  109.     .el-header {
  110.       background-color: #ffffff;
  111.       .avatar {
  112.         border-radius: 50%;
  113.         cursor: pointer;
  114.       }
  115.     }
  116.     .el-main {
  117.       background-color: #efefef;
  118.     }
  119.   }
  120. }
  121. </style>
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表