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/view.jsx |   46 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 34 insertions(+), 12 deletions(-)

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 94cd383..6b5e680 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
@@ -1,4 +1,5 @@
 import React, { useState, useRef, useEffect } from 'react';
+import * as THREE from 'three'
 import { Spin, Descriptions, Button } from 'antd';
 import { FormattedMessage, useIntl, useModel } from '@umijs/max';
 import { LoadingOutlined } from '@ant-design/icons';
@@ -62,29 +63,50 @@
     const [loading, setLoading] = React.useState(false);
 
     const [shelfList, setShelfList] = React.useState([]);
-
-
+    const [curLocNo, setCurLocNo] = React.useState(props.locNo);
 
     useEffect(() => {
-        // locNo data
+        setCurLocNo(props.locNo)
+        endThree();
+        setLoading(true);
+
         const fetchShelfInfo = async (locNo) => {
             const res = await Http.doGet('/api/map/shelf/info', { locNo: locNo });
-            if (res?.data) {
-                console.log(res.data);
+            if (res?.data && shelfThree) {
+                shelfThree.generateMesh((addObject) => {
+                    for (const item of res.data) {
+                        const { row, bay, lev } = Utils.parseLocNo(item.locNo);
+                        // 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);
+                        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);
+                        addObject(palletMesh)
+                    }
+                });
             }
         }
-        fetchShelfInfo(props.locNo);
 
-        // 3d
-        setLoading(true);
-        endThree();
         setTimeout(() => {
-            setLoading(false);
             startThree(refContainer.current);
+
+            shelfThree.handleClick = (str) => {
+                console.log(str);
+            }
+
+            fetchShelfInfo(props.locNo);
+            setLoading(false);
         }, 300)
 
         return endThree;
-    }, [props.data.uuid]);
+    }, [props.data.uuid, props.locNo]);
 
     return (
         <>
@@ -109,7 +131,7 @@
                                 {
                                     key: '1',
                                     label: intl.formatMessage({ id: 'map.loc.no', defaultMessage: '搴撲綅鍙�' }),
-                                    children: props.locNo,
+                                    children: curLocNo,
                                 },
                                 {
                                     key: '2',

--
Gitblit v1.9.1