需求:同一页面多处使用相同的确认弹窗,弹窗展示内容及执行事件不同。
//以图片为例,点击switch开关,关闭对应选项前,执行二次确认,点击确定则关闭该选项。
const showConfirm = (val, type) => {
/**
* val:点击开关时,开关的当前状态(1:开,2:关)
* type:不同的开关序号
*/
let content = ''
let title = ''
function Play() {}
let p = new Play()
switch (type) {
case 1:
title = '确认关闭'
content = '描述内容'
p.open = function() {
//开启开关操作
}
p.close = function() {
//关闭开关操作
}
break
case 2:
title = '确认关闭'
content = '描述内容'
p.open = function() {
//开启开关操作
}
p.close = function() {
//关闭开关操作
}
break
case 3:
title = '是否关闭!'
content = '描述内容'
p.open = function() {
//开启开关操作
}
p.close = function() {
//关闭开关操作
}
break
case 4:
title = '是否关闭!'
content = '描述内容'
p.open = function() {
//开启开关操作
}
p.close = function() {
//关闭开关操作
}
break
}
if (val === 1) {
Modal.confirm({
title,
icon: createVNode(ExclamationOutlined),
content,
okText: '确认',
cancelText: '取消',
centered: true,
onCancel() {
p.open()
},
onOk() {
p.close()
}
})
} else {
p.open()
}
}