#
luxiaotao1123
2024-03-29 2fb2947a3b2a487d7205e106dd6bdad37493d43f
#
2个文件已修改
73 ■■■■ 已修改文件
zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}
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);
            }
        }
        fetchShelfInfo(props.locNo);
            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)
        // 3d
        setLoading(true);
        endThree();
                        // 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)
                    }
                });
            }
        }
        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',