diff --git a/src/components/Common/CommonBillEvent.js b/src/components/Common/CommonBillEvent.js index 52e8be0..4844729 100644 --- a/src/components/Common/CommonBillEvent.js +++ b/src/components/Common/CommonBillEvent.js @@ -9834,6 +9834,237 @@ export default (ChildComponent) => { addState[`${type}Data`] = newData; return addState; } + + /* 选择成品工序 点确定 */ + handleSelectFinalProcessNew = async (name, selectConfig, selectData, slaveFinalSelectedData) => { + const targetname = 'process'; + const { + [`${targetname}Data`]: tableData, [`${targetname}Config`]: tableConfig, controlSelectedRowKeys, sModelsId, token, + materialsConfig, processConfig,masterConfig, + } = this.props; + const { masterData } = this.props; + if (name === 'chooseProductProcess') { + const { controlData } = this.props; + const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1; + /* 取选择工序从表配置 */ + const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : ''; + let slaveSelectConfig = {}; + let slaveIndex = -1; + if (commonUtils.isNotEmptyObject(masterConfig)) { + slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName); + if (slaveIndex > -1) { + slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex]; + } + } + /* 通过slaveFinalSelectedRowKeys找到slaveData数据 */ + if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) { + for (const slaveObj of slaveFinalSelectedData) { + if (commonUtils.isNotEmptyArr(selectData)) { + for (const item of selectData) { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iControlIndex > -1) { + newCopyTo.control = controlData[iControlIndex]; + } + let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值 + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 + if (commonUtils.isNotEmptyObject(slaveSelectConfig)) { + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段 + } + tableDataRow.handleType = 'add'; + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.sParentId = masterData.sId; + + tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */ + tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */ + // tableDataRow.sSlaveProductId = slaveObj.sId; + + tableDataRow.sType = '3'; + if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) { + tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) }; + } + if (targetname === 'process') { + const value = { sSqlCondition: { sParentId: item.sId } }; + const configDataId = '11811781131121915166093023980'; + const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`; + const returnData = (await commonServices.postValueService(token, value, dataUrl)).data; + if (returnData.code === 1) { + const eleprocessmachineData = returnData.dataset.rows[0].dataSet; + const newData = eleprocessmachineData.filter(item => item.bDefault); + if (commonUtils.isNotEmptyArr(newData)) { + tableDataRow.sMachineId = newData[0].sMachineId; + } + } + const bProcessAssort = false; + let returnProcessAssort = []; + let processAssignAssort = ''; + let dropDownDataProcessName; + if (bProcessAssort) { + const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; + const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; + if (dataProcessAssort.code === 1) { + returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); + dropDownDataProcessName = sqlDropDownData.dropDownData; + processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + } + } + } + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + if (iIndex > -1) { + const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iNewProcessIndex = tableDataRow.sType === '3' ? + tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : + tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId); + if (iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + + // 成品工序的配套工序带入产品名称-开始 + processRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */ + processRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */ + processRow.sCombineProductNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */ + // processRow.sParentProcessId = item.sId; + // 成品工序的配套工序带入产品名称-结束 + + if (iControlIndex > -1 && processRow.sType !== '3') { + processRow.sControlId = controlData[iControlIndex].sId; + processRow.sPartsName = controlData[iControlIndex].sPartsName; + } + tableData.push(processRow); + + if (itemProcessAssort.sType === 'all') { + controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => { + const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ? + tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : + tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId); + if (iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + + // 成品工序的配套工序带入产品名称-开始 + processRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */ + processRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */ + processRow.sCombineProductNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */ + // processRow.sParentProcessId = item.sId; + // 成品工序的配套工序带入产品名称-结束 + + if (iControlIndex > -1 && processRow.sType !== '3') { + processRow.sControlId = controlTableRow.sId; + processRow.sPartsName = controlTableRow.sPartsName; + } + tableData.push(processRow); + } + }); + } + } + } + })); + } + } + // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length; + // tableDataRow.iOrder = processLen; + if (iControlIndex > -1 && tableDataRow.sType !== '3') { + tableDataRow.sControlId = controlData[iControlIndex].sId; + tableDataRow.sPartsName = controlData[iControlIndex].sPartsName; + const processLen = tableData.filter(item => item.sType !== '3').length + 1; /* 工序序号自增 */ + tableDataRow.iOrder = processLen; + tableData.push(tableDataRow); + } else if (tableDataRow.sType === '3') { + const processLen = tableData.filter(item => item.sType === '3').length + 1; /* 工序序号自增 */ + tableDataRow.iOrder = processLen; + tableData.push(tableDataRow); + } + } + } + } + } else { + message.error('请选择产品!'); + return; + } + const tableDataNew = this.sortData(controlData, tableData); + this.props.onSaveState({ + [`${targetname}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [], + }); + } + } + + /* 选择成品材料 点确定 */ + handleSelectFinalMaterialsNew = async (name, selectConfig, selectData, slaveFinalSelectedData) => { + // 选择成品材料,将sType改为2 + if (name === 'productMaterials') { + selectData = selectData.map(val => ({ ...val, sType: '2' })); + name = 'materials0'; + } + const { + [`${name}Data`]: tableData = [], [`${name}Config`]: tableConfig, controlSelectedRowKeys, materialsConfig,masterConfig, + } = this.props; + const { masterData } = this.props; + const { controlData } = this.props; + const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1; + /* 取选择工序从表配置 */ + const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : ''; + let slaveSelectConfig = {}; + let slaveIndex = -1; + if (commonUtils.isNotEmptyObject(masterConfig)) { + slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName); + if (slaveIndex > -1) { + slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex]; + } + } + if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) { + for (const slaveObj of slaveFinalSelectedData) { + if (commonUtils.isNotEmptyArr(selectData)) { + for (const item of selectData) { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iControlIndex > -1) { + newCopyTo.control = controlData[iControlIndex]; + } + let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值 + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 + if (commonUtils.isNotEmptyObject(slaveSelectConfig)) { + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段 + } + tableDataRow.handleType = 'add'; + tableDataRow.sId = commonUtils.createSid(); + + tableDataRow.sParentId = masterData.sId; + tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品材料sCombinePartsName 为从表id */ + tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; + // tableDataRow.sSlaveProductId = slaveObj.sId; + + if (iControlIndex > -1 && tableDataRow.sType !== '2') { + tableDataRow.sControlId = controlData[iControlIndex].sId; + tableDataRow.sPartsName = controlData[iControlIndex].sPartsName; + tableData.push(tableDataRow); + } else if (tableDataRow.sType === '2') { + tableData.push(tableDataRow); + } + } + } + } + } else { + message.error('请选择产品!'); + return; + } + this.props.onSaveState({ + [`${name}Data`]: tableData, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [], + }); + } handleOnExpand = async (expanded, record) => { const { expKeys } = this.props; /* 添加移除展开的sId */ @@ -10147,6 +10378,8 @@ export default (ChildComponent) => { isSColorSerialMemo={this.isSColorSerialMemo} onBtnParamPage ={this.handleBtnParamPage} onFilterData ={this.handleFilterData} + onSelectProductProcessNew={this.handleSelectFinalProcessNew} + onSelectProductMaterialsNew={this.handleSelectFinalMaterialsNew} /> ); } diff --git a/src/components/Manufacture/CommonPackEvent.js b/src/components/Manufacture/CommonPackEvent.js index 1f98f88..f5939c2 100644 --- a/src/components/Manufacture/CommonPackEvent.js +++ b/src/components/Manufacture/CommonPackEvent.js @@ -14,6 +14,7 @@ import CommonPartsInfo from "@/components/Common/CommonPartsInfo"; import CommonListSelect from "@/components/Common/CommonListSelect"; import CommonListSelectMulti from "@/components/Common/CommonListSelectMulti"; import CommonListSelectFlex from "@/components/Common/CommonListSelectFlex"; +import CommonListSelectProductProcess from '@/components/Common/CommonListSelectAssignment'; import ContextMenuModal from "@/components/Common/ContextMenuModal"; import WorkFlow from "@/components/Common/Flows/CommonFlow"; import SvgIcon from "@/components/SvgIcon"; @@ -859,6 +860,83 @@ const CommonPackEvent = props => { }; returnProps.materialsFilterNew = materialsFilterNew; + + // 公共方法-过滤工序数据 + const processFilteNew = (props, data, type, bFinal) => { + // materials : 0-1部件材料 : 2成品材料; + // process : 0-1-2 部品工序 : 3成品工序; + // bfinal: 是否成品 + const { slaveSelectedRowKeys, controlSelectedRowKeys } = props; + const oriData = data.data || []; + if (data.data) { + let res = []; + switch (type) { + case 'materials': + if (bFinal) { + if (bFinal) { /* 成品材料 */ + if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) { + res = oriData.filter((val) => { + return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName); + }); + } else { + res = oriData.filter((val) => { + return val.sType === '2'; + }); + } + } else { /* 部件材料 */ + res = oriData.filter((val) => { + return val.sType !== '2'; + }); + } + } else { + res = oriData; + } + break; + case 'process': + if (bFinal) { + if (bFinal) { /* 成品工序 */ + if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) { + res = oriData.filter((val) => { + return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName); + }); + } else { + res = oriData.filter((val) => { + return val.sType === '3'; + }); + } + } else { /* 部件工序 */ + if (controlSelectedRowKeys && controlSelectedRowKeys.length) { + res = oriData.filter((val) => { + return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId); + }); + } else { + res = oriData.filter((val) => { + return val.sType !== '3'; + }); + } + + } + } else { + // 成品工序放最下面 + const processData = oriData.filter(item => item.sControlId !== props.controlSelectedRowKeys[0]) + const idsToRemove = processData.map(item => item.sControlId); + const allData = oriData.filter(item => !idsToRemove.includes(item.sControlId)) + res = allData.concat(processData); + const res3 = res.filter(item => item.sType === '3'); + const resOther = res.filter(item => item.sType !== '3'); + res = [...resOther, ...res3]; + } + break; + default: + res = oriData; + } + return res; + } else { + return oriData || []; + } + } + returnProps.processFilteNew = processFilteNew; + // 公共方法-递归数据 const handleGetSlaveSelectedRowChildren = (allData, sId) => { let result = []; @@ -1146,6 +1224,10 @@ const CommonModal = props => { /** 选择工序弹窗组件 */ + /** 选择成品工序弹窗组件 */ + + /** 选择成品材料弹窗组件 */ + /** 选择材料弹窗组件 */ /** 选择工艺参数弹窗(旧) */ @@ -1279,6 +1361,175 @@ const ProcessChooseModal = props => { ); }; +// 选择成品工序弹窗 +const ProductProcessChooseModal = props => { + const { productProcessChooseVisible } = props; + if (!productProcessChooseVisible) return ""; + + const { app, sModelsId, sModelsType, sTabId, content, productProcessChooseData, masterConfig, processData, controlSelectedRowKeys } = props; + const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0]; + const { notCurrentPane } = pane; + + let setProcessTitle = commonFunc.showMessage(app.commonConst, "setProcess"); //选择工序标题 + + let chooseProdutProcessType = {}; + let chooseProdutProcessConfig = {}; + if (commonUtils.isNotEmptyObject(productProcessChooseData)) { + chooseProdutProcessConfig = masterConfig.gdsconfigformslave.find(item => item.sControlName === "BtnChooseProductProcess") || {}; + setProcessTitle = chooseProdutProcessConfig.showName || setProcessTitle; + const { sMenuName, sName, sId, sModelType } = productProcessChooseData; + + let slaveFinalData = []; + let slaveFinalSelectedRowKeys =[]; + if (commonUtils.isNotEmptyArr(props.slaveData)) { + slaveFinalData = JSON.parse(JSON.stringify(props.slaveData)); + if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) { + slaveFinalData.forEach((item) => { + item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表 */ + }); + } + /* 选择成品工序 只有一条从表 则默认选中 */ + if(slaveFinalData.length ===1){ + slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId); + } + + } + + let slaveFinalConfig = {}; + if (commonUtils.isNotEmptyObject(props.slaveConfig)) { + slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig)); + slaveFinalConfig.bMutiSelect = true; + } + + chooseProdutProcessType = { + app: { + ...props.app, + currentPane: { + name: 'chooseProductProcess', + config: chooseProdutProcessConfig, + conditonValues: props.getSqlCondition(chooseProdutProcessConfig), + title: sMenuName, + route: sName, + formId: sId, + key: sModelsId + sId, + sModelsType: 'search/finalProcess', + select: props.onSelectProductProcessNew, /* 选择成品工序 */ + selectCancel: props.onCancelModal.bind(this, 'productProcessChooseVisible'), + }, + }, + slaveFinalConfig, + slaveFinalColumn: props.slaveColumn, + slaveFinalData, + slaveFinalSelectedRowKeys, + dispatch: props.dispatch, + fatherModelsType: props.sModelsType, + content: props.content, + id: new Date().getTime().toString(), + }; + } + + const onCancel = () => { + props.onSaveState({ productProcessChooseVisible: false }); + }; + + return ( + + + + ); +}; + + +// 选择成品工序弹窗 +const ProductMaterialsChooseModal = props => { + const { productMaterialsChooseVisible } = props; + if (!productMaterialsChooseVisible) return ""; + + const { app, sModelsId, sModelsType, sTabId, content, productMaterialsChooseData, masterConfig, processData, controlSelectedRowKeys } = props; + const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0]; + const { notCurrentPane } = pane; + + let setMaterialsTitle = ''; //选择工序标题 + + let chooseProductMaterialsType = {}; + let chooseProductMaterialsConfig = {}; + if (commonUtils.isNotEmptyObject(productMaterialsChooseData)) { + chooseProductMaterialsConfig = masterConfig.gdsconfigformslave.find(item => item.sControlName === "BtnChooseProductMaterials") || {}; + setMaterialsTitle = chooseProductMaterialsConfig.showName || setMaterialsTitle; + const { sMenuName, sName, sId, sModelType } = productMaterialsChooseData; + + let slaveFinalData = []; + let slaveFinalSelectedRowKeys =[]; + if (commonUtils.isNotEmptyArr(props.slaveData)) { + slaveFinalData = JSON.parse(JSON.stringify(props.slaveData)); + if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) { + slaveFinalData.forEach((item) => { + item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表 */ + }); + } + /* 选择成品工序 只有一条从表 则默认选中 */ + if(slaveFinalData.length ===1){ + slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId); + } + + } + + let slaveFinalConfig = {}; + if (commonUtils.isNotEmptyObject(props.slaveConfig)) { + slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig)); + slaveFinalConfig.bMutiSelect = true; + } + + chooseProductMaterialsType = { + app: { + ...props.app, + currentPane: { + name: 'productMaterials', + config: chooseProductMaterialsConfig, + conditonValues: props.getSqlCondition(chooseProductMaterialsConfig), + title: sMenuName, + route: sName, + formId: sId, + key: sModelsId + sId, + sModelsType: 'search/finalMaterials', + select: props.onSelectProductMaterialsNew, /* 选择成品工序 */ + selectCancel: props.onCancelModal.bind(this, 'productMaterialsChooseVisible'), + }, + }, + slaveFinalConfig, + slaveFinalColumn: props.slaveColumn, + slaveFinalData, + slaveFinalSelectedRowKeys, + dispatch: props.dispatch, + fatherModelsType: props.sModelsType, + content: props.content, + id: new Date().getTime().toString(), + }; + } + + const onCancel = () => { + props.onSaveState({ productMaterialsChooseVisible: false }); + }; + + return ( + + + + ); +}; + // 选择材料弹窗 const MaterialsChooseModal = props => { const { materialsChooseVisible } = props; diff --git a/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js index 158f9f6..c885755 100644 --- a/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js +++ b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js @@ -54,6 +54,23 @@ const WorkOrderPackTableTreeNewEvent = props => { const processColumn = commonFunc.getHeaderConfig(processConfig); tableList.push(["process", processConfig, processColumn]); + // 成品工序表配置 + const finishedProcessConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sGrd?.includes('productProcess'))) ? + formData.filter(item => item.sGrd?.includes('productProcess'))[0] : {}; + const finishedProcessColumn = commonUtils.isNotEmptyObject(finishedProcessConfig) ? commonFunc.getHeaderConfig(finishedProcessConfig) : false; + if(commonUtils.isNotEmptyObject(finishedProcessConfig)) { + tableList.push(["finishedProcess", finishedProcessConfig, finishedProcessColumn]); + } + + // 成品材料表配置 + let finishedMaterialsConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sGrd?.includes('productMaterials'))) ? + formData.filter(item => item.sGrd?.includes('productMaterials'))[0] : ''; + const finishedMaterialsColumn = finishedMaterialsConfig ? commonFunc.getHeaderConfig(finishedMaterialsConfig) : false; + if(commonUtils.isNotEmptyObject(finishedProcessConfig)) { + tableList.push(["finishedMaterials", finishedMaterialsConfig, finishedMaterialsColumn]); + } + + // 材料表配置 const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === "MftWorkOrderMaterials".toUpperCase())[0]; const materialsColumn = commonFunc.getHeaderConfig(materialsConfig); @@ -1396,7 +1413,7 @@ const WorkOrderPackTableTreeNewEvent = props => { controlData, controlDelData, materialsConfig, - materials0Data: materialsData, + materials0Data : materialsData, materialsDelData, processConfig, processData, @@ -3491,6 +3508,7 @@ const controlProps = props => { const processProps = props => { const returnProps = {}; returnProps.onDataRowAdd = ({ name, bFinished, bModalAdd }) => { + bModalAdd = bFinished; const { masterConfig } = props; if (bModalAdd === true) { let iIndex = -1; @@ -3870,7 +3888,9 @@ const processProps = props => { const materialsProps = props => { const returnProps = {}; returnProps.onDataRowAdd = params => { - const { bFinished, bModalAdd } = params; + const { bFinished } = params; + let { bModalAdd } = params; + bModalAdd = bFinished const { masterConfig } = props; if (bModalAdd === true) { let iIndex = -1; @@ -4304,12 +4324,29 @@ const ControlComponent = props => { // 其他表布局 const OtherComponent = props => { - const { app, materialsChildInfoList, colorConfig } = props; + const { app, materialsChildInfoList, colorConfig , masterConfig } = props; if (materialsChildInfoList === undefined) return ""; const { commonConst } = app; + let bSplitProcess = false; /* 拆分工序 */ + if (commonUtils.isNotEmptyObject(masterConfig)) { + const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitProcess'); + if (iIndex > -1) { + bSplitProcess = masterConfig.gdsconfigformslave[iIndex].bVisible; + } + } + + + let bSplitMaterials = false; /* 拆分材料 */ + if (commonUtils.isNotEmptyObject(masterConfig)) { + const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitMaterials'); + if (iIndex > -1) { + bSplitMaterials = masterConfig.gdsconfigformslave[iIndex].bVisible; + } + } + const [processTabValue, setProcessTabValue] = useState("processInfo"); const processInfo = commonFunc.showMessage(commonConst, "processInfo"); // 工序信息 const dailyInfo = commonFunc.showMessage(commonConst, "dailyInfo"); // 日志信息 @@ -4322,6 +4359,9 @@ const OtherComponent = props => { commonUtils.isNotEmptyObject(commonFunc.showMessage(commonConst, "colorInfo")) ? commonFunc.showMessage(commonConst, "colorInfo") : '工艺颜色'; // "工艺颜色"; + const productMaterialsInfo = commonFunc.showMessage(app.commonConst, 'productMaterialsInfo');/* 成品材料 */ + const productProcessInfo = commonFunc.showMessage(app.commonConst, 'productProcessInfo');/* 成品工序 */ + const [materialsTabValue, setMaterialsTabValue] = useState(12); const panelExtra = (type, { selfName, selfId } = {}) => { @@ -4342,6 +4382,7 @@ const OtherComponent = props => { const radioValue = index + 2 + 10; return {radioTitle}; })} + {bSplitMaterials ? {productMaterialsInfo} : ""} ); @@ -4355,7 +4396,7 @@ const OtherComponent = props => { }} > {processInfo} - {/* {bSplitProcess ? {productProcessInfo} : ""} */} + {bSplitProcess ? {productProcessInfo} : ""} ); @@ -4413,19 +4454,21 @@ const OtherComponent = props => { {processTabValue === "processInfo" && } + { processTabValue === "productProcessInfo" && } + { materialsTabValue === 22 && } {materialsChildInfoListFilter.map(tablename => { - const { showName } = props[`${tablename}Config`]; + const { sChinese } = props[`${tablename}Config`]; return ( @@ -4532,6 +4575,86 @@ const ProcessComponent = props => { } }; +// 成品工序表 +const ProductProcessComponent = props => { + const { finishedProcessConfig, controlSelectedRowKeys } = props; + if (!finishedProcessConfig) return ""; + + const productProcessTableId = useRef(`productProcessTableId_${commonUtils.createSid()}`); + const { setAdd, setCopy, setDelete } = props.handleGetIcon(); + + const bProcessSort = finishedProcessConfig.gdsconfigformslave.find(item => item.sControlName === "handleSort")?.bVisible || false; + + const baseData = commonBusiness.getTableTypes("process", props); + const finishedProcessPropsType = { + ...baseData, + configName: 'finishedProcess', + config: finishedProcessConfig, + data: props.processFilteNew(props, baseData, 'process', true), + filteredValue: controlSelectedRowKeys, + onFilterData: props.onFilterData, + OnGetFilterData: props.OnGetFilterData, + onKeyDown: props.onKeyDown, + tableProps: { + rowSelection: null, + setAdd, + setCopy, + setDelete, + AutoTableHeight: "100%", + sticky: true, + // sticky: layoutChange ? { offsetHeader: stickyHeight } : true + }, + onDrag: props.onDrag, + isDragAndDrop: false, + setOpterationColumn: "Y", + bModalAdd: true, + dragHandle: bProcessSort && props.enabled, + selfTableHeight: 330, + noVlist: true, + tableId: productProcessTableId.current, + }; + + const getProductProcessTable = () => ; + + const showLeftConfig = finishedProcessConfig.gdsconfigformslave.find(item => item.sControlName === "bShowLeft"); + + if (showLeftConfig) { + const { iColValue, sChinese: processShowTitle } = showLeftConfig; + + const processTitleWidth = finishedProcessConfig.gdsconfigformslave.find(item => item.sControlName === "titleWidth")?.sDefault; + const commonViewDragableProps = { + ...props, + hideTabsNav: true, + processTitleWidth, + comparedTableId: productProcessTableId.current, + sParamData: [ + { + sParamType: "sWorkOrder", + sParamName: "工单参数", + }, + ], + tableName: "process", + }; + return ( + + + {getProductProcessTable()} + + + {processShowTitle && ( + + {processShowTitle} + + )} + + + + ); + } else { + return getProductProcessTable(); + } +}; + // 材料表 const MaterialsComponent = props => { const { materialsInfoList = [], materialsChildInfoList = [], materialsTabValue } = props; @@ -4658,6 +4781,48 @@ const MaterialsComponent = props => { }); }; +// 成品材料表 +const ProductMaterialsComponent = props => { + const { finishedMaterialsConfig, controlSelectedRowKeys } = props; + if (!finishedMaterialsConfig) return ""; + + const productMaterialsTableId = useRef(`productMaterialsTableId_${commonUtils.createSid()}`); + const { setAdd, setCopy, setDelete } = props.handleGetIcon(); + + + const baseData = commonBusiness.getTableTypes("materials0", props); + const finishedMaterialsPropsType = { + ...baseData, + configName: 'finishedMaterials', + config: finishedMaterialsConfig, + data: props.materialsFilterNew(props, baseData, 'finishedMaterials', true), + filteredValue: controlSelectedRowKeys, + onFilterData: props.onFilterData, + OnGetFilterData: props.OnGetFilterData, + onKeyDown: props.onKeyDown, + tableProps: { + rowSelection: null, + setAdd, + setCopy, + setDelete, + AutoTableHeight: "100%", + sticky: true, + // sticky: layoutChange ? { offsetHeader: stickyHeight } : true + }, + onDrag: props.onDrag, + isDragAndDrop: false, + setOpterationColumn: "Y", + bModalAdd: true, + selfTableHeight: 330, + noVlist: true, + tableId: productMaterialsTableId.current, + }; + + const getProductMaterialsTable = () => ; + + return getProductMaterialsTable(); +}; + // 子材料表 const MaterialsChildComponent = props => { const { materialsChildName } = props;