diff --git a/src/components/Common/Flows/CommonFlow.js b/src/components/Common/Flows/CommonFlow.js index ec838a0..12b2de5 100644 --- a/src/components/Common/Flows/CommonFlow.js +++ b/src/components/Common/Flows/CommonFlow.js @@ -36,7 +36,7 @@ const OverviewFlow = (props) => { if (commonutils.isNotEmptyArr(initialEdges)) { initialEdges.forEach((item) => { if (commonutils.isNotEmptyStr(item.markerEnd)) { - const markerObj = { + const markerObj = { type: MarkerType.ArrowClosed, } item.markerEnd = markerObj @@ -123,11 +123,11 @@ const OverviewFlow = (props) => { 单一部件 合版部件 组装部件 - 选择工序 - 选择材料 - 删除 - 保存 - 反向生成工单 + {/*选择工序*/} + {/*选择材料*/} + {/*删除*/} + {/*保存*/} + {/*反向生成工单*/} 开单逻辑错误 handleChangeValue(e)} value={value} /> diff --git a/src/components/IndexCenter/IndexCenter.js b/src/components/IndexCenter/IndexCenter.js index e7f1554..5ab4902 100644 --- a/src/components/IndexCenter/IndexCenter.js +++ b/src/components/IndexCenter/IndexCenter.js @@ -204,12 +204,16 @@ class IndexCenter extends Component { // this.tableTree.scrollTop = 0; // } const addState = {}; - Object.keys(model).forEach((child, index) => { + Object.keys(model).sort((a, b) => { + const firstA = model[a][0]?.iJsOrder || 0; + const firstB = model[b][0]?.iJsOrder || 0; + return firstA - firstB; + }).forEach((child, index) => { const name = child.split('_')[0]; // const num = child.split('_')[1]; let num = 0; // const key = name; - const data = model[child]; + const data = model[child].sort((a, b) => a.iJsOrder - b.iJsOrder); data.forEach((item, index) => { let { dToDayNum } = item; dToDayNum = Number(dToDayNum); diff --git a/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js index 0cdd44f..a4cb22e 100644 --- a/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js +++ b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js @@ -19,6 +19,7 @@ import CommonViewDragable from "@/components/Common/CommonViewDragable"; import AntdDraggableModal from "@/components/Common/AntdDraggableModal"; import styles from "./index.less"; import CommonExamInfo from "../../Common/CommonExamInfo"; +import { Space } from "antd"; const { Panel } = Collapse; @@ -302,7 +303,7 @@ const WorkOrderPackTableTreeNewEvent = props => { sVerArray.push(sVerStr); } }); - console.log('copyTo', copyTo, sVerArray); + const sProductIds = sProductIdArray.toString(); const sProductTechnologyVer =sVerArray.toString(); const sRowData = copyTo?.slaveData || []; @@ -4457,6 +4458,146 @@ const OtherComponent = props => { }; const [activeKey, setActiveKey] = useState(["process", "material", "color", "vision", ...materialsChildInfoList]); + + // 删除材料方法 + 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('删除全部材料sId集合', 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 getHeaderIcon = tablename => ( { - + { materialsTabValue === 22 && } {materialsChildInfoListFilter.map(tablename => { @@ -4750,37 +4891,50 @@ const MaterialsComponent = props => { } // 限制编辑-劲嘉定制 - if (index === 0 || index === 3) { - materialsOtherPropsType.otherlimitDisabled = params => { - const { record, sName } = params; - let { enabledNew } = params; - if (!["101251240115016082594412050"].includes(props.sModelsId)) return enabledNew; - if (enabledNew && ["dAuxiThousheetQty"].includes(sName) && record.dPackageQty > 0) { - enabledNew = false; - } - return enabledNew; - }; - } + // if (index === 0 || index === 3) { + // materialsOtherPropsType.otherlimitDisabled = params => { + // const { record, sName } = params; + // let { enabledNew } = params; + // if (!["101251240115016082594412050"].includes(props.sModelsId)) return enabledNew; + // if (enabledNew && ["dAuxiThousheetQty"].includes(sName) && record.dPackageQty > 0) { + // enabledNew = false; + // } + // return enabledNew; + // }; + // } return ( materialsTabValue === num && ( - {/* {index === 0 && ( + {true && ( - - 删除全部 - + + props.onDelAllMaterials?.(materialsOtherPropsType.data, false)} + > + 删除全部 + + props.onDelAllMaterials?.(materialsOtherPropsType.data, 7)} + > + 撤销 + + props.onDelAllMaterials?.(materialsOtherPropsType.data, true)} + > + 删除选中 + + - )} */} + )} {materialsChildTableProps ? (