From 351f38c184563db544e272a8536f3b24cc0d8362 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期五, 12 十二月 2025 14:38:21 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/tool.js     |   16 ++++++++++++----
 zy-acs-flow/src/map/MapPage.jsx |    5 +++--
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx
index 68e63c7..0ea4f77 100644
--- a/zy-acs-flow/src/map/MapPage.jsx
+++ b/zy-acs-flow/src/map/MapPage.jsx
@@ -175,7 +175,7 @@
             case MAP_MODE.AREA_MODE:
                 Tool.removeAgvGraphics();
 
-                Tool.loadAreas(curZone);
+                Tool.loadAreas(curZone, setCurSprite);
                 break
             default:
                 break
@@ -367,7 +367,8 @@
                                     },
                                     onFinish: () => {
                                         setAreaDrawing(false);
-                                    }
+                                    },
+                                    setCurSprite,
                                 });
                                 if (started) {
                                     setAreaDrawing(true);
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 1b0051f..d10ce0c 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -897,7 +897,7 @@
     draft.addChild(label);
 };
 
-export const loadAreas = (curZone) => {
+export const loadAreas = (curZone, setCurSprite) => {
     if (!mapContainer) return;
     clearAreas();
     fetchAreaList(curZone).then((areas) => {
@@ -908,7 +908,7 @@
             if (!start || !end || !name || !id) {
                 return;
             }
-            const graphics = createAreaGraphic({ name, start, end, color, id });
+            const graphics = createAreaGraphic({ name, start, end, color, id }, setCurSprite);
             if (graphics) {
                 mapContainer.addChild(graphics);
             }
@@ -927,7 +927,7 @@
     }
 };
 
-const createAreaGraphic = ({ name, start, end, color, id }) => {
+const createAreaGraphic = ({ name, start, end, color, id }, setCurSprite) => {
     if (!mapContainer) return null;
     const from = start || { x: 0, y: 0 };
     const to = end || { x: 0, y: 0 };
@@ -949,10 +949,14 @@
     draft.data = { ...(draft.data || {}), type: DEVICE_TYPE.AREA, name, color: areaColor, id };
     draft.eventMode = 'static';
     draft.cursor = 'pointer';
+    if (setCurSprite) {
+        draft.off('click');
+        draft.on('click', () => setCurSprite(draft));
+    }
     return draft;
 };
 
-export const startAreaDrawing = ({ promptText, onComplete, onFinish } = {}) => {
+export const startAreaDrawing = ({ promptText, onComplete, onFinish, setCurSprite } = {}) => {
     if (!mapContainer || !mapContainer.parent) {
         return false;
     }
@@ -1035,6 +1039,10 @@
         draft.data = { ...(draft.data || {}), type: DEVICE_TYPE.AREA, name: areaName, color: areaColor };
         draft.eventMode = 'static';
         draft.cursor = 'pointer';
+        if (setCurSprite) {
+            draft.off('click');
+            draft.on('click', () => setCurSprite(draft));
+        }
 
         if (onComplete) {
             onComplete({

--
Gitblit v1.9.1