Commit 7c52ca8afa3f39128d0abf00c8ed6332a3db7e47
1 parent
ccba4bb7
盒型设计
Showing
2 changed files
with
54 additions
and
11 deletions
src/components/Common/BoxDesignCompontent/index.js
| ... | ... | @@ -311,6 +311,17 @@ const BoxDesignCompontent = baseProps => { |
| 311 | 311 | setTopBoxList(box.filter(topBoxFilter)); |
| 312 | 312 | setLeftBoxList(box.filter(leftBoxFilter)); |
| 313 | 313 | setRightBoxList(box.filter(rightBoxFilter)); |
| 314 | + } else if (type === "8" || type === 8) { | |
| 315 | + const box = [...boxList]; | |
| 316 | + box.forEach(x => { | |
| 317 | + x.show = true; | |
| 318 | + }); | |
| 319 | + const topBoxFilter = item => item.sName === "左上插位组件" || item.sName === "上插位组件" || item.sName === "右上插位组件"; | |
| 320 | + const leftBoxFilter = item => item.sName === "左偏移" || item.sName === "左插位组件" || item.sName === "左下插位组件"; | |
| 321 | + const rightBoxFilter = item => item.sName === "右偏移" || item.sName === "右插位组件" || item.sName === "右下插位组件"; | |
| 322 | + setTopDoubleBoxList(box.filter(topBoxFilter)); | |
| 323 | + setLeftDoubleBoxList(box.filter(leftBoxFilter)); | |
| 324 | + setRightDoubleBoxList(box.filter(rightBoxFilter)); | |
| 314 | 325 | } else { |
| 315 | 326 | const box = [...boxList]; |
| 316 | 327 | box.forEach(x => { |
| ... | ... | @@ -350,6 +361,7 @@ const BoxDesignCompontent = baseProps => { |
| 350 | 361 | } else { |
| 351 | 362 | } |
| 352 | 363 | }, [boxType]); |
| 364 | + | |
| 353 | 365 | const handleFocus = (e, index) => { |
| 354 | 366 | if (boxList && boxList.length) { |
| 355 | 367 | const updatedBoxList = [...boxList]; |
| ... | ... | @@ -367,6 +379,7 @@ const BoxDesignCompontent = baseProps => { |
| 367 | 379 | }; |
| 368 | 380 | |
| 369 | 381 | const handleChange = (e, index) => { |
| 382 | + console.log(e.target.value, index, "handleChange"); | |
| 370 | 383 | const updatedBoxList = [...boxList]; |
| 371 | 384 | updatedBoxList[index].value = e.target.value; |
| 372 | 385 | setBoxList(updatedBoxList); |
| ... | ... | @@ -409,7 +422,6 @@ const BoxDesignCompontent = baseProps => { |
| 409 | 422 | const imageUrl = `${commonConfig.file_host}file/download?savePathStr=${fileName}&scale=0.1&sModelsId=100&token=${props.token}`; |
| 410 | 423 | return imageUrl; |
| 411 | 424 | }; |
| 412 | - console.log(boxList, "boxList"); | |
| 413 | 425 | |
| 414 | 426 | // 下来框 |
| 415 | 427 | const renderOptionWithImage = option => { |
| ... | ... | @@ -817,10 +829,6 @@ const BoxDesignCompontent = baseProps => { |
| 817 | 829 | return i || 0; |
| 818 | 830 | }; |
| 819 | 831 | |
| 820 | - // 单独处理双层盒型 | |
| 821 | - if (boxType === "8") { | |
| 822 | - console.log(newBoxList, boxList, "topBoxList"); | |
| 823 | - } | |
| 824 | 832 | return ( |
| 825 | 833 | <AntdDraggableModal |
| 826 | 834 | width="1000px" | ... | ... |
src/components/Common/BoxDesignCompontent/svg.js
| ... | ... | @@ -50,8 +50,8 @@ import { |
| 50 | 50 | createBoxComponentNewFul5, |
| 51 | 51 | createBoxComponentNewFul6, |
| 52 | 52 | } from "../BoxDesign/createAirplaneBox"; |
| 53 | -import { log } from "lodash-decorators/utils"; | |
| 54 | 53 | const SvgBox = props => { |
| 54 | + console.log("🚀 ~ SvgBox:", props); | |
| 55 | 55 | const svgContainerRef = useRef(null); |
| 56 | 56 | const svgRef = useRef(null); |
| 57 | 57 | const [boxKey, setBoxKey] = useState(new Date().getTime()); |
| ... | ... | @@ -90,6 +90,17 @@ const SvgBox = props => { |
| 90 | 90 | setWidth(boxLength); |
| 91 | 91 | setHeight(boxWidth); |
| 92 | 92 | setDeep(boxHeight); |
| 93 | + let headLength = 0; | |
| 94 | + let headWidth = 0; | |
| 95 | + let orderLength = 0; | |
| 96 | + let orderWidth = 0; | |
| 97 | + if (svgTypes === "8") { | |
| 98 | + headLength = Number(boxList.find(x => x.sName === "首盒长")?.value) || 0; | |
| 99 | + headWidth = Number(boxList.find(x => x.sName === "首盒宽")?.value) || 0; | |
| 100 | + orderLength = Number(boxList.find(x => x.sName === "次盒长")?.value) || 0; | |
| 101 | + orderWidth = Number(boxList.find(x => x.sName === "次盒宽")?.value) || 0; | |
| 102 | + } | |
| 103 | + console.log(headLength, headWidth, orderLength, orderWidth, props.showNew, "orderWidth"); | |
| 93 | 104 | |
| 94 | 105 | // 计算视口宽度和高度 |
| 95 | 106 | const zbtb = boxList.find(x => x.sName === "左贴边位"); |
| ... | ... | @@ -194,9 +205,8 @@ const SvgBox = props => { |
| 194 | 205 | } else if (Number(svgType) === 6) { |
| 195 | 206 | viewBoxWidth = boxWidth + 2; |
| 196 | 207 | viewBoxHeight = boxLength + 2; |
| 197 | - | |
| 198 | 208 | } else if (Number(svgType) === 7) { |
| 199 | - boxHeight = boxWidth | |
| 209 | + boxHeight = boxWidth; | |
| 200 | 210 | const zxcw = boxList.find(x => x.sName === "左(下)插位组件"); |
| 201 | 211 | const zscw = boxList.find(x => x.sName === "左(上)插位组件"); |
| 202 | 212 | const yscw = boxList.find(x => x.sName === "右(上)插位组件"); |
| ... | ... | @@ -250,10 +260,13 @@ const SvgBox = props => { |
| 250 | 260 | bottomValue = boxHeight * 3; |
| 251 | 261 | } |
| 252 | 262 | viewBoxWidth = Number(boxLength) + leftValue + rightValue; |
| 253 | - console.log("🚀 ~ initSVG ~ leftValue:", leftValue,rightValue) | |
| 254 | 263 | viewBoxHeight = Number(boxWidth) + topValue + bottomValue; |
| 255 | 264 | // viewBoxWidth = boxWidth + leftValue + rightValue; |
| 256 | 265 | // viewBoxHeight = boxLength + dZSCW + dYXCW; |
| 266 | + } else if (Number(svgType) === 8) { | |
| 267 | + | |
| 268 | + viewBoxWidth = Number(headLength); | |
| 269 | + viewBoxHeight = Number(headWidth) + Number(orderWidth); | |
| 257 | 270 | } |
| 258 | 271 | // 计算缩放比例 |
| 259 | 272 | let scale = 1; |
| ... | ... | @@ -299,8 +312,8 @@ const SvgBox = props => { |
| 299 | 312 | } else { |
| 300 | 313 | xSvg = zbtb?.value; |
| 301 | 314 | } |
| 302 | - console.log(xSvg,viewBoxWidth / 2,viewBoxWidth,'viewBoxWidth / 2'); | |
| 303 | - | |
| 315 | + console.log(xSvg, viewBoxWidth / 2, viewBoxWidth, "viewBoxWidth / 2"); | |
| 316 | + | |
| 304 | 317 | svg.setAttribute( |
| 305 | 318 | "viewBox", |
| 306 | 319 | `${-(dSvgBoxWidth ? xSvg : viewBoxWidth / 2)} ${dSvgBoxWidth ? -0 : -ySvg} ${dSvgBoxWidth ? dSvgBoxWidth : 500} ${ |
| ... | ... | @@ -1185,6 +1198,28 @@ const SvgBox = props => { |
| 1185 | 1198 | g.appendChild(x); |
| 1186 | 1199 | }); |
| 1187 | 1200 | svg.appendChild(g); |
| 1201 | + } else if (Number(svgType) === 8) { | |
| 1202 | + const scaleHeadLength = headLength * scale | |
| 1203 | + const scaleHeadWidth = headWidth * scale | |
| 1204 | + const scaleOrderLength = orderLength * scale | |
| 1205 | + const scaleOrderWidth = orderWidth * scale | |
| 1206 | + // 获取他的偏移距离 | |
| 1207 | + const leftOffect = boxList.find(x=>x.sName === "左偏移")?.value || 0 | |
| 1208 | + const rightOffect = boxList.find(x=>x.sName === "右偏移")?.value || 0 | |
| 1209 | + console.log("🚀 ~ initSVG ~ rightOffect:", leftOffect,rightOffect) | |
| 1210 | + const rectangles = [{ x: 0, y: 0, width: scaleHeadLength, height: scaleHeadWidth }]; | |
| 1211 | + rectangles.forEach(rect => { | |
| 1212 | + g.appendChild(createPathElement(rect.x, rect.y, rect.width, rect.height)); | |
| 1213 | + }); | |
| 1214 | + const rectanglesLeft = [{ x: scaleHeadLength / 2 - scaleOrderLength - Number(leftOffect), y: scaleHeadWidth, width: scaleOrderLength, height: scaleOrderWidth }]; | |
| 1215 | + rectanglesLeft.forEach(rect => { | |
| 1216 | + g.appendChild(createPathElement(rect.x, rect.y, rect.width, rect.height)); | |
| 1217 | + }); | |
| 1218 | + const rectanglesRight = [{ x: scaleHeadLength / 2 + Number(rightOffect), y: scaleHeadWidth, width: scaleOrderLength, height: scaleOrderWidth }]; | |
| 1219 | + rectanglesRight.forEach(rect => { | |
| 1220 | + g.appendChild(createPathElement(rect.x, rect.y, rect.width, rect.height)); | |
| 1221 | + }); | |
| 1222 | + svg.appendChild(g); | |
| 1188 | 1223 | } |
| 1189 | 1224 | }; |
| 1190 | 1225 | // 计算头部偏移 | ... | ... |