您的位置:首页 > 教育 > 培训 > 广州网站推广自助_软件高端开发_汕头seo排名公司_软文范例300字

广州网站推广自助_软件高端开发_汕头seo排名公司_软文范例300字

2025/9/23 15:47:13 来源:https://blog.csdn.net/m0_53001289/article/details/142334717  浏览:    关键词:广州网站推广自助_软件高端开发_汕头seo排名公司_软文范例300字
广州网站推广自助_软件高端开发_汕头seo排名公司_软文范例300字

一、问题
Ant Design Vue 使用 Modal.confirm 之类的静态方法 发现无法关闭弹窗,网上搜了好多都是降低版本,并锁定版本,但是目前在做的项目对UI样式要求很高,降低或者升级版本会导致部分样式不符合当前的UI规范,于是通过操作Dom的方式解决。

二、解决方法

// 静态方法打开 Modal 弹窗
Modal.confirm({title:  'This is a success message',icon: createVNode(InfoCircleFilled),content: 'some messages...some messages...',okText: 'yes',cancelText: 'no',onOk() {// 操作dom的函数 用于关闭弹窗closeMyFn()console.log('onOk');},onCancel() {closeMyFn()console.log('onCancel');},});timer.value = setTimeout(()=> {// 打开弹窗时给右上角的 X 绑定点击事件clickX()},200)// 关闭弹窗
const closeMyFn= async () => {let dom = document.getElementsByClassName('ems-front-modal-body')[0]let domRoot = document.getElementsByClassName('ems-front-modal-root')[0]dom.remove()domRoot.remove()
}// 点击 Modal 右上角的 X
const clickX = async ()=> {modalXDom.value = document.getElementsByClassName('ems-front-modal-close')[0]modalXDom.value.addEventListener('click',()=>{// 点击右上角的 X 调用关闭弹窗的方法closeMyFn()})
}// 卸载的时候清空定时器和绑定的点击事件
onUnmounted(() => {modalXDom.value && modalCloseDom.value.removeEventListener('click', () => {})timer.value && clearTimeout(timer.value)
})

三、注意
如果一个页面既有 Modal.confirm (静态方法点击的弹窗) 又有 < a-modal >类的弹窗需改给 < a-modal > 加 v-if 例如

<a-modalv-if="visible"v-model:visible="visible"title="标题"@ok="handleOk">
</a-modal>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com