1、给el-tabs加click事件和离开属性before-leave
<el-tabs v-model="activeName" @tab-click="handleTabClick" :before-leave="beforeLeave"></el-tabs>
2、记录离开之前的tab值
data(){
return {
activeName:'1',
oldActiveName:''
}
}
beforeLeave(activeName,oldActiveName){
//activeName点击切换的tab值
//oldActiveName离开的tab值
this.oldActiveName=oldActiveName
},
3、切换事件
//其中this.getAllList(); this.getselectList();这两个方法用到了this.activeName值,该值作为参数传给后台
handleTabClick(val){
if(this.total!==this.dataListRight.length){
this.$confirm(`您有未保存数据项, 是否确认离开?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
this.activeName=val.name
this.getAllList();
this.getselectList();
}).catch(() => {
this.activeName=this.oldActiveName
});
}
else{
this.getAllList();
this.getselectList();
}
},
本文介绍了如何在Vue中利用el-tabs组件实现点击事件和离开前的处理。通过设置`@tab-click`和`:before-leave`属性,可以监听tab切换并记录离开前的tab值。在切换时,如果存在未保存数据,会弹窗询问用户是否离开,确保数据安全。同时,`handleTabClick`方法根据用户选择决定是否更新tab并执行相关数据加载操作。



6199

被折叠的 条评论
为什么被折叠?



