#
luxiaotao1123
2024-04-07 75ce35a2d6cd026a091805a34c6b7ce8a38f943a
zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
@@ -59,28 +59,46 @@
const fetchShelfInfo = async (locNo) => {
    const res = await Http.doGet('/api/map/shelf/info', { locNo: locNo });
    if (res?.data && shelfThree) {
        shelfThree.generateMesh((addObject) => {
        shelfThree.generateMesh((loader, addObject) => {
            const promises = [];
            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',
                const { lev } = Utils.parseLocNo(item.locNo);
                promises.push(new Promise((resolve) => {
                    loader.load('model/04.fbx', (mesh) => {
                        mesh.position.set(0, 20 + 100 * (lev - 1), 0);
                        mesh.scale.set(5, 5, 5);
                        mesh.name = item.locNo;
                        mesh.traverse(function (child) {
                            if (child.isMesh) {
                                if (child.name === '不规则') {
                                    // child.visible = false;
                                    child.material.color.set(0xE8B67E);
                                }
                                if (child.name === '货架') {
                                    // child.visible = false;
                                    child.material.color.set(0x4680BF);
                                }
                                if (child.name === '托盘') {
                                    // child.visible = false;
                                    child.material.color.set(0xBEBEBE);
                                }
                                child.name = item.locNo
                                child.castShadow = true;
                                child.receiveShadow = true;
                            }
                        });
                        addObject(mesh);
                        resolve();
                    })
                }));
                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);
        });
            Promise.all(promises).then(() => {
                shelfThree.setNewSelectedMesh(locNo);
            }).catch(error => {
                console.error(error);
            });
        })
    }
}