Commit 4412932ffcf177138c3dbf545cec81c87b161146

Authored by 陈鑫涛
1 parent 6da83708

排版

src/components/Common/Typesetting/typesetting.js
@@ -86,10 +86,10 @@ const Typesetting = props => { @@ -86,10 +86,10 @@ const Typesetting = props => {
86 // 如果需要自定义排版数 86 // 如果需要自定义排版数
87 87
88 // 确认是竖向排列还是横向排列 88 // 确认是竖向排列还是横向排列
89 - const L = Number(masterData?.dLength) ?? 0;  
90 - const W = Number(masterData?.dWidth) ?? 0;  
91 - const H = Number(masterData?.dWidth) ?? 0;  
92 - const D = Number(masterData?.dHeight) ?? 0; 89 + const L = masterData?.dLength;
  90 + const W = masterData?.dWidth;
  91 + const H = masterData?.dWidth;
  92 + const D = masterData?.dHeight;
93 93
94 // 动态计算公式值 94 // 动态计算公式值
95 const evaluateFormula = (formula, variables) => { 95 const evaluateFormula = (formula, variables) => {
@@ -109,14 +109,12 @@ const Typesetting = props => { @@ -109,14 +109,12 @@ const Typesetting = props => {
109 return 0; 109 return 0;
110 } 110 }
111 }; 111 };
112 -  
113 // 计算公式值 112 // 计算公式值
114 const variables = { 113 const variables = {
115 L, 114 L,
116 W, 115 W,
117 H, 116 H,
118 D, 117 D,
119 -  
120 ...props.slaveRowData, 118 ...props.slaveRowData,
121 }; 119 };
122 let boxList = []; 120 let boxList = [];
@@ -140,52 +138,43 @@ const Typesetting = props => { @@ -140,52 +138,43 @@ const Typesetting = props => {
140 { name: "右贴边位", value: "dYTBW" }, 138 { name: "右贴边位", value: "dYTBW" },
141 { name: "右(下)插位组件", value: "dYXCW" }, 139 { name: "右(下)插位组件", value: "dYXCW" },
142 ]; 140 ];
143 - const results = slaveNewData.reduce((acc, { sName, sDefault }) => ({ ...acc, [sName]: sDefault }), {});  
144 - let { dSFHS, dHDC, dXFHS, dZSCW, dZTBW, dZXCW, dYSCW, dYTBW, dYXCW } = results;  
145 - if (results) {  
146 - slaveNewData.forEach(x => {  
147 - let key = 0;  
148 - if (x.sAssignFormula) {  
149 - const i = titleList1.findIndex(item => item.value === x.sAssignFormula);  
150 - if (i !== -1) {  
151 - key = results[x.sAssignFormula];  
152 - } else {  
153 - key = eval(x.sAssignFormula);  
154 - }  
155 - } else {  
156 - key = slaveRowData[x.sName];  
157 - }  
158 - boxList.push({  
159 - value: key,  
160 - sName: titleList1.find(item => item.value === x.sName)?.name || "",  
161 - isEditable: true,  
162 - isSelect: false,  
163 - selectValue: null,  
164 - selectLabel: "",  
165 - selectImage: null,  
166 - type: x.sTypes || null,  
167 - show: true,  
168 - sCode: titleList1.find(item => item.value === x.sName)?.value || "",  
169 - showName: x.showName, // 参数名称  
170 - sAssignFormula: x.sAssignFormula,  
171 - }); 141 + slaveNewData.forEach(x => {
  142 + let key = 0;
  143 + if (x.sAssignFormula) {
  144 + key = evaluateFormula(x.sAssignFormula, variables);
  145 + } else {
  146 + key = slaveRowData[x.sName];
  147 + }
  148 + boxList.push({
  149 + value: key,
  150 + sName: titleList1.find(item => item.value === x.sName)?.name || "",
  151 + isEditable: true,
  152 + isSelect: false,
  153 + selectValue: null,
  154 + selectLabel: "",
  155 + selectImage: null,
  156 + type: x.sTypes || null,
  157 + show: true,
  158 + sCode: titleList1.find(item => item.value === x.sName)?.value || "",
  159 + showName: x.showName, // 参数名称
172 }); 160 });
173 - tables.forEach(x => {  
174 - boxList.push({  
175 - value: x.value,  
176 - sName: x.name,  
177 - isEditable: true,  
178 - isSelect: false,  
179 - selectValue: null,  
180 - selectLabel: "",  
181 - selectImage: null,  
182 - type: x.type || null,  
183 - show: true,  
184 - showName: x.name, // 参数名称  
185 - }); 161 + });
  162 + tables.forEach(x => {
  163 + boxList.push({
  164 + value: x.value,
  165 + sName: x.name,
  166 + isEditable: true,
  167 + isSelect: false,
  168 + selectValue: null,
  169 + selectLabel: "",
  170 + selectImage: null,
  171 + type: x.type || null,
  172 + show: true,
  173 + showName: x.name, // 参数名称
186 }); 174 });
187 - } 175 + });
188 } 176 }
  177 +
