From d158aafcbf74d81680f1530baacfe38bd7c2d3ad Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 29 四月 2024 15:03:40 +0800 Subject: [PATCH] # --- src/core/warehouse.jsx | 54 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/core/warehouse.jsx b/src/core/warehouse.jsx index 24224fa..3989ebf 100644 --- a/src/core/warehouse.jsx +++ b/src/core/warehouse.jsx @@ -1,11 +1,18 @@ import { useState, useEffect, useRef, useMemo } from 'react'; import { useFrame } from '@react-three/fiber'; import * as THREE from 'three'; -import Agv from '../components/agv'; -import Box from '../components/box'; -import tunnelData from '../assets/data/tunnel'; import Tunnel from '../components/tunnel'; +import Area from '../components/area'; +import Shelf from '../components/shelf'; +import Box from '../components/box'; +import Agv from '../components/agv'; + +import tunnelData from '@/assets/data/tunnel'; +import areaData from '@/assets/data/area'; +import shelfData from '@/assets/data/shelf'; import agvRealDataList from '@/assets/data/agv'; +import { getBoxData } from '../api/box'; +import { getAgvData } from '../api/agv'; import { INTERVAL_TIME } from '@/config/setting' let index = 0; @@ -15,19 +22,24 @@ const [agvData, setAgvData] = useState([ {} ]); - - const [boxData, setBoxData] = useState([ - {} - ]) + const [boxData, setBoxData] = useState([]) useEffect(() => { const timer = setInterval(() => { + getBoxData().then(res => { + setBoxData(res); + }) + + getAgvData().then(res => { + // setAgvData(res); + }) + const agvRealData = agvRealDataList[index]; if (agvRealData) { setAgvData(agvRealData); } index++; - }, INTERVAL_TIME); + }, INTERVAL_TIME * 1.1); return () => { clearInterval(timer); @@ -35,12 +47,29 @@ }, []) const tunnelEl = useMemo(() => { - return tunnelData.map((tunnel, index) => <Tunnel key={index} {...tunnel} />) + return tunnelData.map((data, index) => <Tunnel key={index} {...data} />) }, []); - const agvEl = agvData.map((data, idx) => <Agv key={idx} {...data} />) + const areaEl = useMemo(() => { + return areaData.map((area, index) => <Area key={index} {...area} />) + }, []); - const boxEl = boxData.map((data, idx) => <Box key={idx} {...data} />) + const shelfEl = useMemo(() => { + return shelfData.map((data, index) => <Shelf key={index} {...data} />) + }, []); + + const shelfEl1 = useMemo(() => { + return shelfData.slice(0, 1).map((data, index) => <Shelf key={index} {...data} />) + }, []); + + const boxEl = useMemo(() => { + return boxData.map((data, idx) => <Box key={idx} {...data} />) + }, [boxData]); + + const agvEl = useMemo(() => { + return agvData.map((data, idx) => <Agv key={idx} {...data} />) + }, [agvData]); + useFrame((state, delta) => { @@ -50,6 +79,9 @@ <> <group> {tunnelEl} + {areaEl} + {shelfEl} + {/* {shelfEl1} */} {agvEl} {boxEl} </group> -- Gitblit v1.9.1