From a1f31cf3ef329c6a3121c4141f7abcd2c67ddd49 Mon Sep 17 00:00:00 2001 From: trp <2477421791@qq.com> Date: Fri, 29 Dec 2023 14:19:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=94=90=E6=B6=A6=E5=B9=B3=EF=BC=9A=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=94=AF=E4=B8=80=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tunnelScene/editEquComp/editDialog.vue | 40 +++++++++---- .../content/tunnelScene/request/index.js | 60 +++++++++++-------- 2 files changed, 63 insertions(+), 37 deletions(-) diff --git a/src/components/content/tunnelScene/editEquComp/editDialog.vue b/src/components/content/tunnelScene/editEquComp/editDialog.vue index a9fc3cb..16434de 100644 --- a/src/components/content/tunnelScene/editEquComp/editDialog.vue +++ b/src/components/content/tunnelScene/editEquComp/editDialog.vue @@ -68,9 +68,9 @@ let maxConstructionLength = ref(0); //计算锚点之间距离 const pointDistance_str = computed( () => - `${params.pointGap}米*${params.pointNum}=${ + `${params.pointGap}米*${params.pointNum}=${( params.pointGap * params.pointNum - }米` + ).toFixed(2)}米` ); watch( @@ -92,16 +92,25 @@ const equipmentSetting = reactive({ threshold: "", //阈值 typeKey: null, //设备选择(设备名称) }); +function resetEquipmentSetting() { + equipmentSetting.equipmentId = null; + equipmentSetting.equipmentName = ""; + equipmentSetting.equipmentType = ""; + equipmentSetting.position = ""; + equipmentSetting.threshold = ""; + equipmentSetting.typeKey = null; + equipment.value.reset(); + equipmentType.value.reset(); +} + // 绑定选择的设备类型 function handleTypeChange(optionItem) { equipmentSetting.equipmentType = optionItem.value; - console.log("option", equipmentSetting); } function handleEquipmentChange(equipmentItem) { equipmentSetting.equipmentName = equipmentItem.label; equipmentSetting.equipmentId = equipmentItem.equipmentId; equipmentSetting.typeKey = equipmentItem.value; - console.log("option", equipmentSetting); } // 设备类型选项参数 let options = reactive([{ label: "暂无数据", value: "" }]); @@ -144,11 +153,7 @@ function handelInput(e) { // 处理取消事件 function handleCancel() { - equipmentSetting.equipmentType = ""; - equipmentSetting.chooseEquipment = null; - equipmentSetting.threshold = ""; - equipment.value.reset(); - equipmentType.value.reset(); + resetEquipmentSetting(); // 发射事件给tunnel父组件 emit("cancel"); } @@ -183,12 +188,21 @@ function addEquipment() { message: "添加成功!", type: "success", }); + resetEquipmentSetting(); }) .catch((err) => { - ElMessage({ - message: "添加异常!", - type: "warning", - }); + if (err === 3000) { + ElMessage({ + message: "该设备已添加!", + type: "warning", + }); + resetEquipmentSetting(); + } else { + ElMessage({ + message: "添加异常!", + type: "warning", + }); + } }); } diff --git a/src/components/content/tunnelScene/request/index.js b/src/components/content/tunnelScene/request/index.js index 9d95938..babe138 100644 --- a/src/components/content/tunnelScene/request/index.js +++ b/src/components/content/tunnelScene/request/index.js @@ -37,29 +37,33 @@ export const saveEquipment = (equipmentInfo, pointGap) => { let tempModelEquipmentList = [...modelEquipmentList]; //数组克隆 tempModelEquipmentList.push(toRaw(equipmentInfo)); return new Promise((resolve, reject) => { - apiSaveEquipment({ - constructionLength: autoComputeConstructionLength( - tempModelEquipmentList, - pointGap - ), - isDefault, - modelEquipmentList: tempModelEquipmentList, - remarks, - serialNumber, - tunnelId, - tunnelLength: totalLength, - tunnelName, - }) - .then((res) => { - if (res?.code === 1000) { - modelEquipmentList.push(toRaw(equipmentInfo)); //存入本地 - resolve(); - } - reject(res); - }) - .catch((err) => { - reject(); - }); + console.log("equId", equipmentInfo.equipmentId); + hasEquipment(equipmentInfo.equipmentId) + ? reject(3000) + : apiSaveEquipment({ + constructionLength: autoComputeConstructionLength( + tempModelEquipmentList, + pointGap + ), + isDefault, + modelEquipmentList: tempModelEquipmentList, + remarks, + serialNumber, + tunnelId, + tunnelLength: totalLength, + tunnelName, + }) + .then((res) => { + if (res?.code === 1000) { + modelEquipmentList.push(toRaw(equipmentInfo)); //存入本地 + resolve(); + } + console.log("add", res); + reject(res); + }) + .catch((err) => { + reject(); + }); }); }; @@ -103,7 +107,7 @@ export const deleteEquipment = (equipmentId, pointGap) => { .then((res) => { if (res?.code === 1000) { modelEquipmentList = modelEquipmentList.filter( - (item) => item.equipmentId != equipmentId + (item) => item.equipmentId === equipmentId ); resolve(); } @@ -131,3 +135,11 @@ function autoComputeConstructionLength(modelEquipmentList, pointGap) { }); return maxLength; } + +function hasEquipment(equipmentId) { + let result = false; + modelEquipmentList.forEach((item) => { + if (item.equipmentId === equipmentId) result = true; + }); + return result; +}