默认情况下,elementui的确认消息,取消按钮和右上角弹窗,走的是同一个方法,也就是catch方法的回调,如果功能上需要做区分,就没法区分了。
所以,要解决这个问题,就需要在取消的回调方法里做一个判断,来区分是点击右上角的取消,还是点击的取消按钮。
代码如下:
this.$confirm('请选择审核意见', '提示', {
confirmButtonText: '通过',
cancelButtonText: '驳回',
type: 'warning',
center: true,
closeOnPressEscape:false,//按下 ESC 键关闭弹窗
closeOnClickModal:false,//点击遮罩关闭弹窗
distinguishCancelAndClose:true,//区分取消与关闭
}).then(() => {
//确认回调
}).catch((action) => {
//取消按钮及右上角的关闭按钮回调
//在catch方法的回调参数中传递action,判断action的值为 cancel 还是 close,如果是close,就代表操作为点击右上角按钮,为 cancel,就是点击的取消按钮
if (action === 'cancel') {
//驳回
} else {
//关闭弹窗
return;
}
});