From 7c32ab19d3bf4c601212314a1617bbb51c5fdd2a Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 29 三月 2024 16:01:36 +0800 Subject: [PATCH] # --- zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js | 22 +++++++--------------- zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx | 12 ++++++++---- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js b/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js index 09babda..0ed9899 100644 --- a/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js +++ b/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js @@ -57,7 +57,7 @@ initScene = () => { const scene = new THREE.Scene(); // scene.background = new THREE.Color(0xf0f0f0); - // scene.background = new THREE.Color(0x333333); + scene.background = new THREE.Color(0x333333); if (help) { scene.add(new THREE.AxesHelper(1000)); } @@ -126,10 +126,9 @@ const raycaster = new THREE.Raycaster(); const mouse = new THREE.Vector2(); - this.dom.addEventListener("click", (event) => { - this.handleClick("null"); - }) this.dom.addEventListener("dblclick", (event) => { + }) + this.dom.addEventListener("click", (event) => { let x, y; if (event.changedTouches) { x = event.changedTouches[0].pageX; @@ -139,34 +138,27 @@ y = event.clientY; } event.preventDefault(); + // mouse.x = (x / this.getFullWidth()) * 2 - 1; + // mouse.y = -(y / this.getFullHeight()) * 2 + 1; mouse.x = (x / window.innerWidth) * 2 - 1; mouse.y = -(y / window.innerHeight) * 2 + 1; raycaster.setFromCamera(mouse, that.camera); let intersects = raycaster.intersectObjects(that.objects, true); + console.log(intersects); if (intersects.length === 0) { - this.handleClick("null"); return; } let objName = intersects[0].object.name; if (objName.startsWith("locNo")) { - if (this.handleClick) { this.handleClick(objName, x, y); } - - } else { - this.handleClick("null"); } - }, false); } generateMesh = (fn) => { - fn(this.scene); - } - - handleClick = () => { - + fn(this.addObject); } destroy = () => { diff --git a/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx b/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx index 761672e..6b5e680 100644 --- a/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx +++ b/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx @@ -73,23 +73,22 @@ const fetchShelfInfo = async (locNo) => { const res = await Http.doGet('/api/map/shelf/info', { locNo: locNo }); if (res?.data && shelfThree) { - shelfThree.generateMesh((scene) => { + shelfThree.generateMesh((addObject) => { for (const item of res.data) { const { row, bay, lev } = Utils.parseLocNo(item.locNo); - console.log(row, bay, lev); // shelf const shelfMesh = new THREE.Mesh(new THREE.BoxGeometry(100, 40, 100), new THREE.MeshStandardMaterial({ color: '#006266', })); shelfMesh.position.set(0, 20 + 100 * (lev - 1), 0); - scene.add(shelfMesh) + addObject(shelfMesh) // pallet const palletMesh = new THREE.Mesh(new THREE.BoxGeometry(100, 60, 100), new THREE.MeshStandardMaterial({ color: '#2c2c54', })); palletMesh.position.set(0, 70 + 100 * (lev - 1), 0); - scene.add(palletMesh) + addObject(palletMesh) } }); } @@ -97,6 +96,11 @@ setTimeout(() => { startThree(refContainer.current); + + shelfThree.handleClick = (str) => { + console.log(str); + } + fetchShelfInfo(props.locNo); setLoading(false); }, 300) -- Gitblit v1.9.1