diff --git a/src/components/Common/CommonBase.js b/src/components/Common/CommonBase.js index f5c57d2..b74e8b9 100644 --- a/src/components/Common/CommonBase.js +++ b/src/components/Common/CommonBase.js @@ -2652,9 +2652,28 @@ export default (ChildComponent) => { newCopyTo.control = controlData[iControlIndex]; } if (selectConfig?.sControlName?.toLowerCase().includes('_edit')) { - const sActiveKey = selectConfig.sDefault; - // 检查当前 item 的 sActiveKey 是否已经在 tableData 中存在 - const existRowIndex = tableData.findIndex(row => row?.[sActiveKey] === item?.[sActiveKey]); + const sActiveKey = selectConfig?.sDefault || ''; + const keyParts = sActiveKey.split('.'); // slave.A.B 或 slave.A + const len = keyParts.length; + + let lastSecondKey = ''; + let lastKey = ''; + + if (len === 3) { + // 格式:slave.A.B → 取 A 和 B + lastSecondKey = keyParts[1]; // A + lastKey = keyParts[2]; // B + } else if (len === 2) { + // 格式:slave.A → 取 A 和 A + lastSecondKey = keyParts[1]; // A + lastKey = keyParts[1]; // A + } else { + lastSecondKey = sActiveKey; + lastKey = lastSecondKey; + } + const existRowIndex = tableData.findIndex( + row => row[lastSecondKey] === item[lastKey] + ); console.log('existRowInd1ex', sActiveKey, existRowIndex); if ( sActiveKey && existRowIndex !== -1 ) { let tableDataRow = { ...tableData[existRowIndex] };