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,9 +2652,28 @@ export default (ChildComponent) => {
2652 newCopyTo.control = controlData[iControlIndex]; 2652 newCopyTo.control = controlData[iControlIndex];
2653 } 2653 }
2654 if (selectConfig?.sControlName?.toLowerCase().includes('_edit')) { 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 console.log('existRowInd1ex', sActiveKey, existRowIndex); 2677 console.log('existRowInd1ex', sActiveKey, existRowIndex);
2659 if ( sActiveKey && existRowIndex !== -1 ) { 2678 if ( sActiveKey && existRowIndex !== -1 ) {
2660 let tableDataRow = { ...tableData[existRowIndex] }; 2679 let tableDataRow = { ...tableData[existRowIndex] };