From 9e39b5b3f76ad5ccdcdb5f2301b28b6b4a94d094 Mon Sep 17 00:00:00 2001 From: pengm <674192343@qq.com> Date: Mon, 18 May 2026 09:42:28 +0800 Subject: [PATCH] 1.放大镜支持若数据根据条件,支持slave.A.b的方式,已存在则修改,不存在插入 --- src/components/Common/CommonBase.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) 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] }; -- libgit2 0.22.2