vue3 a-modal点击弹窗外让弹窗不关闭,且每次关闭置空输入框数据。

vue3 a-modal点击弹窗外让弹窗不关闭,且每次关闭置空输入框数据。

点击弹窗区域外不关闭弹窗::maskClosable=“false”

@cancel="handleClose"方法关闭modal置空数据

<a-modal  v-model:visible="modalOpen" title="下发" width='50%' 
    :mask-closable="false" :destroy-on-close="true"  @cancel="handleClose">
    <a-form ref="formRef" :model="formData" :rules="formRules" layout="vertical">
			<a-row :gutter="16">
				<a-col :span="12">
					<a-form-item label="类别:" name="alarmTypeName">
						<a-input :disabled="true" v-model:value="modalDetial.value.alarmTypeName" placeholder="请输入类别"
							allow-clear />
					</a-form-item>
				</a-col>
				<a-col :span="12">
					<a-form-item label="时间:" name="alarmTime">
						<a-input :disabled="true" v-model:value="modalDetial.value.alarmTime" placeholder="请输入时间"
							allow-clear />
					</a-form-item>
				</a-col>
			</a-row>
	</a-form>
	<template #footer>
		<a-button style="margin-right: 8px" @click="handleClose">关闭</a-button>
		<a-button type="primary" :loading="formLoading" @click="onSubmit">下发</a-button>
	</template>
</a-modal>
	...
	...
	...
//点击关闭按钮
const handleClose = () => {
	formData.value = {}
	modalOpen.value = false
}
//点击提交按钮
const onSubmit = () => {
	    //接口发送请求
		warningInfoApi.addWork(params)
			.then((res) => {
				loadData()//刷新数据
				handleClose()//调关闭modal方法置空input
			})
	})
}
Vue-Final-Modal是一个基于Vue.js的轻量级弹窗组件库,它可能遇到你说的问题是因为当多个modal同时打开时,它们各自都有一个独立的关闭按钮,并且默认情况下会覆盖其他modal关闭动作。如果你想要解决这个问题,可以考虑以下几个方案: 1. **控制唯一标识**:为每个modal实例添加唯一的标识符,然后通过这个标识判断哪个modal应该被关闭,而不是简单地覆盖所有。 ```javascript <template> <final-modal v-for="(modal, index) in modals" :key="index" @close="handleClose(modal.id)"> <!-- modal内容 --> </final-modal> </template> <script> export default { data() { return { modals: [], // 初始化一个空数组存储modal的状态 }; }, methods: { handleClose(id) { this.modals = this.modals.filter((modal) => modal.id !== id); }, }, }; </script> ``` 2. **阻止默认关闭事件**:在组件内处理关闭事件时,可以检查是否有其他弹窗正在显示,如果没有再触发关闭操作。 ```javascript methods: { closeModal(id) { if (!this.showingOtherModals()) { this.handleClose(id); } }, showingOtherModals() { return this.modals.some((modal) => modal.isActive); }, } ``` 3. **全局管理状态**:如果弹窗的数量不是很多,也可以考虑在整个应用中维护一个全局状态,统一管理所有modal的显示和隐藏。 无论哪种方法,都需要在`final-modal`的关闭事件上做一些定制处理,确保点击关闭按钮时只关闭当前的modal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值