From dfc2d1e2bbbc01e68e0e7ee89f3a557db5841f93 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 19 十月 2024 13:29:40 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/MapPage.jsx | 95 ++++++++++++++--------------------------------- 1 files changed, 29 insertions(+), 66 deletions(-) diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx index 9fede93..59298e7 100644 --- a/zy-acs-flow/src/map/MapPage.jsx +++ b/zy-acs-flow/src/map/MapPage.jsx @@ -5,19 +5,9 @@ MenuItem, Button, Box, - SpeedDial, - SpeedDialAction, useTheme, Fab, } from '@mui/material'; -import { - MoreVert as MoreVertIcon, - Edit as EditIcon, - FileCopy as FileCopyIcon, - Save as SaveIcon, - Print as PrintIcon, - Share as ShareIcon, -} from '@mui/icons-material'; import { MAP_MODE } from "./constants"; import Player from './player'; import * as Tool from './tool'; @@ -56,8 +46,6 @@ const [curSprite, setCurSprite] = useState(null); const prevCurSpriteRef = useRef(); - const [spriteSettings, setSpriteSettings] = useState(null); - const prevSpriteSettingsRef = useRef(); const [batchSprites, setBatchSprites] = useState([]); const [curZone, setCurZone] = useState(() => { @@ -88,15 +76,14 @@ await Http.fetchMapData(); websocket.connect(); websocket.onMessage = (wsMsg) => { - Tool.generateDynamicGraphic(curZone, JSON.parse(wsMsg), () => { - setDataFetched(true); - setMode(MAP_MODE.OBSERVER_MODE); - }); + Tool.generateDynamicGraphic(curZone, JSON.parse(wsMsg), setCurSprite); } setTimeout(() => { - player.adaptScreen(); notify.info(translate('page.map.welcome')); + player.adaptScreen(); + setDataFetched(true); + setMode(MAP_MODE.OBSERVER_MODE); }, 200) } initialize(); @@ -113,6 +100,7 @@ player.destroy(); window.removeEventListener('resize', handleResize); Tool.patchRaLayout(''); + Tool.isF }; }, []) @@ -134,7 +122,6 @@ setBatchSelectionVisible(false); setCurSprite(null); - setSpriteSettings(null); setBatchSprites([]); switch (mode) { @@ -143,7 +130,7 @@ player.hideStarryBackground(); player.activateMapMultiSelect((selectedSprites, restartFn) => { - setBatchSprites(selectedSprites); + Tool.multipleSelectEnhancer(selectedSprites, setCurSprite, setBatchSprites); }); mapContainer.children.forEach(child => { @@ -169,11 +156,11 @@ // player.showStarryBackground(); // 0x2f68ac player.activateMapMultiSelect((selectedSprites, restartFn) => { - setBatchSprites(selectedSprites); + Tool.multipleSelectEnhancer(selectedSprites, setCurSprite, setBatchSprites); }); mapContainer.children.forEach(child => { - Tool.beSettings(child, setSpriteSettings); + Tool.beSettings(child, setCurSprite); }) break default: @@ -212,29 +199,15 @@ Tool.showSelectedEffect(curSprite) setInsightVisible(true) } + if (mode === MAP_MODE.SETTINGS_MODE) { + Tool.showSelectedEffect(curSprite) + setSettingsVisible(true) + } } else { Tool.removeSelectedEffect(); } }, [curSprite]); const prevCurSprite = prevCurSpriteRef.current; - - // watch spriteSettings - useEffect(() => { - if (!mapContainer) { - return; - } - prevSpriteSettingsRef.current = spriteSettings; - if (spriteSettings && prevSpriteSettings !== spriteSettings) { - Tool.removeSelectedEffect(); - } - if (spriteSettings) { - Tool.showSelectedEffect(spriteSettings) - setSettingsVisible(true); - } else { - Tool.removeSelectedEffect(); - } - }, [spriteSettings, mapContainer]) - const prevSpriteSettings = prevSpriteSettingsRef.current; // watch batchSprites React.useEffect(() => { @@ -248,14 +221,6 @@ setBatchSelectionVisible(false) } }, [batchSprites]) - - const actions = [ - { icon: <FileCopyIcon />, name: '澶嶅埗' }, - { icon: <SaveIcon />, name: '淇濆瓨' }, - { icon: <PrintIcon />, name: '鎵撳嵃' }, - { icon: <ShareIcon />, name: '鍒嗕韩' }, - { icon: <EditIcon />, name: '缂栬緫' }, - ]; return ( <Box @@ -287,8 +252,6 @@ curZone={curZone} curSprite={curSprite} setCurSprite={setCurSprite} - spriteSettings={spriteSettings} - setSpriteSettings={setSpriteSettings} /> <Box sx={{ flexGrow: 1 }} /> @@ -382,6 +345,20 @@ flexGrow: 1, // fill remaining of map space position: 'relative', backgroundColor: '#fff', + ...(mode === MAP_MODE.SETTINGS_MODE && { + animation: 'settingsPulse 1.5s infinite', + '@keyframes settingsPulse': { + '0%': { + boxShadow: `0 0 3px 1px ${theme.palette.primary.main.replace('rgb', 'rgba').replace(')', `, 0.1)`)}`, + }, + '50%': { + boxShadow: `0 0 8px 3px ${theme.palette.primary.main.replace('rgb', 'rgba').replace(')', `, 0.5)`)}`, + }, + '100%': { + boxShadow: `0 0 3px 1px ${theme.palette.primary.main.replace('rgb', 'rgba').replace(')', `, 0.1)`)}`, + }, + }, + }) }} > <Box @@ -402,20 +379,6 @@ height: '100%', }} /> </Box> - - {/* <SpeedDial - ariaLabel="SpeedDial 绀轰緥" - sx={{ position: 'absolute', bottom: 16, right: 16 }} - icon={<MoreVertIcon />} - > - {actions.map((action) => ( - <SpeedDialAction - key={action.name} - icon={action.icon} - tooltipTitle={action.name} - /> - ))} - </SpeedDial> */} <Box sx={{ @@ -463,11 +426,11 @@ <Settings open={settingsVisible} onCancel={() => { - setSpriteSettings(null); + setCurSprite(null); setSettingsVisible(false); }} - sprite={spriteSettings} - setSpriteSettings={setSpriteSettings} + sprite={curSprite} + setSpriteSettings={setCurSprite} width={570} /> -- Gitblit v1.9.1