From f69c6c78bd95e38773b17a45da5e6bde17bdcee2 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 03 四月 2024 13:52:04 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx | 74 +++++++++++++++++++-----------------
1 files changed, 39 insertions(+), 35 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 f7a4433..3a313fc 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
@@ -56,57 +56,61 @@
}
}
+const fetchShelfInfo = async (locNo) => {
+ const res = await Http.doGet('/api/map/shelf/info', { locNo: locNo });
+ 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.name = item.locNo;
+ 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.name = item.locNo;
+ palletMesh.position.set(0, 70 + 100 * (lev - 1), 0);
+ addObject(palletMesh)
+ }
+ }).then(() => {
+ shelfThree.setNewSelectedMesh(locNo);
+ });
+ }
+}
+
const ShelfView = (props) => {
const intl = useIntl();
const { styles } = useStyles();
const refContainer = useRef();
+
+ const { data, curFloor, curLocNo, setCurLocNo } = props;
const [loading, setLoading] = React.useState(false);
- const [shelfList, setShelfList] = React.useState([]);
- const [curLocNo, setCurLocNo] = React.useState(props.locNo);
-
useEffect(() => {
- setCurLocNo(props.locNo)
+ // init curLocNo
+ const originLocNo = data.no + '-' + curFloor;
+ setCurLocNo(originLocNo);
+
endThree();
setLoading(true);
- const fetchShelfInfo = async (locNo) => {
- const res = await Http.doGet('/api/map/shelf/info', { locNo: locNo });
- 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.name = item.locNo;
- 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.name = item.locNo;
- palletMesh.position.set(0, 70 + 100 * (lev - 1), 0);
- addObject(palletMesh)
- }
- });
- }
- }
-
setTimeout(() => {
startThree(refContainer.current);
- shelfThree.handleClick = (locNo) => {
- setCurLocNo(locNo);
- }
- fetchShelfInfo(props.locNo);
+ shelfThree.handleClick = (objName) => {
+ setCurLocNo(objName);
+ };
+ fetchShelfInfo(originLocNo);
setLoading(false);
}, 300)
return endThree;
- }, [props.data.uuid, props.locNo]);
+ }, [data]);
return (
<>
--
Gitblit v1.9.1