<template> <div> <template v-for="(item) in subMenuList"> <el-submenu v-if="item.children && item.children.length > 0" :key="item.index" :index="item.index" > <template slot="title"> <i class="el-icon-caret-bottom" v-if="getOpenFlag(item.index)" ></i> <i class="el-icon-caret-right" v-else></i> <!-- <img :src="item.icon" alt=""> --> <span>{{ item.name }}</span> </template> <SubMenu :subMenuList="item.children" :openFlgArr="openFlgArr" /> </el-submenu> <el-menu-item v-else :key="item.path" :index="item.path"> <template slot="title"> <i :class="item.icon"></i> <span>{{ item.name }}</span> </template> </el-menu-item> </template> </div> </template> <script> import SubMenu from "./SubMenu.vue"; export default { name: "SubMenu", components: { SubMenu }, props: ["subMenuList", "openFlgArr"], methods: { getOpenFlag(index) { return this.openFlgArr.includes(index); }, }, }; </script> <style> .el-menu--collapse > div > .el-menu-item span, .el-menu--collapse > div > .el-submenu > .el-submenu__title span { height: 0; width: 0; overflow: hidden; visibility: hidden; display: inline-block; } </style>