本文主要是介绍el-tabs 标签页判断拦截是否阻止tab切换,before-leave,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
tab切换前,如果有逻辑要处理,不满足条件不允许切,就用before-leave
<el-tabs type="border-card" :before-leave="confirmLeave">
如果需要表单校验,要用async和await搭配使用,不然校验触发的不及时
如果return false还是切换了,就使用return reject()
// tab切换前判断async confirmLeave(active) {if (active === '1') {await this.$refs.annualAssetDetail.$refs.costForm.validate(valid => {let arr = this.$refs.annualAssetDetail.costForm.tableDataif (valid) {if (arr.length) {arr.forEach(item => {if (item.clearId == 0) item.id = ''})return true} else {this.$message.warning('请先填写明细数据!')return reject()}} else {for (var i = 0; i < arr.length; i++) {if (!arr[i].Code) {this.$message.warning(`明细数据第${i + 1}行的xx分类未填写!`)break} else if (!arr[i].remark) {this.$message.warning(`明细数据第${i + 1}行的xx说明未填写!`)break} else {this.$message.warning(`明细数据第${i + 1}行的配置数量未填写!`)}break} }this.formItemVerify(this.$refs.annualAssetDetail.$refs.costForm)return reject()}})} else {this.$refs.annualAssetDetail.costForm.tableDat=[]}},
这篇关于el-tabs 标签页判断拦截是否阻止tab切换,before-leave的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!