ant-design-vue搞一个等待回调的确认弹窗

文章介绍了如何在Vue3项目中使用AntDesignVue库实现确认对话框,包括使用`checkComfirm`函数、设置自定义提示内容和关闭蒙版功能。作者分享了处理确认对话框的方法和遇到的问题。

在网上搜了一下没搜到,所以自己搞了一个,分享给跟我一样有需要的小白。

HandleComfirm.vue组件代码:

//HandleComfirm.vue组件代码:
<script setup lang="ts">
  import { Modal } from 'ant-design-vue';

  function checkComfirm(method) {
    return new Promise((resolve) => {
      const modal = Modal.confirm();//这里提示需要输入参数,我没搞明白,希望有大神指点
      modal.update({
        title: '请确认',
        content: method.content,//自己的提示语
        maskClosable: false,//不允许通过点击蒙版关闭弹窗
        onOk: () => {
          resolve(true);
          //console.log('确定了');
        },
        onCancel: () => {
          resolve(false);
          // console.log('取消了')
        },
      });
    });
  }
  defineExpose({ checkComfirm });
</script>

我这里是vue3 + ts,如果不是用ts的话,那就把lang="ts"去掉就行了,自己灵活了

引用HandleComfirm组件的页面:


<script setup lang="ts">
  import HandleComfirm from '/你的组件路径/HandleComfirm.vue';
  //通过某个函数触发弹窗,如:handleSubmit
  async function handleSubmit() {
    try {
      //打开并等待用户点击获取回调
      const isSubmit = await $handleComfirm.value?.checkComfirm({ content: '确定提交数据?' });
      //得到回调,开始判断
      if (!isSubmit) {
        return;
      }
      //你的其他内容...
    }catch(){}
  }

这里为什么要关掉maskClosable呢,看大家的场景需要吧,因为antdesign没有提供关闭蒙版的api(可能是我没找到,我太菜了),我没有办法在关闭蒙版时执行我需要的操作,所以我就关掉了。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值