diff --git a/src/purp/pp/supplierprice/list/events/batchEvents.js b/src/purp/pp/supplierprice/list/events/batchEvents.js index 549d877a..81a54edc 100644 --- a/src/purp/pp/supplierprice/list/events/batchEvents.js +++ b/src/purp/pp/supplierprice/list/events/batchEvents.js @@ -130,13 +130,26 @@ function processResultBatchByCard(props, moduleId, rows, indexs) { let updateArray = []; let allRows = props.editTable.getAllRows(moduleId); let i = allRows.length; + // for (let j = 0; j < rows.length; j++) { + // let row = rows[j]; + // let obj = {index: indexs[j], data: row}; + // if (indexs[j] < i) { + // updateArray.push(obj); + // } else { + // insertArray.push(obj); + // } + // } + // 提取所有现有行的rowid,用于快速判断 + const existingRowIds = allRows.map(row => row.rowid); + for (let j = 0; j < rows.length; j++) { let row = rows[j]; - let obj = {index: indexs[j], data: row}; - if (indexs[j] < i) { - updateArray.push(obj); + let obj = { index: indexs[j], data: row }; + // 判断当前行的rowid是否已存在于allRows中 + if (existingRowIds.includes(row.rowid)) { + updateArray.push(obj); // 存在则更新 } else { - insertArray.push(obj); + insertArray.push(obj); // 不存在则插入 } } if (updateArray.length > 0) {