Commit 96afaf25ea235015e138fa3ab40ec8bc9895da15
1 parent
9a6fc48a
1.放大镜支持若数据根据条件已存在则修改,不存在插入
Showing
2 changed files
with
49 additions
and
3 deletions
src/components/Common/CommonBase.js
| ... | ... | @@ -2651,8 +2651,54 @@ export default (ChildComponent) => { |
| 2651 | 2651 | if (iControlIndex > -1) { |
| 2652 | 2652 | newCopyTo.control = controlData[iControlIndex]; |
| 2653 | 2653 | } |
| 2654 | - /* 第一条数据若字段值为空或者只有一条数据时 则添加到该行 否则新增一行 */ | |
| 2655 | - if (selectData.length === 1 || (index === 0 && commonUtils.isEmptyObject(sValue))) { | |
| 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]); | |
| 2658 | + console.log('existRowInd1ex', sActiveKey, existRowIndex); | |
| 2659 | + if ( sActiveKey && existRowIndex !== -1 ) { | |
| 2660 | + let tableDataRow = { ...tableData[existRowIndex] }; | |
| 2661 | + if (tbName === 'slave') { | |
| 2662 | + tableDataRow.sSqlConditionId = tableDataRow.sId; | |
| 2663 | + } | |
| 2664 | + // 赋值字段 | |
| 2665 | + tableDataRow = {...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo), ...tableDataRow }; | |
| 2666 | + tableData[existRowIndex] = tableDataRow; | |
| 2667 | + tableData[existRowIndex].handleType = 'update'; | |
| 2668 | + // 异步价格处理 | |
| 2669 | + tableData[existRowIndex] = await setProductPrice(tableData[existRowIndex], item, this.props); | |
| 2670 | + | |
| 2671 | + // 指令执行 | |
| 2672 | + if (instructType) { | |
| 2673 | + this.handleExecInstructSet({ | |
| 2674 | + type, | |
| 2675 | + sInstruct: instructType, | |
| 2676 | + showName: `${showName}-${type === 'blur' ? '离焦' : '变化'}`, | |
| 2677 | + }); | |
| 2678 | + } | |
| 2679 | + | |
| 2680 | + // 分页 & 状态保存 | |
| 2681 | + pagination.total = tableData.length; | |
| 2682 | + const addState = { [`${tbName}Data`]: tableData, [`${tbName}Pagination`]: pagination }; | |
| 2683 | + if (typeof isWait !== 'boolean') this.handleSaveState(addState); | |
| 2684 | + return; // 直接结束本次循环,不走下面原有逻辑 | |
| 2685 | + } else{ | |
| 2686 | + let tableDataRowAdd = this.handleTableAdd(tbName, true); | |
| 2687 | + if (tbName === 'slave') { | |
| 2688 | + tableDataRowAdd.sSqlConditionId = tableDataRowAdd.sId; | |
| 2689 | + } | |
| 2690 | + tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 | |
| 2691 | + tableDataRowAdd = await setProductPrice(tableDataRowAdd, item, this.props); | |
| 2692 | + if (instructType) { | |
| 2693 | + this.handleExecInstructSet({ | |
| 2694 | + type, | |
| 2695 | + sInstruct: instructType, | |
| 2696 | + showName: `${showName}-${type === 'blur' ? '离焦' : '变化'}`, | |
| 2697 | + }); | |
| 2698 | + } | |
| 2699 | + tableData.push(tableDataRowAdd); | |
| 2700 | + } | |
| 2701 | + } else if (selectData.length === 1 || (index === 0 && commonUtils.isEmptyObject(sValue))) { | |
| 2656 | 2702 | let tableDataRow = {}; // 取默认值 |
| 2657 | 2703 | if (tbName === 'master') { |
| 2658 | 2704 | tableDataRow = { ...tableData, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 | ... | ... |
src/components/Common/CommonNewBill.js
| ... | ... | @@ -2685,7 +2685,7 @@ const BillComponent = Form.create({ |
| 2685 | 2685 | separateTabName10 = separateTabConfig.showName; |
| 2686 | 2686 | } |
| 2687 | 2687 | } |
| 2688 | - console.log('333props', props); | |
| 2688 | + | |
| 2689 | 2689 | |
| 2690 | 2690 | const flexRowStyle = bFlow ? { display: "flex", flexDirection: "row" } : {}; |
| 2691 | 2691 | const flexContentStyle = bFlow ? { width: "75%" } : {}; | ... | ... |