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(() => {