<template> <p-sub-menu ref="subMenu" :level="level" :parent="parent" :isAllFunc="true"> <template slot="title"> {{menuitem.name}} <i v-if="menuitem.type=='dir'" class="el-icon-caret-right"></i> </template> <template v-for="(item,index) in menuitem.children"> <p-menu-item :icon="item.iconClass" v-if="item.isShow&&!(item.children&&item.children.length)" @click="handleOpenFunc(item)">{{item.name}}</p-menu-item> <nav-sub-menus :menuitem="item" v-if="item.isShow&&item.children&&item.children.length"></nav-sub-menus> </template> </p-sub-menu> </template> <script> import {PMenu,PSubMenu,PMenuItem} from '../menus' export default { name:'NavSubMenus', inject:['addTab','showTab','hideTab','hideAllFuncBox'], components:{ PMenu,PSubMenu,PMenuItem }, props:{ menuitem:{ type:Object }, level:{ type:Number }, parent:{ type:Object } }, methods:{ handleOpenFunc(item){ let me=this; if(item.type== "link"){ window.open(item.resUrl,item.name); return; } me.addTab(item);//inject 提供的方法只能 传一个参数 me.$refs.subMenu.hide(); setTimeout(()=>{ me.hideAllFuncBox(); },100); } } } </script>