From 7d9f422354a560e33ef648e51c6dc74637dde755 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Tue, 30 Aug 2022 08:34:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=9C=B0=E5=9B=BE=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AMap/src/components/MapTaskPresetModal.vue | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/components/AMap/src/components/MapTaskPresetModal.vue b/src/components/AMap/src/components/MapTaskPresetModal.vue index f563f4b..2da457c 100644 --- a/src/components/AMap/src/components/MapTaskPresetModal.vue +++ b/src/components/AMap/src/components/MapTaskPresetModal.vue @@ -48,7 +48,6 @@ import { buildUUID } from '/@/utils/uuid'; import { useMessage } from '/@/hooks/web/useMessage'; import { cloneDeep } from 'lodash-es'; - import { ApiSelect } from '/@/components/Form'; import { listOrg } from '/@/api/platform/common/controller/org'; /** 类型规范统一声明定义区域 */ @@ -93,7 +92,7 @@ editRow: true, editRule: (text: string, record: Recordable) => { if (!text) return Promise.resolve('收样员必填!'); - if (getDataSource().some(item => item.courierUserId == text)) return Promise.resolve('收样员不能重复!'); + if (getDataSource().filter(item => item.key != record.key).some(item => item.courierUserId == text)) return Promise.resolve('收样员不能重复!'); return Promise.resolve(''); }, editComponent: 'Select', @@ -221,10 +220,23 @@ /** 处理弹出框提交 */ async function handleSubmit() { try { + setModalProps({ confirmLoading: true }); // 处理提交之前逻辑 const formData = await formElRef.value.validate(); - setModalProps({ confirmLoading: true }); const mapTaskPresetData = toRaw(getDataSource()); + const validateData:Promise[] = []; + // 清除旧的上级医检医院 + mapTaskPresetData.forEach(item => { + validateData.push(item.onValid?.() || Promise.resolve(true)); + if(state.orgList.findIndex(e => e.value == item.destinationPresetId) != -1) { + item.destinationPresetId = ''; + item.destinationPresetName = '等待收样员设置!'; + item.destinationPresetlng = ''; + item.destinationPresetlLat = ''; + } + }); + const validateResult = await Promise.all(validateData); + if (!validateResult.every(item => item)) return createMessage.error('表格校验未通过,请检查!'); // 自动填充交接最终到达上级医检医院 const lastElement = mapTaskPresetData[mapTaskPresetData.length - 1]; const option = state.orgList.find(item => item.value == formData.destinationPresetId);