vuecssuiant-designantdreactantantd-vueenterprisefrontendui-designvue-antdvue-antd-uivue3vuecomponent
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
<docs> |
|
--- |
|
order: 9 |
|
title: |
|
zh-CN: 确认对话框(promise) |
|
en-US: Confirmation modal dialog use promise |
|
--- |
|
|
|
## zh-CN |
|
|
|
使用 `confirm()` 可以快捷地弹出确认框。onCancel/onOk 返回 promise 可以延迟关闭 |
|
|
|
## en-US |
|
|
|
To use `confirm()` to popup confirmation modal dialog. Let onCancel/onOk function return a promise object to |
|
delay closing the dialog. |
|
|
|
</docs> |
|
|
|
<template> |
|
<a-button @click="showConfirm">Confirm</a-button> |
|
</template> |
|
<script lang="ts" setup> |
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue'; |
|
import { createVNode } from 'vue'; |
|
import { Modal } from 'ant-design-vue'; |
|
const showConfirm = () => { |
|
Modal.confirm({ |
|
title: 'Do you want to delete these items?', |
|
icon: createVNode(ExclamationCircleOutlined), |
|
content: 'When clicked the OK button, this dialog will be closed after 1 second', |
|
onOk() { |
|
return new Promise((resolve, reject) => { |
|
setTimeout(Math.random() > 0.5 ? resolve : reject, 1000); |
|
}).catch(() => console.log('Oops errors!')); |
|
}, |
|
// eslint-disable-next-line @typescript-eslint/no-empty-function |
|
onCancel() {}, |
|
}); |
|
}; |
|
</script>
|
|
|