Vue3与Ant-Design-Vue的Modal弹窗控制底部footer自定义

5 篇文章 0 订阅

一开始使用提示弹窗,都是直接调用的方法,使用 confirm() 、快捷地弹出确认框。

import {Modal} from "ant-design-vue";		//引入资源

//调用Modal的对话框
function showDialog(){
	Modal.confirm({
   		title: "提示",
   		content: "确定删除?",
   		okText: "确认",
   		okType: "danger",
   		cancelText: "取消",
   		onOk() {
   			//请求操作
   		},
 	});
}

效果如下,但是有时候如果我们需要自定义底部的按钮,比如调整底部的按钮顺序或者个数。又该如何操作呢?
在这里插入图片描述

 <!-- 弹窗 -->
  <a-modal 	title="提示"
    		width="500px"
  			v-model:visible="editModal.visible" 
  			v-model:confirmLoading="editModal.loading">  
	<div>确定删除?</div>  
    <template v-slot:footer>
        <a-button type="danger" @click="doDelete">确定</a-button>
        <a-button type="cancel" @click="editModal.visible=false">取消</a-button>
    </template>
  </a-modal>

简略代码

import {defineComponent, getCurrentInstance, reactive} from "vue";

class TestVO {
	id: string = '';
}

export default defineComponent({
	name: "",
  	setup() {
  		const {proxy}: any = getCurrentInstance();
  		 let state = reactive({
      		params: <any>{},
      		//...其余全局数据
      	});
      	
  		const editModal = reactive({
			visible: false,
			loading: false,
			data: new TestVO (),
		}) ;
		
		//显示提示对话框
		function showDialog(record: any){
		  editModal.visible = true;
		  editModal.data.id = record.id;
		}

		// 删除
		function doDelete() {
			editModal.loading = true,
			$ftsps.http.postData("url", {
				id: editModal.data.id,
			}).then((res: any) => {
				editModal.loading = false;
				if (res.success) {
					editModal.visible = false;
					$ftsps.message.success("删除成功");
					queryDataList();
				} else {
					$ftsps.message.error(res.errMsg);
				}
			});
		}

		return {
	      state,
	      showDialog,
	      doDelete,
	      editModal,
	   };
	}
})

在这里插入图片描述

注意的是由于是Vue3,slot属性是v2.6.0 +中已弃用的属性,使用slot属性会报错,以下是错误写法。

<template slot="footer"></template>
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值