1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| <template> <el-menu :default-active="activeIndex" class="el-menu-vertical-demo" @select="handleSelect" background-color="#f8f8f9" style="margin-top: 20px;margin-left: 1px;width: 20%" > <MenuItem v-for="menuItem in menuItems" :key="menuItem.value" :item="menuItem" /> </el-menu> </template> <script setup> import MenuItem from "./components/MenuItem.vue"; import {ref} from "vue"; const menuItems = [ { value: '1', label: '菜单1', children: [ { value: '1-1', label: '子菜单1-1', children: [ { value: '1-1-1', label: '子菜单1-1-1' }, { value: '1-1-2', label: '子菜单1-1-2' }, ], }, { value: '1-2', label: '子菜单1-2' }, ], }, { value: '2', label: '菜单2', children: [ { value: '2-1', label: '子菜单2-1' }, { value: '2-2', label: '子菜单2-2', children: [ { value: '2-2-1', label: '子菜单2-2-1' }, { value: '2-2-2', label: '子菜单2-2-2' }, ], }, ], }, { value: '3', label: '菜单3', children: [ { value: '3-1', label: '子菜单3-1', children: [ { value: '3-1-1', label: '子菜单3-1-1', children: [ { value: '3-1-1-1', label: '子菜单3-1-1-1' }, { value: '3-1-1-2', label: '子菜单3-1-1-2' }, ], }, ], }, ], }, ]; const activeIndex = ref(1) const handleSelect = async (key, keyPath) => { console.log(key, keyPath) this.activeIndex = key } </script>
|