collapse.vue 2.1 KB

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