MessageBox 的取消和右上角的关闭按钮,做区分,分别做不同事件处理。如图
驳回需要请求接口,通过也需要调用接口,点击右上角的关闭按钮是关闭弹窗。
官网示例
open() { | |
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', { | |
confirmButtonText: '确定', | |
cancelButtonText: '取消', | |
type: 'warning' | |
}).then(() => { | |
this.$message({ | |
type: 'success', | |
message: '删除成功!' | |
}); | |
}).catch(() => { | |
this.$message({ | |
type: 'info', | |
message: '已取消删除' | |
}); | |
}); | |
} |
distinguishCancelAndClose;true
默认情况下,当用户触发取消(点击取消按钮)和触发关闭(点击关闭按钮或遮罩层、按下 ESC 键)时,Promise 的 reject 回调和 callback
回调的参数均为 'cancel'。如果将 distinguishCancelAndClose
属性设置为 true,则上述两种行为的参数分别为 'cancel' 和 'close'。
open() { | |
this.$confirm('检测到未保存的内容,是否在离开页面前保存修改?', '确认信息', { | |
distinguishCancelAndClose: true, | |
confirmButtonText: '保存', | |
cancelButtonText: '放弃修改' | |
}) | |
.then(() => { | |
this.$message({ | |
type: 'info', | |
message: '保存修改' | |
}); | |
}) | |
.catch(action => { | |
this.$message({ | |
type: 'info', | |
message: action === 'cancel' | |
? '放弃保存并离开页面' | |
: '停留在当前页面' | |
}) | |
}); | |
} |
点击取消,关闭触发不同提示。可进行不同操作