From 6f61bf2e40d8f071b528bf650de564b1ba38eebe Mon Sep 17 00:00:00 2001 From: 陈鑫涛 <10125295+chen-xintao97@user.noreply.gitee.com> Date: Tue, 24 Jun 2025 09:20:13 +0800 Subject: [PATCH] 快速报价app --- src/components/Common/BoxDesignCompontent/index.js | 8 +++++--- src/components/QuickQuote/index.jsx | 2 +- src/mobile/components/SelectInput.jsx | 4 +++- src/mobile/quotation/detailNew.jsx | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------- 4 files changed, 79 insertions(+), 30 deletions(-) diff --git a/src/components/Common/BoxDesignCompontent/index.js b/src/components/Common/BoxDesignCompontent/index.js index b5f7d93..2f4d983 100644 --- a/src/components/Common/BoxDesignCompontent/index.js +++ b/src/components/Common/BoxDesignCompontent/index.js @@ -337,7 +337,10 @@ const BoxDesignCompontent = baseProps => { setBoxList(updatedBoxList); }; const getImage = fileName => { - const imageUrl = `${commonConfig.file_host}file/download?savePathStr=${fileName}&sModelsId=100&token=${props.token}`; + // const imageUrl = `${commonConfig.file_host}file/download?savePathStr=${fileName}&sModelsId=100&token=${props.token}`; + const imageUrl = `${commonConfig.file_host}file/download?savePathStr=${fileName}&scale=0.1&sModelsId=100&token=${props.token}` + console.log("🚀 ~ imageUrl:", imageUrl) + return imageUrl; }; // 下来框 @@ -345,7 +348,7 @@ const BoxDesignCompontent = baseProps => { return ( - {option.sMakeUpPath ? : ""} + {option.sMakeUpPath ? : ""} {option.sName} @@ -397,7 +400,6 @@ const BoxDesignCompontent = baseProps => { submitSlaveData.concat(newSlaveData); // 处理计算公式 - console.log(boxList, "boxList"); // 计算展长公式 sLengthFormula let sLengthFormula = ""; let sWidthFormula = ""; diff --git a/src/components/QuickQuote/index.jsx b/src/components/QuickQuote/index.jsx index b5fc630..c9cf115 100644 --- a/src/components/QuickQuote/index.jsx +++ b/src/components/QuickQuote/index.jsx @@ -1537,7 +1537,7 @@ const BoxComponent = props => { const className = target.getAttribute("class"); const nodeName = target.nodeName; if (className?.includes("select") && nodeName === "DIV") return; - + props.setState(pre => ({ ...pre, backendParamsConfig: commonUtils.convertStrToObj( diff --git a/src/mobile/components/SelectInput.jsx b/src/mobile/components/SelectInput.jsx index 7056995..c3bd6b0 100644 --- a/src/mobile/components/SelectInput.jsx +++ b/src/mobile/components/SelectInput.jsx @@ -31,6 +31,8 @@ const SelectInput = props => { if (!viewRow.sBackProcessData) return; // const data = viewRow.sBackProcessData[downIndex][itemDetail.sName]; // setValue(data); + } else if (tableName.includes('sBackendParams')) { + setValue(itemDetail.sParamDefault) } else { setValue(viewRowNew || ""); // 动态更新 value } @@ -175,7 +177,7 @@ const SelectInput = props => { { - props.onDataChange(tableName, itemDetail.sName, { [itemDetail.sName]: val }, null, coplyColumns); + props.onDataChange(tableName, itemDetail.sName, { [itemDetail.sName]: val,label:val }, null, coplyColumns); }} /> ) : ( diff --git a/src/mobile/quotation/detailNew.jsx b/src/mobile/quotation/detailNew.jsx index 0def1d2..4c9edb9 100644 --- a/src/mobile/quotation/detailNew.jsx +++ b/src/mobile/quotation/detailNew.jsx @@ -142,6 +142,7 @@ const QuickQuoteEvent = props => { }; addState.onDataChange = (name, sFieldName, changeValue, sId, dropDownData, isWait) => { + console.log("🚀 ~ changeValue:", name, changeValue); const { mastersId } = props; const { masterData = {}, slaveData = [], selectedNode = {} } = state; const extraState = { @@ -1399,7 +1400,10 @@ const BoxComponent = props => { const showUpAbleConfigsExtra = upAbleConfigsExtra.filter(x => x.bVisible === 1); let boxList = []; // if(!masterData) return - if (slaveRowData && slaveRowData.sColumnNameConfig && masterData?.dLength && masterData?.dWidth && masterData?.dHeight) { + if ( + (slaveRowData && slaveRowData.sColumnNameConfig && masterData?.dLength && masterData?.dWidth && masterData?.dHeight) || + (selectedNode.sTypeKey === "kapai" && slaveRowData.sColumnNameConfig && masterData.dLength && masterData.dWidth) + ) { const slaveNewData = JSON.parse(slaveRowData.sColumnNameConfig); const tables = [ { name: "盒型类别", value: slaveRowData.sBoxType, type: null }, @@ -1501,8 +1505,14 @@ const BoxComponent = props => { if (item.sName === "dSumPQty" && selectedNode.sTypeKey !== "huace") { return false; } - const { bAdvancedSetting } = slaveRowData; - if ((item.sName === "dPortrait" && !bAdvancedSetting) || (item.sName === "dHorizontal" && !bAdvancedSetting)) { + const { bAdvancedSetting, bFlap, bFold } = slaveRowData; + const shouldExcludeItem = (condition, itemNameList) => !condition && itemNameList.includes(item.sName); + + if ( + shouldExcludeItem(bAdvancedSetting, ["dPortrait", "dHorizontal"]) || + shouldExcludeItem(bFlap, ["dFlap"]) || + shouldExcludeItem(bFold, ["sFold", "dAdhesive", "dFold"]) + ) { return false; } @@ -1819,35 +1829,56 @@ const BoxComponent = props => { // const nodeName = target.nodeName; // if (className?.includes("select") && nodeName === "DIV") return; if (!sBackProcessData) return; + const detail = sBackProcessData.find(item => item[showConfig.sName0 || showConfig.sName]); + let data = commonUtils.convertStrToObj(detail?.sParamConfig, []); + if (detail) { + // 确保 detail.sBackendParams 是一个数组 + detail.sBackendParams = Array.isArray(detail.sBackendParams) ? detail.sBackendParams : []; + // 过滤掉 undefined 或 null 值 + detail.sBackendParams = detail.sBackendParams.filter(param => param !== undefined && param !== null); + + data.forEach((x, i) => { + const backendParam = detail.sBackendParams[i] || {}; // 如果是 undefined,则使用空对象 + x.sParamDefault = x.sFieldName !== "" ? backendParam[x.sFieldName] : backendParam.label || x.sParamDefault; + }); + } props.setState(pre => ({ ...pre, - backendParamsConfig: commonUtils.convertStrToObj(sBackProcessData.find(item => item[showConfig.sName0 || showConfig.sName])?.sParamConfig, []), + backendParamsConfig: detail ? data : [], backendConfig: { sParentFieldsName: showConfig.sName, sBoxModel: boxModel }, })); }; // 如果是卡牌那么默认使用矩形 // const currentBoxModel = "slaveUp" + props.boxModel; // props.onDataChange(currentBoxModel, "sName", { sName: item.sName }, item.sId, boxsList); - if (selectedNode.sTypeKey === "kapai") { - console.log(5555555); - - } + + useEffect(() => { + if (selectedNode.sTypeKey === "kapai") { + const data = selectList.find(x => x.sTypes === "6"); + if (!data) return; + const currentBoxModel = "slaveUp" + props.boxModel; + props.onDataChange(currentBoxModel, "sName", { sName: data.sName }, data.sId, selectList); + } + }, [selectedNode.sTypeKey, selectList]); + return ( {selectedNode.bBox ? ( - {true ? ( - handleChange(v)} - /> + {selectedNode.sTypeKey !== "kapai" ? ( + + handleChange(v)} + /> + + ) : ( "" )} - {upViewProps @@ -2448,12 +2479,9 @@ const BackendParamsExtraComponent = props => { const { sParentFieldsName, sBoxModel } = backendConfig; // 使用 useMemo 缓存计算结果 - const slaveRowData = useMemo(() => { - return slaveData.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === sBoxModel) || {}; - }, [slaveData, selectedNode, sBoxModel]); + const slaveRowData = slaveData.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === sBoxModel) || {}; const { sBackProcessData = [] } = slaveRowData; - const viewConfigs = backendParamsConfig.map((item, index) => ({ ...item, sName0: `sParam${index + 1}`, @@ -2462,6 +2490,8 @@ const BackendParamsExtraComponent = props => { sDropDownType: item.sParamDropDown ? "sql" : "", iColValue: 4, sVisColumnName: "sProcessName", + value: item.sId, + label: item.sParamDefault, })); const viewProps = { @@ -2502,8 +2532,10 @@ const BackendParamsExtraComponent = props => { const iIndex = slaveData.findIndex(item => item.sId === slaveRowData.sId); const iIndex1 = slaveData[iIndex].sBackProcessData.findIndex(item => item[sParentFieldsName]); const showConfig = viewConfigs.find(item => item.sName === sFieldName); + let extraState = {}; + const dropDownDataSelected = dropDownData?.length - ? dropDownData.find(item => item.sId === changeValue[sFieldName]) + ? dropDownData.find(item => item.label === changeValue[sFieldName]) : { sId: commonUtils.createSid(), value: changeValue[sFieldName], @@ -2528,11 +2560,24 @@ const BackendParamsExtraComponent = props => { slaveData[iIndex].sBackProcessData[iIndex1].dManualValue = dManualLength * dManualWidth; } } - props.setState(pre => ({ ...pre, slaveData })); + // const detail = sBackProcessData.find(item => item[showConfig.sName0 || showConfig.sName]); + // let data = commonUtils.convertStrToObj(detail?.sParamConfig, []); + // if (detail) { + // // 确保 detail.sBackendParams 是一个数组 + // detail.sBackendParams = Array.isArray(detail.sBackendParams) ? detail.sBackendParams : []; + // // 过滤掉 undefined 或 null 值 + // detail.sBackendParams = detail.sBackendParams.filter(param => param !== undefined && param !== null); + + // data.forEach((x, i) => { + // const backendParam = detail.sBackendParams[i] || {}; // 如果是 undefined,则使用空对象 + // x.sParamDefault = x.sFieldName !== "" ? backendParam[x.sFieldName] : backendParam.label || x.sParamDefault; + // }); + // } + // (backendParamsConfig = detail ? data : []), + props.setState(pre => ({ ...pre, slaveData, ...extraState })); }, }; - const onCostomClick = () => {}; if (!viewConfigs.length) return; return ( @@ -2546,7 +2591,7 @@ const BackendParamsExtraComponent = props => { {x.showName} - + ))} -- libgit2 0.22.2