Commit 9e39b5b3f76ad5ccdcdb5f2301b28b6b4a94d094

Authored by Min
1 parent 96afaf25

1.放大镜支持若数据根据条件,支持slave.A.b的方式,已存在则修改,不存在插入

src/components/Common/CommonBase.js
... ... @@ -2652,9 +2652,28 @@ export default (ChildComponent) => {
2652 2652 newCopyTo.control = controlData[iControlIndex];
2653 2653 }
2654 2654 if (selectConfig?.sControlName?.toLowerCase().includes('_edit')) {
2655   - const sActiveKey = selectConfig.sDefault;
2656   - // 检查当前 item 的 sActiveKey 是否已经在 tableData 中存在
2657   - const existRowIndex = tableData.findIndex(row => row?.[sActiveKey] === item?.[sActiveKey]);
  2655 + const sActiveKey = selectConfig?.sDefault || '';
  2656 + const keyParts = sActiveKey.split('.'); // slave.A.B 或 slave.A
  2657 + const len = keyParts.length;
  2658 +
  2659 + let lastSecondKey = '';
  2660 + let lastKey = '';
  2661 +
  2662 + if (len === 3) {
  2663 + // 格式:slave.A.B → 取 A 和 B
  2664 + lastSecondKey = keyParts[1]; // A
  2665 + lastKey = keyParts[2]; // B
  2666 + } else if (len === 2) {
  2667 + // 格式:slave.A → 取 A 和 A
  2668 + lastSecondKey = keyParts[1]; // A
  2669 + lastKey = keyParts[1]; // A
  2670 + } else {
  2671 + lastSecondKey = sActiveKey;
  2672 + lastKey = lastSecondKey;
  2673 + }
  2674 + const existRowIndex = tableData.findIndex(
  2675 + row => row[lastSecondKey] === item[lastKey]
  2676 + );
2658 2677 console.log('existRowInd1ex', sActiveKey, existRowIndex);
2659 2678 if ( sActiveKey && existRowIndex !== -1 ) {
2660 2679 let tableDataRow = { ...tableData[existRowIndex] };
... ...