189 const result = boxList.reduce((acc, { sCode, value }) => ({ ...acc, [sCode]: value }), {}); 178 const result = boxList.reduce((acc, { sCode, value }) => ({ ...acc, [sCode]: value }), {});
190 179
191 // 计算表达式结果 180 // 计算表达式结果
@@ -194,33 +183,42 @@ const Typesetting = props => { @@ -194,33 +183,42 @@ const Typesetting = props => {
194 W, 183 W,
195 H, 184 H,
196 D, 185 D,
197 -  
198 ...props.slaveRowData, 186 ...props.slaveRowData,
199 ...result, 187 ...result,
200 }; 188 };
201 - const keys = ["dSFHS", "dHDC", "dXFHS", "dZSCW", "dZTBW", "dZXCW", "dYSCW", "dYTBW", "dYXCW"];  
202 - for (let key of keys) {  
203 - let num = Number(variabless[key]); // 将变量值转换为数字  
204 - result[key] = Number.isNaN(num) ? 0 : num; // 如果是 NaN,则设置为 0,否则保留原值  
205 - }  
206 - let { dSFHS, dHDC, dXFHS, dZSCW, dZTBW, dZXCW, dYSCW, dYTBW, dYXCW } = result; 189 + console.log(variabless, "variabless");
  190 + const evaluateFormulas = (formula, variables) => {
  191 + if (!formula) return ""; // 如果公式为空,返回空字符串
207 192
  193 + 提; //取公式中的变量名
  194 + const variableNames = formula.match(/\b[a-zA-Z_][a-zA-Z0-9_]*\b/g) || [];
  195 +
  196 + // 替换公式中的变量为实际值
  197 + let modifiedFormula = formula;
  198 + variableNames.forEach(name => {
  199 + if (variables[name] !== undefined) {
  200 + modifiedFormula = modifiedFormula.replace(new RegExp(`\\b${name}\\b`, "g"), variables[name]);
  201 + }
  202 + });
  203 +
  204 + return modifiedFormula;
  205 + };
  206 + // const s = `((dYXCW + D) >= dSFHS) && ((dYXCW + D) >= dZSCW)
  207 + // ? (dSFHS >= dZSCW ? -(dYXCW + D - dSFHS) * 2 : -((dYXCW + D) - dZSCW)) * 2
  208 + // : dSFHS >= dZSCW ? (dYXCW + D >= dZSCW) ? -(dSFHS - (dYXCW + D)) * 2 : -(dSFHS - dZXCW) * 2 : (dYXCW + D >= dSFHS) ? -(dZSCW - (dYXCW + D)) * 2 : -(dZXCW - dSFHS) * 2`
  209 + // const ddd = evaluateFormula(s, variabless);
  210 + // console.log("🚀 ~ ddd:", ddd);
