#
luxiaotao1123
2024-10-14 c4ffccd2536be747500e6ac7800200284dc7220f
zy-acs-flow/src/map/MapPage.jsx
@@ -25,6 +25,7 @@
import Insight from "./insight";
import Device from "./Device";
import Settings from "./settings";
import Batch from "./batch";
import * as Http from './http';
import WebSocketClient from './websocket'
import ConfirmButton from "../page/components/ConfirmButton";
@@ -50,9 +51,11 @@
    const [insightVisible, setInsightVisible] = useState(false);
    const [deviceVisible, setDeviceVisible] = useState(false);
    const [settingsVisible, setSettingsVisible] = useState(false);
    const [batchSelectionVisible, setBatchSelectionVisible] = useState(false);
    const [spriteSettings, setSpriteSettings] = useState(null);
    const prevSpriteSettingsRef = useRef();
    const [batchSprites, setBatchSprites] = useState([]);
    const [curZone, setCurZone] = useState(() => {
        const storedValue = localStorage.getItem('curZone');
@@ -122,8 +125,10 @@
        setDeviceVisible(false);
        setSettingsVisible(false);
        setBatchSelectionVisible(false);
        setSpriteSettings(null);
        setBatchSprites([]);
        switch (mode) {
            case MapMode.OBSERVER_MODE:
@@ -131,7 +136,7 @@
                player.hideStarryBackground();
                player.activateMapMultiSelect((selectedSprites, restartFn) => {
                    console.log(selectedSprites);
                    setBatchSprites(selectedSprites);
                });
                break
@@ -154,7 +159,7 @@
                player.showStarryBackground(); // 0x2f68ac
                player.activateMapMultiSelect((selectedSprites, restartFn) => {
                    console.log(selectedSprites);
                    setBatchSprites(selectedSprites);
                });
                mapContainer.children.forEach(child => {
@@ -200,6 +205,19 @@
        }
    }, [spriteSettings, mapContainer])
    const prevSpriteSettings = prevSpriteSettingsRef.current;
    // watch batchSprites
    React.useEffect(() => {
        if (!mapContainer) {
            return;
        }
        if (batchSprites?.length > 0) {
            setBatchSelectionVisible(true)
        } else {
            player.clearSelectedSprites();
            setBatchSelectionVisible(false)
        }
    }, [batchSprites])
    const actions = [
        { icon: <FileCopyIcon />, name: '复制' },
@@ -420,6 +438,14 @@
                width={570}
            />
            <Batch
                open={batchSelectionVisible}
                onCancel={() => {
                    setBatchSelectionVisible(false);
                }}
                width={570}
            />
        </Box>
    );
}