From 9121586a22ea00ec4a3ef873c621dab8840508e4 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 26 四月 2024 15:16:39 +0800
Subject: [PATCH] #

---
 src/components/box.jsx |   34 ++++++++++++++++++++++++++++++----
 1 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/src/components/box.jsx b/src/components/box.jsx
index 42ab356..a3dd4dc 100644
--- a/src/components/box.jsx
+++ b/src/components/box.jsx
@@ -6,10 +6,28 @@
 import * as Common from '../utils/common';
 import { useStore } from '@/store';
 
+const getShelfRow = (row) => {
+    return row;
+}
+
+const getShelfBay = (bay) => {
+    return bay - (bay - 1) % 3;
+}
+
+const getShelfLev = (lev) => {
+    return 1;
+}
+
+const getShelfNo = (row, bay, lev) => {
+    return getShelfRow(row) + '-' + getShelfBay(bay) + '-' + getShelfLev(lev);
+}
+
 const Box = (props) => {
-    const { position = [0, 300, 0], rotationY = 0 } = props;
+    const { row, bay, lev, position = [0, 300, 0], rotationY = 0 } = props;
     const state = useStore();
-    
+
+    const [pos, setPos] = useState([]);
+
     const boxModel = useMemo(() => {
         const fbx = useFBX('/models/box/box.fbx');
         if (!fbx.castShadow) {
@@ -20,12 +38,20 @@
     }, [])
 
     useEffect(() => {
-        console.log(state.shelfList['1-1-1']);
+        if (row && bay && lev) {
+            // from shelf
+            const shelfNo = getShelfNo(row, bay, lev);
+            const shelfPos = state.shelfList[shelfNo];
+            setPos(shelfPos);
+        } else {
+            // from agv
+            setPos(position);
+        }
     }, [props]);
 
     return (
         <>
-            <group rotation-y={rotationY} position={position}>
+            <group rotation-y={rotationY} position={pos}>
                 <primitive object={boxModel} castShadow />
             </group>
         </>

--
Gitblit v1.9.1