208 let DisableMateriallIcon = L ? sPackDetailPath : null; 211 let DisableMateriallIcon = L ? sPackDetailPath : null;
209 // 盒子展长展开公式计算 212 // 盒子展长展开公式计算
210 -  
211 - let innerWidth = slaveRowData.sTypes === "6" ? eval(sWidthFormula) : eval(sLengthFormula);  
212 - let innerHeight = slaveRowData.sTypes === "6" ? eval(sLengthFormula) : eval(sWidthFormula);  
213 - if (isNaN(innerHeight) || isNaN(innerHeight)) {  
214 - innerWidth = 0;  
215 - innerHeight = 0;  
216 - } 213 + const innerWidth = slaveRowData.sTypes === "6" ? evaluateFormula(sWidthFormula, variabless) : evaluateFormula(sLengthFormula, variabless);
  214 + const innerHeight = slaveRowData.sTypes === "6" ? evaluateFormula(sLengthFormula, variabless) : evaluateFormula(sWidthFormula, variabless);
217 const { sSettingMethod, sSGroupOffset, iFAngle, iSAngle, sSecondorizontalOffset, sSecondLongitudinalOffset } = radioValue ? radioValue : {}; 215 const { sSettingMethod, sSGroupOffset, iFAngle, iSAngle, sSecondorizontalOffset, sSecondLongitudinalOffset } = radioValue ? radioValue : {};
218 - const dFWidthOffset = eval(radioValue?.sFWidthOffset); // 首盒纵向偏移  
219 - const dFLengthOffset = eval(radioValue?.sFLengthOffset); // 首盒横向偏移  
220 - const dSWidthOffset = eval(radioValue?.sSWidthOffset); // 次盒纵向偏移  
221 - const dSLengthOffset = eval(radioValue?.sSLengthOffset); // 次盒横向偏移  
222 - const boxLengthOffset = eval(sSecondorizontalOffset); // 第二列横向偏移  
223 - const boxWidthOffset = eval(sSecondLongitudinalOffset); // 第二列纵向偏移 216 + const dFWidthOffset = evaluateFormula(radioValue?.sFWidthOffset, variabless); // 首盒纵向偏移
  217 + const dFLengthOffset = evaluateFormula(radioValue?.sFLengthOffset, variabless); // 首盒横向偏移
  218 + const dSWidthOffset = evaluateFormula(radioValue?.sSWidthOffset, variabless); // 次盒纵向偏移
  219 + const dSLengthOffset = evaluateFormula(radioValue?.sSLengthOffset, variabless); // 次盒横向偏移
  220 + const boxLengthOffset = evaluateFormula(sSecondorizontalOffset, variabless); // 第二列横向偏移
  221 + const boxWidthOffset = evaluateFormula(sSecondLongitudinalOffset, variabless); // 第二列纵向偏移
