Commit 9e39b5b3f76ad5ccdcdb5f2301b28b6b4a94d094
1 parent
96afaf25
1.放大镜支持若数据根据条件,支持slave.A.b的方式,已存在则修改,不存在插入
Showing
1 changed file
with
22 additions
and
3 deletions
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] }; | ... | ... |