collapse.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <el-radio-group v-model="isCollapse" style="margin-bottom: 20px">
  3. <el-radio-button :label="false">expand</el-radio-button>
  4. <el-radio-button :label="true">collapse</el-radio-button>
  5. </el-radio-group>
  6. <el-menu
  7. default-active="2"
  8. class="el-menu-vertical-demo"
  9. :collapse="isCollapse"
  10. @open="handleOpen"
  11. @close="handleClose"
  12. >
  13. <el-sub-menu index="1">
  14. <template #title>
  15. <el-icon><location /></el-icon>
  16. <span>Navigator One</span>
  17. </template>
  18. <el-menu-item-group>
  19. <template #title><span>Group One</span></template>
  20. <el-menu-item index="1-1">item one</el-menu-item>
  21. <el-menu-item index="1-2">item two</el-menu-item>
  22. </el-menu-item-group>
  23. <el-menu-item-group title="Group Two">
  24. <el-menu-item index="1-3">item three</el-menu-item>
  25. </el-menu-item-group>
  26. <el-sub-menu index="1-4">
  27. <template #title><span>item four</span></template>
  28. <el-menu-item index="1-4-1">item one</el-menu-item>
  29. </el-sub-menu>
  30. </el-sub-menu>
  31. <el-menu-item index="2">
  32. <el-icon><icon-menu /></el-icon>
  33. <template #title>Navigator Two</template>
  34. </el-menu-item>
  35. <el-menu-item index="3" disabled>
  36. <el-icon><document /></el-icon>
  37. <template #title>Navigator Three</template>
  38. </el-menu-item>
  39. <el-menu-item index="4">
  40. <el-icon><setting /></el-icon>
  41. <template #title>Navigator Four</template>
  42. </el-menu-item>
  43. </el-menu>
  44. </template>
  45. <script lang="ts" setup>
  46. import { ref } from 'vue'
  47. import {
  48. Document,
  49. Menu as IconMenu,
  50. Location,
  51. Setting,
  52. } from '@element-plus/icons-vue'
  53. const isCollapse = ref(true)
  54. const handleOpen = (key: string, keyPath: string[]) => {
  55. console.log(key, keyPath)
  56. }
  57. const handleClose = (key: string, keyPath: string[]) => {
  58. console.log(key, keyPath)
  59. }
  60. </script>
  61. <style>
  62. .el-menu-vertical-demo:not(.el-menu--collapse) {
  63. width: 200px;
  64. min-height: 400px;
  65. }
  66. </style>