diff --git a/src/components/Common/CommonListEvent.js b/src/components/Common/CommonListEvent.js index 8279640..e872ebc 100644 --- a/src/components/Common/CommonListEvent.js +++ b/src/components/Common/CommonListEvent.js @@ -1527,7 +1527,7 @@ export default (ChildComponent) => { } /* 单据页复制到 */ - handleCopyTo = async (name, sActiveId) => { + handleCopyTo = async (name, sActiveId, iFlag) => { /* 待用数据声明 */ const { slaveConfig, slaveSelectedData, token, app, sModelsId, formRoute, slaveInfoConfig, slaveInfoSelectedData, slaveFilterCondition, @@ -1859,6 +1859,23 @@ export default (ChildComponent) => { sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); } } + } else if (dataReturn.code === -7) { + // eslint-disable-next-line no-underscore-dangle + const _this = this; + confirm({ + title: '是否继续', /* 防呆校验 */ + content: dataReturn.msg, + onOk() { + iFlag = 1; + _this.handleCopyTo(name,sActiveId, iFlag); + }, + onCancel() { + }, + }); + this.props.onSaveState({ + loading: false, + }); + return true; } else { this.props.getServiceError(dataReturn); } diff --git a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js index 01a4814..5fe0d36 100644 --- a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js +++ b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js @@ -17,6 +17,7 @@ import CommonView from "@/components/Common/CommonView"; import StaticEditTable from "@/components/Common/CommonTable"; import CommonViewDragable from "@/components/Common/CommonViewDragable"; import styles from "./index.less"; +import { Button, Space } from "antd"; const { Panel } = Collapse; @@ -3679,29 +3680,32 @@ const materialsProps = props => { returnProps.onDataRowDel = ({ name, tableSelectedRowKeys }) => { if (name === "materials0") { /* 删除全部材料时 对应删除替代料 */ - const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materials0Data } = props; - if (commonUtils.isEmptyArr(tableSelectedRowKeys)) { + const { materials0Data } = props; + const selectedRowAllKeys = tableSelectedRowKeys || props[`${name}SelectedRowKeys`] ; + console.log('删除数据:', selectedRowAllKeys); + + if (commonUtils.isEmptyArr(selectedRowAllKeys)) { message.error("请选择数据!"); return; } if (commonUtils.isNotEmptyArr(materials0Data)) { - const materials0ChildData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sParentMaterialsId)); + const materials0ChildData = materials0Data.filter(item => selectedRowAllKeys.includes(item.sParentMaterialsId)); if (commonUtils.isNotEmptyArr(materials0ChildData)) { materials0ChildData.forEach(item => { - tableSelectedRowKeys.push(item.sId); + selectedRowAllKeys.push(item.sId); }); } /* 删除子墨 */ - const materials0InkData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sInkFatherMaterialsTbId)); + const materials0InkData = materials0Data.filter(item => selectedRowAllKeys.includes(item.sInkFatherMaterialsTbId)); if (commonUtils.isNotEmptyArr(materials0InkData)) { materials0InkData.forEach(item => { - tableSelectedRowKeys.push(item.sId); + selectedRowAllKeys.push(item.sId); }); } - const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys, "sId"); /* 全部材料删除 */ - const materials0ChildReturnData = props.otherTableDel("materials0Child", tableSelectedRowKeys, "sId"); /* 替代料删除 */ + const materials0ReturnData = props.otherTableDel("materials0", selectedRowAllKeys, "sId"); /* 全部材料删除 */ + const materials0ChildReturnData = props.otherTableDel("materials0Child", selectedRowAllKeys, "sId"); /* 替代料删除 */ props.onSaveState({ ...materials0ReturnData, ...materials0ChildReturnData, @@ -4271,6 +4275,144 @@ const OtherComponent = props => { } return str; }; + // 删除材料方法 + const handleDelAllMaterials = (filterData, bPartDel) => { + console.log("handleDelAllMaterials", filterData, bPartDel); + console.log('sss', props); + const { materials0SelectedRowKeys = [], materials0Data = [] } = props; + + // 如果是撤销操作 (bPartDel === 7) + if (bPartDel === 7) { + const undo = async () => { + try { + const { masterData, sModelsId, token, slaveData, controlData = [], controlSelectedRowKeys = [], + slaveSelectedRowKeys = [], + processData = [], + materialsConfig + } = props; + const controlRow = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? + controlData.find(item => controlSelectedRowKeys.includes(item.sId)) : controlData[0]; + const sCombineMemoObj = commonUtils.isNotEmptyObject(controlRow?.sCombinedMemo) && commonUtils.isJSON(controlRow.sCombinedMemo) ? + JSON.parse(controlRow.sCombinedMemo) : [] ; + console.log(sCombineMemoObj, controlRow, 's'); + let slaveObj = slaveData.find(item => + sCombineMemoObj?.some(obj => obj.sProductNo === item.sProductNo) + ); + if(commonUtils.isNotEmptyObject(slaveObj)){ + if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)){ + slaveObj = slaveData.find(item => slaveSelectedRowKeys.includes(item.sId)) + } else{ + slaveObj = slaveData[0]; + } + } + + const btnRoveObj = materialsConfig?.gdsconfigformslave.find(item => item.sControlName?.includes('BtnRevoke')); + const materialsAssignField = btnRoveObj?.materialsAssignField; + const dataUrl = `${commonConfig.server_host}salesorder/getMaterialsCardDataByCustomIdProductId/?sModelsId=${sModelsId}`; + const sRowData = commonUtils.isNotEmptyObject(slaveObj) ? [slaveObj] : []; + const condition = { sRowData }; + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + if (dataReturn.code === 1) { + message.success("撤销成功!"); + const returnData = dataReturn.dataset.rows[0]; + const materialsReturnData = returnData?.materialsData || []; + const newCopyTo = { control: controlRow } + if (commonUtils.isNotEmptyArr(materialsReturnData)) { + materialsReturnData.filter(item => item.sType !== '2').forEach((materialsItem) => { + const newSid = commonUtils.createSid(); + let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo, { newSid }); // 取默认值 + if(materialsAssignField) { + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; + } + // materialsRow = {...materialsItem}; + materialsRow.handleType = 'add'; + materialsRow.sId = newSid; + materialsRow.sParentId = masterData.sId; + materialsRow.sControlId = controlRow.sId; + materialsRow.sPartsName = controlRow.sPartsName; + materialsRow.sSlaveId = slaveObj?.sId; + materialsRow.sOriginalId = materialsItem.sId; + materialsRow.sZmldlt = materialsItem.sZmldlt; + materialsRow.sProcessId = materialsItem.sProcessId; + materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId; + // 材料对应工序的ID要变化 + if (commonUtils.isNotEmptyArr(processData)) { + const iProcessIndex = processData.findIndex(prow => prow.sControlId === controlRow.sId + && materialsRow.sProcessId === prow.sProcessId + ); + if (iProcessIndex > -1) { + materialsRow.sProcessTbId = processData[iProcessIndex].sId; + } + } + materials0Data.push(materialsRow); + }); + } + + // 这里可以根据返回的数据更新界面 + console.log("撤销返回数据:", materialsReturnData); + console.log("汇总:", materials0Data); + props.onSaveState({materials0Data}) + } else { + message.error(dataReturn.msg || "撤销失败!"); + } + } catch (error) { + message.error(error + "撤销操作失败!"); + } + }; + + Modal.confirm({ + title: "确认要撤销操作吗?", + onOk() { + undo(); + }, + okText: '确定', + cancelText: '取消' + }); + return; + } + + // 原有的删除逻辑 + const partFilterData = filterData.filter(item => item.bMark); + console.log('ffff', partFilterData); + if (bPartDel) { + if (!partFilterData.length) { + message.info("请先选择要删除的数据!"); + return; + } + } + + const delAll = () => { + const sIds = filterData.map(item => item.sId); + // 尝试调用删除方法 - 参数需要匹配 CommonBase 的 handleTableDel 方法签名 + if (props.onDataRowDel && typeof props.onDataRowDel === 'function') { + console.log('删除全部材料sId222集合', sIds); + props.onDataRowDel("materials0", false, sIds, undefined); + } else { + console.error("onDataRowDel 方法不存在或不是函数"); + message.error("删除错误"); + } + } + + const delPart = () => { + const sIds = partFilterData.map(item => item.sId); + // 尝试调用删除方法 - 参数需要匹配 CommonBase 的 handleTableDel 方法签名 + if (props.onDataRowDel && typeof props.onDataRowDel === 'function') { + props.onDataRowDel("materials0", false, sIds, undefined); + } else { + console.error("onDataRowDel 方法不存在或不是函数"); + message.error("删除功能不可用"); + } + } + + Modal.confirm({ + title: `确认要删除${bPartDel ? "选中" : "全部"}吗?`, + onOk() { + bPartDel ? delPart() : delAll(); + }, + okText: '确定', + cancelText: '取消' + }); + }; const [activeKey, setActiveKey] = useState(["process", "material", "color", "vision", ...materialsChildInfoList]); const getHeaderIcon = tablename => ( @@ -4293,7 +4435,7 @@ const OtherComponent = props => { - + {materialsChildInfoListFilter.map(tablename => { const { showName } = props[`${tablename}Config`]; @@ -4501,20 +4643,33 @@ const MaterialsComponent = props => {
- {/* {index === 0 && ( + {true && (
- + + + {/* props.onDelAllMaterials?.(materialsOtherPropsType.data, 7)}*/} + {/*>*/} + {/* 撤销*/} + {/**/} + +
- )} */} + )}
{materialsChildTableProps ? (