<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:{
async handleOpenFunc(item){
let me=this;
if(item.type== "link"){
window.open(item.resUrl,item.name);
return;
}else if(item.type=="sso"){
item.ssoUrl=await me.$store.dispatch("user/openSSOFuncPage",{
serviceUrl:item.resUrl
});
}
me.addTab(item);//inject 提供的方法只能 传一个参数
me.$refs.subMenu.hide();
setTimeout(()=>{
me.hideAllFuncBox();
},200);
}
}
}
</script>