ant-design-vue/components/modal/demo/confirm-router.vue

53 lines
1.4 KiB
Vue
Raw Normal View History

2021-09-01 07:04:46 +00:00
<docs>
---
order: 8
title:
zh-CN: 销毁确认对话框
en-US: destroy confirmation modal dialog
---
## zh-CN
使用 `Modal.destroyAll()` 可以销毁弹出的确认窗通常用于路由监听当中处理路由前进后退不能销毁确认对话框的问题
## en-US
`Modal.destroyAll()` could destroy all confirmation modal dialogs. Usually, you can use it in router change event to destroy confirm modal dialog automatically
</docs>
<template>
<a-button @click="showConfirm">Confirm</a-button>
</template>
<script lang="ts">
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { createVNode, defineComponent } from 'vue';
import { Modal } from 'ant-design-vue';
export default defineComponent({
setup() {
const showConfirm = () => {
for (let i = 0; i < 3; i += 1) {
setTimeout(() => {
Modal.confirm({
content: 'destroy all',
icon: createVNode(ExclamationCircleOutlined),
onOk() {
return new Promise((resolve, reject) => {
setTimeout(Math.random() > 0.5 ? resolve : reject, 1000);
}).catch(() => console.log('Oops errors!'));
},
cancelText: 'Click to destroy all',
onCancel() {
Modal.destroyAll();
},
});
}, i * 500);
}
};
return {
showConfirm,
};
},
});
</script>