From 2fb2947a3b2a487d7205e106dd6bdad37493d43f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 29 三月 2024 15:11:04 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js | 30 +-------------
zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx | 41 ++++++++++++++------
2 files changed, 32 insertions(+), 39 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 52f2d8a..d78e531 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js
+++ b/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js
@@ -24,7 +24,6 @@
initLight(this.scene);
this.animate();
- this.build();
}
animate = () => {
@@ -162,9 +161,8 @@
}, false);
}
- build = () => {
- buildShelf(this.scene);
- buildPallet(this.scene);
+ generateMesh = (fn) => {
+ fn(this.scene);
}
handleClick = () => {
@@ -232,26 +230,4 @@
if (help) {
scene.add(new THREE.SpotLightHelper(spotLight));
}
-}
-
-const buildShelf = (scene) => {
- const boxGeometry = new THREE.BoxGeometry(100, 40, 100);
- const boxMaterial = new THREE.MeshStandardMaterial({
- color: '#222f3e',
- });
- const boxMesh = new THREE.Mesh(boxGeometry, boxMaterial);
- boxMesh.position.set(0, 20, 0);
- scene.add(boxMesh)
- return boxMesh;
-}
-
-const buildPallet = (scene) => {
- const boxGeometry = new THREE.BoxGeometry(100, 60, 100);
- const boxMaterial = new THREE.MeshStandardMaterial({
- color: '#b33939',
- });
- const boxMesh = new THREE.Mesh(boxGeometry, boxMaterial);
- boxMesh.position.set(0, 70, 0);
- scene.add(boxMesh)
- return boxMesh;
-}
+}
\ No newline at end of file
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..8688226 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,45 @@
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((scene) => {
+ for (const item of res.data) {
+ console.log(item);
+ // shelf
+ const shelfMesh = new THREE.Mesh(new THREE.BoxGeometry(100, 40, 100), new THREE.MeshStandardMaterial({
+ color: '#222f3e',
+ }));
+ shelfMesh.position.set(0, 20, 0);
+ scene.add(shelfMesh)
+
+ // pallet
+ const palletMesh = new THREE.Mesh(new THREE.BoxGeometry(100, 60, 100), new THREE.MeshStandardMaterial({
+ color: '#b33939',
+ }));
+ palletMesh.position.set(0, 70, 0);
+ scene.add(palletMesh)
+ }
+ });
}
}
- fetchShelfInfo(props.locNo);
- // 3d
- setLoading(true);
- endThree();
setTimeout(() => {
- setLoading(false);
startThree(refContainer.current);
+ fetchShelfInfo(props.locNo);
+ setLoading(false);
}, 300)
return endThree;
- }, [props.data.uuid]);
+ }, [props.data.uuid, props.locNo]);
return (
<>
@@ -109,7 +126,7 @@
{
key: '1',
label: intl.formatMessage({ id: 'map.loc.no', defaultMessage: '搴撲綅鍙�' }),
- children: props.locNo,
+ children: curLocNo,
},
{
key: '2',
--
Gitblit v1.9.1