From dc8812a3594d461fd5c9097fbb99e860851dd11c Mon Sep 17 00:00:00 2001 From: qiankanghui Date: Mon, 10 Aug 2026 14:00:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(inspection):=20=E4=BF=AE=E5=A4=8D=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E8=AF=B7=E6=B1=82=E5=88=97=E8=A1=A8=E4=B8=AD=E5=88=A0?= =?UTF-8?q?=E9=99=A4PO=E9=A1=B9=E7=9A=84=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 记录被删除的PO的key和itemNo,用于保存时判断 - 使用poItemNo或itemNo作为删除标识(对应后端item_no) - 存储对象而非字符串,保留完整的itemNo信息 - 修复删除项解析逻辑,添加错误处理机制 --- .../inspection/inspectionRequestList.vue | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/views/modules/inspection/inspectionRequestList.vue b/src/views/modules/inspection/inspectionRequestList.vue index b45e72d..1ff08ab 100644 --- a/src/views/modules/inspection/inspectionRequestList.vue +++ b/src/views/modules/inspection/inspectionRequestList.vue @@ -2279,8 +2279,10 @@ export default { }).then(() => { const deletedRow = this.editPoDetailList[index] - // 记录被删除的PO的key,用于保存时判断 + // 记录被删除的PO的key和itemNo,用于保存时判断 const key = `${deletedRow.orderRef1 || ''}_${deletedRow.orderRef2 || ''}` + // 使用 poItemNo 或 itemNo 作为删除标识(对应后端 item_no) + const itemNo = deletedRow.poItemNo || deletedRow.po_item_no || deletedRow.itemNo || deletedRow.item_no || deletedRow.orderRef2 || '' // 如果删除的是原有PO(在originalEditPoDetailList中存在),则记录到deletedPoKeys const isOriginalPo = this.originalEditPoDetailList.some(item => { @@ -2288,8 +2290,9 @@ export default { return originalKey === key }) - if (isOriginalPo) { - this.deletedPoKeys.add(key) + if (isOriginalPo && itemNo) { + // 存储对象而非字符串,保留完整的itemNo信息 + this.deletedPoKeys.add(JSON.stringify({ key, itemNo })) } // 从列表中移除该行(仅前端移除,不立即调用后端接口) @@ -3474,10 +3477,17 @@ export default { // 0. 如果有删除的PO,先调用 deleteInspectionDetails if (this.deletedPoKeys.size > 0) { - const deletedItemNos = Array.from(this.deletedPoKeys).map(key => { - const parts = key.split('_') - return parts[1] || '' // 返回orderRef2作为itemNo - }).filter(itemNo => itemNo) + const deletedItemNos = [] + this.deletedPoKeys.forEach(itemStr => { + try { + const item = JSON.parse(itemStr) + if (item.itemNo) { + deletedItemNos.push(item.itemNo) + } + } catch (e) { + console.error('解析删除项失败:', itemStr, e) + } + }) if (deletedItemNos.length > 0) { promiseChain = promiseChain.then(() => {