const TabItem={
name:'PTabitem',
props:{
close:[String,Number,Boolean],
title:{
type:String,
default:""
},
index:[String,Number],
active:{
type:Boolean,
default:false
},
eventKey:{
type:String
}
},
inject:['addItem'],
data(){
return {
}
},
mounted(){
this.addItem(this)
},
beforeDestroy(){
this.$el.remove();
},
methods:{
handleTabClose(e){
e.stopPropagation();
if(this.$listeners.handleBeforeClose&&this.$listeners.handleBeforeClose()){
return;
}
this.$emit('onTabClose',{
key:this.eventKey
},e);
},
handleTabChange(e){
this.$listeners.handleSelected&&this.$listeners.handleSelected()
this.$emit('onTabChange',{
key:this.eventKey,
el:this.$el
},e)
},
handleContextMenu(e){
e.preventDefault()
e.stopPropagation();
this.$emit('onContextMenu',{
key:this.eventKey,
el:this.$el
},e)
},
getKey(){
return this.eventKey;
}
},
render(h){
const {title,close,eventKey,active} =this.$props;
const closeTpl = (
<i class="pl-tabs-itemClose iconfont icon-close" onClick={this.handleTabClose}></i>
)
const nodeProps = {
class:{
['pl-tabs-item']:1,
['pl-tabs-itemSeld']:active
},
on:{
click:this.handleTabChange,
contextmenu:this.handleContextMenu
}
};
//sys-tab-item-text
return (
<li>
<div {...nodeProps}v>
<span class="pl-tabs-itemTxt sys-tab-item-text">{title}</span>
{(close===""||close===true)&&closeTpl}
</div>
</li>
)
}
}
export default TabItem;