import { MyConfirm } from "@/types/Basics"; import confirm from "./Confirm.vue"; import { createApp } from "vue"; export default ({ title, msg, info, confirmText, closeText, isLoading, onOk, onCancel }: MyConfirm) => { return new Promise((reslove, reject) => { const instance = createApp(confirm, { title, msg, info, confirmText, closeText, isLoading, confirmFn: { onOk, reslove, }, closeFn: { onCancel, reslove, }, destroy: () => { closeUnmount(); }, }); // 创建一个节点 const vnode = document.createElement("div"); // 添加到body元素上 document.body.appendChild(vnode); // 实例挂载到节点上 instance.mount(vnode); // 关闭状态 // 注册实例并移除节点 function closeUnmount() { setTimeout(() => { instance.unmount(); document.body.removeChild(vnode); }, 100); } }); };