224 const isVertical = sSettingMethod === "从上到下"; // true 表示竖向排列,false 表示横向排列 sSettingMethod === '从上到下' 222 const isVertical = sSettingMethod === "从上到下"; // true 表示竖向排列,false 表示横向排列 sSettingMethod === '从上到下'
225 const reference = sSGroupOffset === "首盒"; // 第三列参考 223 const reference = sSGroupOffset === "首盒"; // 第三列参考
226 224
@@ -317,7 +315,7 @@ const Typesetting = props => { @@ -317,7 +315,7 @@ const Typesetting = props => {
317 dSvgBoxHeight, 315 dSvgBoxHeight,
318 showNew: 2, 316 showNew: 2,
319 }; 317 };
320 - // const { dZTBW } = variabless; 318 + const { dZTBW } = variabless;
321 const createDiv = (col, row, index, leftPosition, topPosition, offsetZ, icon) => ( 319 const createDiv = (col, row, index, leftPosition, topPosition, offsetZ, icon) => (
322 <div 320 <div
323 key={`${col}-${row}-${index}`} 321 key={`${col}-${row}-${index}`}
@@ -495,6 +493,7 @@ const Typesetting = props =&gt; { @@ -495,6 +493,7 @@ const Typesetting = props =&gt; {
495 // rows = 1 493 // rows = 1
496 // } 494 // }
497 // } 495 // }
  496 + console.log(cols, rows, "rows");
498 497
499 for (let col = 0; col < cols; col++) { 498 for (let col = 0; col < cols; col++) {
500 for (let row = 0; row < rows; row++) { 499 for (let row = 0; row < rows; row++) {
@@ -561,6 +560,7 @@ const Typesetting = props =&gt; { @@ -561,6 +560,7 @@ const Typesetting = props =&gt; {
561 // 判断列是否是单独的 560 // 判断列是否是单独的
562 const newMaterialLength = propsDataLeft + (remaining ? jInnerWidth : innerWidthCombined) - dYBJJ; // 原纸长 561 const newMaterialLength = propsDataLeft + (remaining ? jInnerWidth : innerWidthCombined) - dYBJJ; // 原纸长
563 const newMaterialWidth = propsDataTop + propsDataHeight - dSBLB; 562 const newMaterialWidth = propsDataTop + propsDataHeight - dSBLB;
  563 + console.log("🚀 ~ newMaterialWidth:", propsData, propsDataTop, propsDataHeight, newMaterialWidth, newMaterialLength);
564 564
565 // 计算开数 565 // 计算开数
566 const dSinglePQty = isVertical 566 const dSinglePQty = isVertical
src/components/QuickQuote/index.jsx
@@ -1764,6 +1764,7 @@ const BoxComponent = props =&gt; { @@ -1764,6 +1764,7 @@ const BoxComponent = props =&gt; {
1764 let juantongConfig = {}; 1764 let juantongConfig = {};
1765 1765
1766 if (selectedNode.sTypeKey === "juantong") { 1766 if (selectedNode.sTypeKey === "juantong") {
  1767 + console.log(selectedNode.sTypeKey, "sTypeKey");
1767 1768
1768 const { dYBJJ, dXBJJ, dZBLB } = slaveData[index]; 1769 const { dYBJJ, dXBJJ, dZBLB } = slaveData[index];
1769 juantongConfig = { 1770 juantongConfig = {
@@ -1880,17 +1881,10 @@ const BoxComponent = props =&gt; { @@ -1880,17 +1881,10 @@ const BoxComponent = props =&gt; {
1880 ...slaveRowData, 1881 ...slaveRowData,
1881 }; 1882 };
1882 1883
1883 - const results = slaveNewData.reduce((acc, { sName, sDefault }) => ({ ...acc, [sName]: sDefault }), {});  
1884 - let { dSFHS, dHDC, dXFHS, dZSCW, dZTBW, dZXCW, dYSCW, dYTBW, dYXCW } = results;  
1885 slaveNewData.forEach(x => { 1884 slaveNewData.forEach(x => {
1886 let key = 0; 1885 let key = 0;
1887 if (x.sAssignFormula) { 1886 if (x.sAssignFormula) {
1888 - const i = titleList1.findIndex(item => item.value === x.sAssignFormula);  
1889 - if (i !== -1) {  
1890 - key = results[x.sAssignFormula];  
1891 - } else {  
1892 - key = eval(x.sAssignFormula);  
1893 - } 1887 + key = evaluateFormula(x.sAssignFormula, variables);
1894 } else { 1888 } else {
1895 key = slaveRowData[x.sName]; 1889 key = slaveRowData[x.sName];
1896 } 1890 }
@@ -1932,7 +1926,10 @@ const BoxComponent = props =&gt; { @@ -1932,7 +1926,10 @@ const BoxComponent = props =&gt; {
1932 }; 1926 };
1933 const isShowImg = boxList.find(x => x.sName === "盒身")?.type !== "" || false; 1927 const isShowImg = boxList.find(x => x.sName === "盒身")?.type !== "" || false;
1934 const PrintingParameters = props.getI18nName("PrintingParameters", "印刷参数"); 1928 const PrintingParameters = props.getI18nName("PrintingParameters", "印刷参数");
1935 - 1929 + // props.setState(prevState => ({
  1930 + // ...prevState,
  1931 + // svgBoxList: boxList,
  1932 + // }));
1936 return ( 1933 return (
1937 <Tabs 1934 <Tabs
1938 key={boxModel} 1935 key={boxModel}