From 8803e9630cb322c83953e000251daac7de48f604 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 21 三月 2024 16:56:26 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/pages/map/player.js |   22 +++++++++++++++-------
 zy-asrs-flow/src/pages/map/index.jsx |   17 +++++++++++++----
 2 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/zy-asrs-flow/src/pages/map/index.jsx b/zy-asrs-flow/src/pages/map/index.jsx
index de233f9..273a85e 100644
--- a/zy-asrs-flow/src/pages/map/index.jsx
+++ b/zy-asrs-flow/src/pages/map/index.jsx
@@ -145,9 +145,9 @@
                 player.hideGridlines();
                 player.hideStarryBackground();
 
-                player.activateMapEvent(null);
                 setDeviceVisible(false);
-             
+                player.activateMapEvent(null);
+
                 mapContainer.children.forEach(child => {
                     Utils.viewFeature(child, setCurSPrite);
                 })
@@ -156,7 +156,11 @@
                 player.showGridlines();
                 player.hideStarryBackground();
 
-                player.activateMapEvent(Utils.MapEvent.SELECTION_BOX, model);
+                player.activateMapEvent(Utils.MapEvent.SELECTION_BOX, (selectedSprites, scale, resetFn) => {
+                    Utils.spriteListBeMovable(selectedSprites, scale, () => {
+                        resetFn();
+                    });
+                });
 
                 mapContainer.children.forEach(child => {
                     Utils.beMovable(child, setDidClickSprite);
@@ -166,8 +170,13 @@
                 player.showGridlines();
                 player.showStarryBackground();
 
-                player.activateMapEvent(Utils.MapEvent.SELECTION_BOX, model);
                 setDeviceVisible(false);
+                player.activateMapEvent(Utils.MapEvent.SELECTION_BOX, (selectedSprites, scale, resetFn) => {
+                    console.log(selectedSprites);
+                    if (selectedSprites.length > 0) {
+                        setDrawerVisible(true);
+                    }
+                });
 
                 mapContainer.children.forEach(child => {
                     Utils.beSettings(child, setSpriteBySettings);
diff --git a/zy-asrs-flow/src/pages/map/player.js b/zy-asrs-flow/src/pages/map/player.js
index 21b6729..2d19b38 100644
--- a/zy-asrs-flow/src/pages/map/player.js
+++ b/zy-asrs-flow/src/pages/map/player.js
@@ -18,14 +18,13 @@
         this.mapContainer = generatePixiContainer('mapContainer');
         this.app.stage.addChild(this.mapContainer);
 
-        // this.activateMapEvent(null);
         this.activateMapScale();
         this.activateMapPan();
         this.showCoordinates();
         this.getStartedTicker();
     }
 
-    activateMapEvent = (eventType, mapModel) => {
+    activateMapEvent = (eventType, fn) => {
         if (this.mapEvent) {
             this.mapContainer.parent.off('mousedown');
             this.mapEvent = null;
@@ -39,7 +38,7 @@
             if (eventType && event.button === 0) {
                 switch (eventType) {
                     case Utils.MapEvent.SELECTION_BOX:
-                        this.mapSelect(event, mapModel);
+                        this.mapSelect(event, fn);
                         break
                     default:
                         break
@@ -49,7 +48,7 @@
         this.mapContainer.parent.on('mousedown', this.mapEvent)
     }
 
-    mapSelect = (event, mapModel) => {
+    mapSelect = (event, fn) => {
         let isSelecting = false;
         if (!this.selectionBox) {
             this.selectionBox = new PIXI.Graphics();
@@ -102,10 +101,19 @@
                 isSelecting = false;
                 this.selectionBox.clear();
 
+                // after selectbox complete
+                if (fn) {
+                    fn(this.selectedSprites, this.scale, () => {
+                        // trigger at end of selectionBox when fn happen mouseup
+                        this.selectedSprites = [];
+                        this.activateMapEvent(Utils.MapEvent.SELECTION_BOX, fn);
+                    });
+                }
+
                 // sprites batch move
-                Utils.spriteListBeMovable(this.selectedSprites, this.scale, () => {
-                    this.activateMapEvent(Utils.MapEvent.SELECTION_BOX, mapModel);
-                });
+                // Utils.spriteListBeMovable(this.selectedSprites, this.scale, () => {
+                //     this.activateMapEvent(Utils.MapEvent.SELECTION_BOX, fn);
+                // });
 
             }
 

--
Gitblit v1.9.1