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