<template> <Ssub-menu :icon="icon" :level="level" :hasTitle="hasTitle" :parent="parent"> <template slot="title">{{menuitem.name}}</template> <template v-for="(item,index) in menuitem.children"> <Smenu-item :icon="item.iconClass" :hasTitle="hasTitle" v-if="item.isShow&&!(item.children&&item.children.length)" @click="handleOpenFunc(item)">{{item.name}}</Smenu-item> <Snav-sub-menus :icon="item.iconClass" :menuitem="item" v-if="item.isShow&&item.children&&item.children.length"></Snav-sub-menus> </template> </Ssub-menu> </template> <script> import {Smenu,SsubMenu,SmenuItem} from '../Smenus' export default { name:'SnavSubMenus', inject:['addTab'], components:{ Smenu,SsubMenu,SmenuItem }, props:{ icon:{ type:String }, menuitem:{ type:Object }, hasTitle:{ type: Boolean, }, level:{ type:Number }, parent:{ type:Object } }, methods:{ async handleOpenFunc(item){ //url,title,uid,callback,nearest if(item.type== "link"){ window.open(item.resUrl,item.name); return; }else if(item.type=="sso"){ item.ssoUrl=await this.$store.dispatch("user/openSSOFuncPage",{ serviceUrl:item.resUrl }); } // this.addTab(item.resUrl,item.name) this.addTab(item);//inject 提供的方法只能 传一个参数 } } } </script>