From 29f7f570eeade36578ff513bf00c86f216cf5fc6 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 16 三月 2024 13:40:02 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/pages/map/drawer/index.jsx |    4 +++-
 zy-asrs-flow/src/pages/map/index.jsx        |   32 +++++++++++++++++++-------------
 2 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/zy-asrs-flow/src/pages/map/drawer/index.jsx b/zy-asrs-flow/src/pages/map/drawer/index.jsx
index 66c9a25..824e54a 100644
--- a/zy-asrs-flow/src/pages/map/drawer/index.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/index.jsx
@@ -39,7 +39,9 @@
                         </Button>
                     </Space>
                 }
-            />
+            >
+                {props.curSprite?.data?.uuid}
+            </Drawer>
         </>
     )
 }
diff --git a/zy-asrs-flow/src/pages/map/index.jsx b/zy-asrs-flow/src/pages/map/index.jsx
index 7933169..986dc96 100644
--- a/zy-asrs-flow/src/pages/map/index.jsx
+++ b/zy-asrs-flow/src/pages/map/index.jsx
@@ -66,7 +66,7 @@
     const mapRef = React.useRef();
     const contentRef = React.useRef();
 
-    const [model, setModel] = React.useState(() => MapModel.OBSERVER_MODEL);
+    const [model, setModel] = React.useState(null);
     const [deviceVisible, setDeviceVisible] = React.useState(false);
     const [settingsVisible, setSettingsVisible] = React.useState(false);
     const [windowSize, setWindowSize] = React.useState({
@@ -78,9 +78,10 @@
     const [didClickSprite, setDidClickSprite] = React.useState(false);
     const [spriteBySettings, setSpriteBySettings] = React.useState(null);
     const prevSpriteBySettingsRef = React.useRef();
-    const [curSprite, setCurSPrite] = React.useState(null);
     const [drawerVisible, setDrawerVisible] = React.useState(false);
     const [dataFetched, setDataFetched] = React.useState(false);
+    const [curSprite, setCurSPrite] = React.useState(null);
+    const prevCurSpriteRef = React.useRef();
 
     // init func
     React.useEffect(async () => {
@@ -97,9 +98,9 @@
             });
         };
         window.addEventListener('resize', handleResize);
-
         await Utils.fetchMapData(intl);
         setDataFetched(true);
+        setModel(MapModel.OBSERVER_MODEL)
         setTimeout(() => {
             player.adaptScreen();
         }, 200)
@@ -121,12 +122,13 @@
 
     // model
     React.useEffect(() => {
-        if (!mapContainer) {
+        if (!mapContainer && !dataFetched) {
             return;
         }
+ 
         switch (model) {
             case MapModel.OBSERVER_MODEL:
-
+               
                 player.hideGridlines();
                 player.hideStarryBackground();
 
@@ -135,14 +137,7 @@
                 Utils.removeSelectedEffect();
                 setDeviceVisible(false);
                 setSettingsVisible(false);
-
-                mapContainer.children.forEach(child => {
-                    child.off('pointerup');
-                    child.off('pointermove');
-                    child.off('pointerdown');
-                    child.off('click');
-                })
-
+              
                 mapContainer.children.forEach(child => {
                     Utils.viewFeature(child, setCurSPrite);
                 })
@@ -223,12 +218,22 @@
     }
 
     React.useEffect(() => {
+        prevCurSpriteRef.current = curSprite;
+
+        if (curSprite && prevCurSprite !== curSprite) {
+            Utils.removeSelectedEffect();
+        }
+
         if (curSprite) {
             if (model === MapModel.OBSERVER_MODEL) {
+                Utils.showSelectedEffect(curSprite)
                 setDrawerVisible(true)
             }
+        } else {
+            Utils.removeSelectedEffect();
         }
     }, [curSprite]);
+    const prevCurSprite = prevCurSpriteRef.current;
 
     return (
         <>
@@ -362,6 +367,7 @@
 
             <MapDrawer
                 open={drawerVisible}
+                curSprite={curSprite}
                 refCurr={mapRef.current}
                 onCancel={() => {
                     setCurSPrite(null);

--
Gitblit v1.9.1