diff --git a/src/components/AMap/src/components/MapTaskModal.vue b/src/components/AMap/src/components/MapTaskModal.vue index c7088ac..4b16520 100644 --- a/src/components/AMap/src/components/MapTaskModal.vue +++ b/src/components/AMap/src/components/MapTaskModal.vue @@ -295,7 +295,20 @@ async function handleSubmit() { try { setModalProps({ confirmLoading: true }); - state.mapData.mapTask = [...toRaw(getTaskOrdinaryDataSource()), ...toRaw(getTaskPresetDataSource())]; + // 处理提交之前逻辑 + const taskOrdinaryData = toRaw(getTaskOrdinaryDataSource()); + const taskPresetData = toRaw(getTaskPresetDataSource()); + // 校验表格是否通过 + const validateData:Promise[] = []; + taskOrdinaryData.forEach(item => { + validateData.push(item.onValid?.() || Promise.resolve(true)); + }); + taskPresetData.forEach(item => { + validateData.push(item.onValid?.() || Promise.resolve(true)); + }); + const validateResult = await Promise.all(validateData); + if (!validateResult.every(item => item)) return createMessage.error('表格校验未通过,请检查!'); + state.mapData.mapTask = [...taskOrdinaryData, ...taskPresetData]; // 处理提交完成之后逻辑 closeModal(); emit('success');