From c4ffccd2536be747500e6ac7800200284dc7220f Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 14 十月 2024 10:19:02 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/MapPage.jsx | 67 +++++++++++++++++++++++++++++---- 1 files changed, 59 insertions(+), 8 deletions(-) diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx index 37d3550..9d35888 100644 --- a/zy-acs-flow/src/map/MapPage.jsx +++ b/zy-acs-flow/src/map/MapPage.jsx @@ -9,7 +9,7 @@ SpeedDial, SpeedDialAction, useTheme, - Snackbar, + Fab, } from '@mui/material'; import { MoreVert as MoreVertIcon, @@ -25,9 +25,12 @@ 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"; +import { FitScreen } from '@mui/icons-material'; + let player; let websocket; @@ -48,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'); @@ -120,8 +125,10 @@ setDeviceVisible(false); setSettingsVisible(false); + setBatchSelectionVisible(false); setSpriteSettings(null); + setBatchSprites([]); switch (mode) { case MapMode.OBSERVER_MODE: @@ -129,7 +136,7 @@ player.hideStarryBackground(); player.activateMapMultiSelect((selectedSprites, restartFn) => { - console.log(selectedSprites); + setBatchSprites(selectedSprites); }); break @@ -152,7 +159,7 @@ player.showStarryBackground(); // 0x2f68ac player.activateMapMultiSelect((selectedSprites, restartFn) => { - console.log(selectedSprites); + setBatchSprites(selectedSprites); }); mapContainer.children.forEach(child => { @@ -198,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: '澶嶅埗' }, @@ -246,12 +266,12 @@ <Button variant="contained" color="primary" - sx={{ mr: 1 }} + sx={{ mr: 2 }} > 鍋滄RCS杩愯浆 </Button> - <Button variant="contained" color="secondary"> - 妯℃嫙AGV杩愯 + <Button variant="contained" color="primary"> + 绯荤粺鎶ュ憡 </Button> </> )} @@ -352,7 +372,7 @@ }} /> </Box> - <SpeedDial + {/* <SpeedDial ariaLabel="SpeedDial 绀轰緥" sx={{ position: 'absolute', bottom: 16, right: 16 }} icon={<MoreVertIcon />} @@ -364,7 +384,30 @@ tooltipTitle={action.name} /> ))} - </SpeedDial> + </SpeedDial> */} + + <Box + sx={{ + position: 'absolute', + left: 35, + bottom: 30, + display: 'flex', + flexDirection: 'column', + gap: 1 + }} + > + <Fab + variant="extended" + color="primary" + size="medium" + onClick={() => { + player.adaptScreen(); + }} + > + <FitScreen /> + {translate('page.map.action.adapt')} + </Fab> + </Box> </Box> <Insight @@ -395,6 +438,14 @@ width={570} /> + <Batch + open={batchSelectionVisible} + onCancel={() => { + setBatchSelectionVisible(false); + }} + width={570} + /> + </Box> ); } -- Gitblit v1.9.1