diff --git a/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js index 78f103a..158f9f6 100644 --- a/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js +++ b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js @@ -1,7 +1,7 @@ /* eslint-disable */ import React, { useEffect, useState, useMemo, useRef } from "react"; import moment from "moment"; -import { Avatar, Collapse, Radio, Row, Col, Divider, message, Modal } from "antd-v4"; +import { Avatar, Collapse, Radio, Row, Col, Divider, message, Modal, Button } from "antd-v4"; import { RightOutlined } from "@ant-design/icons"; import { Form } from "@ant-design/compatible"; import CommonBase from "@/components/Common/CommonBase"; @@ -336,8 +336,8 @@ const WorkOrderPackTableTreeNewEvent = props => { newCopyTo.slave = slaveItem; const iSameIndex = commonUtils.isNotEmptyArr(slaveData) ? slaveData.findIndex( - itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId - ) + itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId + ) : -1; if (iSameIndex > -1) { masterData = { @@ -1396,7 +1396,7 @@ const WorkOrderPackTableTreeNewEvent = props => { controlData, controlDelData, materialsConfig, - materials0Data : materialsData, + materials0Data: materialsData, materialsDelData, processConfig, processData, @@ -1634,9 +1634,8 @@ const WorkOrderPackTableTreeNewEvent = props => { sId = slaveData[0].sId; } - const dataUrl = `${ - commonConfig.server_host - }bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; + const dataUrl = `${commonConfig.server_host + }bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; const values = { sSlaveId: sId }; const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; if (dataReturn.code === 1) { @@ -1646,7 +1645,7 @@ const WorkOrderPackTableTreeNewEvent = props => { onOk() { handleDispatch(copyTo, sActiveId); }, - onCancel() {}, + onCancel() { }, }); } else { handleDispatch(copyTo, sActiveId); @@ -1699,7 +1698,7 @@ const WorkOrderPackTableTreeNewEvent = props => { let materialsData = commonUtils.isEmptyArr(materialsDataOld) ? [] : materialsDataOld; let processData = commonUtils.isEmptyArr(processDataOld) ? [] : processDataOld; let colorData = commonUtils.isEmptyArr(colorDataOld) ? [] : colorDataOld; - let packData = commonUtils.isEmptyArr(packDataOld) ? [] : packDataOld; + let packData = commonUtils.isEmptyArr(packDataOld) ? [] : packDataOld; const config = {}; config.masterConfig = masterConfig; @@ -1769,7 +1768,7 @@ const WorkOrderPackTableTreeNewEvent = props => { const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : ""; const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : ""; const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.color`.toLowerCase() - || item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase()); + || item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase()); const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ""; const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ""; const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ""; @@ -1924,20 +1923,20 @@ const WorkOrderPackTableTreeNewEvent = props => { if (commonUtils.isNotEmptyArr(returnData.slaveData)) { returnData.slaveData.forEach((slaveItem, iIndex) => { /* 从工艺卡数据集 找到从表相同产品ID,客户ID */ - let iSameIndex = slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId); - if(iSameIndex === -1){ + let iSameIndex = slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId); + if (iSameIndex === -1) { /* 复制从历史工单 只要把数据赋值到选中行即可 */ iSameIndex = iSlaveIndex; } - if(iSameIndex > -1 && iIndex === 0 ){ /* 把返回结果集的第一行数据放在选中行上 */ - if(commonUtils.isNotEmptyObject(slaveDetailAssignField)) { + if (iSameIndex > -1 && iIndex === 0) { /* 把返回结果集的第一行数据放在选中行上 */ + if (commonUtils.isNotEmptyObject(slaveDetailAssignField)) { slaveData[iSameIndex] = { ...slaveData[iSameIndex], ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段 } slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */ if (bProductQtySelf) { - dProductQty += commonUtils.isNull( slaveData[iSameIndex].dProductQty, 0); + dProductQty += commonUtils.isNull(slaveData[iSameIndex].dProductQty, 0); } else { - dProductQty += commonUtils.isNull( slaveData[iSameIndex].dProductQty, 0) + commonUtils.isNull( slaveData[iSameIndex].dGiveQty, 0) + + dProductQty += commonUtils.isNull(slaveData[iSameIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSameIndex].dGiveQty, 0) + commonUtils.isNull(slaveData[iSameIndex].dStockupQty, 0); } } else if (commonUtils.isNotEmptyObject(slaveDetailAssignField)) { @@ -2044,11 +2043,11 @@ const WorkOrderPackTableTreeNewEvent = props => { controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew }; } } - }else { + } else { packRowAdd.dCombineQty = 1; /* 排版数 */ - if(commonUtils.isNotEmptyObject(packRowAdd) && commonUtils.isNotEmptyObject(packRowAdd.sProductId)){ /* 从表要选择产品 */ - const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packRowAdd; - const tableCombineSelectedData =[]; + if (commonUtils.isNotEmptyObject(packRowAdd) && commonUtils.isNotEmptyObject(packRowAdd.sProductId)) { /* 从表要选择产品 */ + const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packRowAdd; + const tableCombineSelectedData = []; const jsonObj = {}; jsonObj.sId = sId; jsonObj.sProductNo = sProductNo; /* 产品编号 */ @@ -2058,7 +2057,7 @@ const WorkOrderPackTableTreeNewEvent = props => { jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ tableCombineSelectedData.push(jsonObj); const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ - const sCombinedMemoNew =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息'; + const sCombinedMemoNew = commonUtils.isNotEmptyObject(sCombinedMemo) ? sCombinedMemo : '合版信息'; const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId); if (icontrolIndex > -1) { controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew }; @@ -2220,9 +2219,9 @@ const WorkOrderPackTableTreeNewEvent = props => { sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`; } } - }else if(iSlaveIndex > -1) { + } else if (iSlaveIndex > -1) { sNewIds = slaveData[iSlaveIndex].sId; - sNewNames = `${slaveData[iSlaveIndex].sCustomerName}-${slaveData[iSlaveIndex].sProductName},`; + sNewNames = `${slaveData[iSlaveIndex].sCustomerName}-${slaveData[iSlaveIndex].sProductName},`; } sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ""; sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ""; @@ -2415,8 +2414,8 @@ const WorkOrderPackTableTreeNewEvent = props => { tableDataRow.sType === "3" ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : tableData.findIndex( - item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId - ); + item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId + ); if (iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { @@ -2439,8 +2438,8 @@ const WorkOrderPackTableTreeNewEvent = props => { dropDownDataProcessName[iIndex].sType === "3" ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : tableData.findIndex( - item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId - ); + item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId + ); if (iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { @@ -3225,7 +3224,7 @@ const controlProps = props => { treeSelectedKeys = treeSelectedKeys || []; const tableRow = controlData.find(item => item.sId === tableSelectedRowKeys[0]); let controlChildData = []; - if(commonUtils.isNotEmptyObject(tableRow)) { + if (commonUtils.isNotEmptyObject(tableRow)) { // 使用Set来记录已处理节点,防止循环引用 const processedNodes = new Set(); @@ -3428,7 +3427,7 @@ const controlProps = props => { }; returnProps.onTableSelectRowChange = async ({ name, selectedRowKeys }) => { const addState = await props.onTableSelectRowChange(name, selectedRowKeys, true); - props.onSaveState({ addState, processSelectedRowKeys: []}); + props.onSaveState({ addState, processSelectedRowKeys: [] }); } returnProps.onViewChoose = ({ name, sName, record }) => { const { sId } = record; /* 控制表主键 */ @@ -3459,7 +3458,7 @@ const controlProps = props => { packData[iIndex] = { ...packData[iIndex], ...packRowAdd }; if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0 ) { - if(sCombinedMemo.includes(packData[iIndex].sProductNo)) { + if (sCombinedMemo.includes(packData[iIndex].sProductNo)) { packSelectedRowKeys.push(packData[iIndex].sId); } } @@ -3632,7 +3631,7 @@ const processProps = props => { slaveData, controlData, controlSelectedRowKeys, - materials0Data:materialsData, + materials0Data: materialsData, processConfig, token, } = props; @@ -3796,7 +3795,7 @@ const processProps = props => { let { packData } = props; const { gdsconfigformslave = [] } = processConfig; const bSWorkOrderParams = gdsconfigformslave.some(item => item.sName === "sParams" && item.sControlName === "sWorkOrder"); - + const bNotSWorkOrderParams = gdsconfigformslave.some(item => item.sName === "sParams") if (["sCombinePartsNameNew", "sCombineProductNameNew"].includes(sName)) { const { [`${name}Data`]: tableData } = props; const iIndex = tableData.findIndex(item => item.sId === sId); @@ -3856,6 +3855,10 @@ const processProps = props => { props.onSaveState({ sWorkParamsModalVisible: true, }); + } else if (sName === "sParams" && bNotSWorkOrderParams) { + props.onSaveState({ + sWorkParamsModalVisible: true, + }); } else { props.onViewChoose(name, sName, record); } @@ -4312,11 +4315,11 @@ const OtherComponent = props => { const dailyInfo = commonFunc.showMessage(commonConst, "dailyInfo"); // 日志信息 // const visionInfo = "改版记录"; // const colorInfo = "工艺颜色"; - const visionInfo = commonUtils.isNotEmptyObject(commonFunc.showMessage(commonConst, "visionInfo")) ? + const visionInfo = commonUtils.isNotEmptyObject(commonFunc.showMessage(commonConst, "visionInfo")) ? commonFunc.showMessage(commonConst, "visionInfo") : '改版记录'; - const colorInfo = commonUtils.isNotEmptyObject(colorConfig) && commonUtils.isNotEmptyObject(colorConfig.showName ) ? + const colorInfo = commonUtils.isNotEmptyObject(colorConfig) && commonUtils.isNotEmptyObject(colorConfig.showName) ? colorConfig.showName : - commonUtils.isNotEmptyObject(commonFunc.showMessage(commonConst, "colorInfo")) ? + commonUtils.isNotEmptyObject(commonFunc.showMessage(commonConst, "colorInfo")) ? commonFunc.showMessage(commonConst, "colorInfo") : '工艺颜色'; // "工艺颜色"; const [materialsTabValue, setMaterialsTabValue] = useState(12); @@ -4785,4 +4788,115 @@ const DailyComponent = props => { return ; }; + +// 工艺参数弹窗 +const ModalComponent = props => { + const modalName = 'sWorkParamsModalVisible'; // commonParamVisible + const sProcessParams = commonFunc.showMessage(props.app.commonConst, 'workParam') || '工单参数'; + const BtnFirst = commonFunc.showMessage(props.app.commonConst, 'BtnFirst') || '首条'; + + const BtnLast = commonFunc.showMessage(props.app.commonConst, 'BtnLast') || '末条'; + + const BtnPrior = commonFunc.showMessage(props.app.commonConst, 'BtnPrior') || '上一条'; + + const BtnNext = commonFunc.showMessage(props.app.commonConst, 'BtnNext') || '下一条'; + + const getTableBtnState = (tableName) => { + let result = false; + const { enabled, masterData } = props; + result = enabled; + + const { sInstruct: sInstructStr } = props[`${tableName}Config`]; + const sInstruct = commonUtils.convertStrToObj(sInstructStr, {}); + const { data = [] } = sInstruct; + + const btnConfig = data.find(item => item && item.name === tableName && item.enabled !== undefined); + if (btnConfig && result) { + if (!Array.isArray(props[`${tableName}Data`]) || !Array.isArray([`${tableName}SelectedRowKeys`])) { + return; + } + const { enabled: enabledContent } = btnConfig; + if (typeof enabledContent === 'boolean') { + result = enabledContent; + } else if (enabledContent) { + const tempData = { + props: { + enabled + }, + masterData, + [tableName]: props[`${tableName}Data`]?.find(i => + i && (props[`${tableName}SelectedRowKeys`].includes(i.sId) + || props[`${tableName}SelectedRowKeys`].includes(i.sSlaveId))) + || {}, + }; + let strNew = enabledContent; + Object.keys(tempData).forEach(key => { + const reg = new RegExp(`${key}\\.`, "g"); + strNew = strNew.replace(reg, `tempData["${key}"].`); + }); + try { + const evalStr = eval("`" + strNew + "`"); + result = !!eval(evalStr); + console.log('=====表格行按钮状态结果', result, { btnName, enabledContent, tempData, strNew, evalStr }); + } catch (error) { + console.log('=====表格行按钮状态错误', { error, enabledContent, strNew, tempData }); + } + } + } + return result; + } + return props[modalName] ? + { + props.onSaveState({ [modalName]: false }); + }} + footer={ + + } + > +
+
+ + + + +
+ { + [''].map(() => { + const commonViewDragableProps = { + ...props, + // comparedTableId: props.processTableId, + hideTabsNav: true, + comparedTableId: props.processTableId, + // bSimpleMode: true, + sParamData: [ + { + sParamType: 'sWorkOrder', + sParamName: '工单参数' + }, + ], + tableName: 'process', + } + + commonViewDragableProps.enabled = getTableBtnState(commonViewDragableProps.tableName); + + return ; + }) + } +
+
: '' + +}; + export default CommonBase(CommonSales(WorkOrderPackTableTreeNew));