From 94d79e64083ef25aa2a2534b336c0a1a863a0b46 Mon Sep 17 00:00:00 2001 From: zhangzhen <525765282@qq.com> Date: Mon, 14 Jul 2025 11:38:08 +0800 Subject: [PATCH] 新增成品工序额外参数配置; --- src/components/QuickQuote/index.jsx | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 97 insertions(+), 32 deletions(-) diff --git a/src/components/QuickQuote/index.jsx b/src/components/QuickQuote/index.jsx index 4f62c40..51c31ae 100644 --- a/src/components/QuickQuote/index.jsx +++ b/src/components/QuickQuote/index.jsx @@ -491,7 +491,31 @@ const QuickQuoteEvent = props => { } else if (name === "finished") { const { productProcessInfo = [] } = masterData; const dropDownDataSelected = dropDownData.find(item => item.sId === changeValue[sFieldName]); - dropDownDataSelected && (dropDownDataSelected[sFieldName] = dropDownDataSelected.sProcessName); + if (dropDownDataSelected !== undefined) { + dropDownDataSelected[sFieldName] = dropDownDataSelected.sProcessName; + // 后道参数额外配置 + const { sParamConfig: sParamConfigStr } = dropDownDataSelected || {}; + const sParamConfig = commonUtils.convertStrToObj(sParamConfigStr, []); + extraState.backendParamsConfig = sParamConfig; + extraState.backendConfig = { sParentFieldsName: sFieldName }; + const sBackendParams = sParamConfig + .map(item => { + const { sParamDefault, sParam, sFieldName, iOrder } = item; + return !sParamDefault + ? "" + : { + sId: commonUtils.createSid(), + value: sParamDefault, + sParam: sParam, + [`sParam${iOrder}`]: sParamDefault, + ...(sFieldName ? { [sFieldName]: sParamDefault } : {}), + sParamKey: sFieldName || `sParam${iOrder}`, + }; + }) + .filter(item => item !== ""); + dropDownDataSelected.sBackendParams = sBackendParams; + } + const iIndex = productProcessInfo.findIndex(item => item.sProductClassifyId === dropDownData[0].sProductClassifyId); if (iIndex === -1) { dropDownDataSelected !== undefined && productProcessInfo.push(dropDownDataSelected); @@ -687,7 +711,7 @@ const QuickQuoteEvent = props => { const errMsgList = []; const masterConfigMust = masterConfig?.gdsconfigformslave.filter(item => item.bVisible && item.bNotEmpty); - if (!masterConfigMust) return + if (!masterConfigMust) return; const checkResult = masterConfigMust.filter(item => !masterData[item.sName]); if (checkResult.length) { errMsgList.push( @@ -1091,6 +1115,18 @@ const QuickQuoteEvent = props => { processProductDataRow.iOrder = iOrder + 1; processProductDataRow.sId = commonUtils.createSid(); processProductDataRow.sParentId = masterData.sId; + + const sBackendParams = process.sBackendParams || []; + if (sBackendParams.length) { + const sQuoParams = sBackendParams.map(item => ({ + sParamKey: item.sParamKey, + sParamName: item.sParam, + sParamValue: item.value !== undefined ? item.value : "", + bSelfCbx: !(item.value === "" || item.value === undefined), + })); + processProductDataRow.sQuoParams = JSON.stringify(sQuoParams); + } + // processProductDataRow.sSlaveId = ' '; processData.push(processProductDataRow); // 配套工序 @@ -1997,7 +2033,10 @@ const BoxComponent = props => { const { productProcessInfo = [] } = masterData; const finishedViewProps = { ...props, - viewConfigs: finishedConfigs, + viewConfigs: finishedConfigs.map(config => ({ + ...config, + costomStyle: productProcessInfo.find(item => item[config.sName])?.sParamConfig ? styles.sParamConfig : "", + })), tableConfig: { ...slaveConfig, gdsconfigformslave: finishedConfigs }, iColValueView: 24, viewRow: masterData, @@ -2023,6 +2062,17 @@ const BoxComponent = props => { return props.getSqlDropDownData(...args); }, + onCostomClick: (showConfig, { target }) => { + const className = target.getAttribute("class"); + const nodeName = target.nodeName; + if (className?.includes("select") && nodeName === "DIV") return; + + props.setState(pre => ({ + ...pre, + backendParamsConfig: commonUtils.convertStrToObj(productProcessInfo.find(item => item[showConfig.sName])?.sParamConfig, []), + backendConfig: { sParentFieldsName: showConfig.sName }, + })); + }, }; const boxProps = { @@ -2770,37 +2820,36 @@ const ManyComponent = props => { // 核价事件 const onCalcPrice = () => { const { state } = props; - const { masterData = {}, slaveConfig, slaveData = [], selectedNode = {}, backendConfig = {}, boxModelKey = 0, bestAlgorithm,activeKey } = state; - const {bBox} = selectedNode + const { masterData = {}, slaveConfig, slaveData = [], selectedNode = {}, backendConfig = {}, boxModelKey = 0, bestAlgorithm, activeKey } = state; + const { bBox } = selectedNode; if (bBox && activeKey === 0) { const radios = GetBestAlgorithm(props); slaveData[boxModelKey] = { ...slaveData[boxModelKey], radioValue: radios.sCode, }; - props.setState(pre => ({ ...pre, slaveData, bestAlgorithm: commonUtils.createSid(),onCalcPrices:true })); + props.setState(pre => ({ ...pre, slaveData, bestAlgorithm: commonUtils.createSid(), onCalcPrices: true })); } else { - const addState = { - ...props.onGetAllDelData(), - manyDataCache: [], - }; - props.onSaveState({ - masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, - calcPriceTime: commonUtils.createSid(), - ...addState, - }); - props.setState(pre => ({ ...pre,onCalcPrices:false })); + const addState = { + ...props.onGetAllDelData(), + manyDataCache: [], + }; + props.onSaveState({ + masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, + calcPriceTime: commonUtils.createSid(), + ...addState, + }); + props.setState(pre => ({ ...pre, onCalcPrices: false })); } - + // setTimeout(() => { // }, 500); - }; - const { bestAlgorithm,onCalcPrices } = state; + const { bestAlgorithm, onCalcPrices } = state; useEffect(() => { - if (!bestAlgorithm) return - if (!onCalcPrices) return + if (!bestAlgorithm) return; + if (!onCalcPrices) return; const addState = { ...props.onGetAllDelData(), manyDataCache: [], @@ -2811,7 +2860,7 @@ const ManyComponent = props => { calcPriceTime: commonUtils.createSid(), ...addState, }); - }, [bestAlgorithm,onCalcPrices]); + }, [bestAlgorithm, onCalcPrices]); useEffect(() => { if (props.calcPriceTime) { props.onSaveState({ calcPriceTime: undefined }); @@ -3246,7 +3295,8 @@ const BoxModelSelectedModal = props => { // 后道参数额外配置 const BackendParamsExtraComponent = props => { const { state, slaveConfig } = props; - const { backendParamsConfig = [], backendConfig = {}, slaveData, selectedNode } = state; + const { backendParamsConfig = [], backendConfig = {}, slaveData, selectedNode, masterData = {} } = state; + if (!backendParamsConfig.length) return ""; const { sParentFieldsName, sBoxModel, printParamsId } = backendConfig; @@ -3254,7 +3304,9 @@ const BackendParamsExtraComponent = props => { const slaveRowData = slaveData.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === sBoxModel) || {}; const { sBackProcessData = [] } = slaveRowData; - if (sParentFieldsName !== "sPrint" && !sBackProcessData.some(item => item[sParentFieldsName])) return ""; + const { productProcessInfo = [] } = masterData; + + if (sParentFieldsName !== "sPrint" && ![...sBackProcessData, ...productProcessInfo].some(item => item[sParentFieldsName])) return ""; const viewConfigs = backendParamsConfig.map(item => ({ ...item, @@ -3277,7 +3329,11 @@ const BackendParamsExtraComponent = props => { if (sParentFieldsName === "sPrint") { return [slaveRowData, ...sBackProcessData].find(item => item.sId === printParamsId); } - return sBackProcessData.find(item => item[sParentFieldsName])?.sBackendParams?.find(item => item.sParam === config.showName) || {}; + return ( + [...sBackProcessData, ...productProcessInfo] + .find(item => item[sParentFieldsName]) + ?.sBackendParams?.find(item => item.sParam === config.showName) || {} + ); }, tableName: `sBackendParams${sBoxModel}`, getSqlDropDownData: (...args) => { @@ -3322,7 +3378,9 @@ const BackendParamsExtraComponent = props => { return; } - const iIndex1 = slaveData[iIndex].sBackProcessData.findIndex(item => item[sParentFieldsName]); + const sBData = sBoxModel ? slaveData[iIndex].sBackProcessData : productProcessInfo; + + const iIndex1 = sBData.findIndex(item => item[sParentFieldsName]); const showConfig = viewConfigs.find(item => item.sName === sFieldName); const dropDownDataSelected = dropDownData?.length ? dropDownData.find(item => item.sId === changeValue[sFieldName]) @@ -3335,22 +3393,29 @@ const BackendParamsExtraComponent = props => { if (!dropDownDataSelected) return; dropDownDataSelected[sFieldName] = dropDownDataSelected.value; const { sParam } = dropDownDataSelected; - const { sBackendParams = [] } = slaveData[iIndex].sBackProcessData[iIndex1]; + const { sBackendParams = [] } = sBData[iIndex1]; const iIndex2 = sBackendParams.findIndex(item => item.sParam === sParam); if (iIndex2 !== -1) { sBackendParams[iIndex2] = dropDownDataSelected; } else { sBackendParams.push(dropDownDataSelected); } - slaveData[iIndex].sBackProcessData[iIndex1].sBackendParams = sBackendParams; + sBData[iIndex1].sBackendParams = sBackendParams; if (!showConfig.sName?.startsWith("sParams")) { - slaveData[iIndex].sBackProcessData[iIndex1][showConfig.sName] = dropDownDataSelected[showConfig.sName]; - const { dManualLength, dManualWidth } = slaveData[iIndex].sBackProcessData[iIndex1]; + sBData[iIndex1][showConfig.sName] = dropDownDataSelected[showConfig.sName]; + const { dManualLength, dManualWidth } = sBData[iIndex1]; if (dManualLength !== undefined && dManualWidth !== undefined) { - slaveData[iIndex].sBackProcessData[iIndex1].dManualValue = dManualLength * dManualWidth; + sBData[iIndex1].dManualValue = dManualLength * dManualWidth; } } - props.setState(pre => ({ ...pre, slaveData, ...extraState })); + + if (sBoxModel) { + slaveData[iIndex].sBackProcessData = sBData; + props.setState(pre => ({ ...pre, slaveData, ...extraState })); + } else { + masterData.productProcessInfo = sBData; + props.setState(pre => ({ ...pre, masterData, ...extraState })); + } }, }; -- libgit2 0.22.2