From 0e6d97436f58866063736781061c22b1cc4f5e6e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 18 十月 2024 17:11:05 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/tool.js |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 503d6b8..9bb38d2 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -408,6 +408,17 @@
     effectHalfCircle.position.set(sprite.x, sprite.y);
 }
 
+export const multipleSelectEnhancer = (selectedSprites, setCurSprite, setBatchSprites) => {
+    selectedSprites = selectedSprites.filter(sprite => sprite.data?.type);
+
+    if (selectedSprites.length === 1) {
+        unMarkSprite(selectedSprites[0]);
+        setCurSprite(selectedSprites[0]);
+    } else {
+        setBatchSprites(selectedSprites);
+    }
+}
+
 export const rotationToNum = (rotation) => {
     let res = rotation * 180 / Math.PI;
     if (res < 0) {
@@ -499,20 +510,22 @@
 export const generateDynamicGraphic = (curZone, data, setCurSprite) => {
     // console.log("ws", curZone, data);
 
-    for (const agvVo of data.agvVos) {
-        showAgvSprite(curZone, agvVo, setCurSprite)
+    for (const agv of data.agvVos) {
+        showAgvSprite(curZone, agv, setCurSprite)
     }
 
 }
 
-const showAgvSprite = (curZone, agvVo, setCurSprite) => {
-    const { agvNo, code, direction, backpack, battery, ...rest } = agvVo;
+const showAgvSprite = (curZone, agv, setCurSprite) => {
+    const { agvNo, code, direction, backpack, battery, ...rest } = agv;
     if (!code) { return }
     const codeSprite = querySprite(DEVICE_TYPE.POINT, code);
     if (!codeSprite) { return }
     let agvSprite = querySprite(DEVICE_TYPE.AGV, agvNo);
     if (!agvSprite) {
-        agvSprite = generateSprite(DEVICE_TYPE.AGV, generateAgvSpriteTexture(getAgvStatusMode(backpack, battery)));
+        agvSprite = generateSprite(DEVICE_TYPE.AGV,
+            generateAgvSpriteTexture(getAgvStatusMode(backpack.filter(item => item.loaded === true).length, battery))
+        );
         initSprite(agvSprite, DEVICE_TYPE.AGV);
         agvSprite.data.no = agvNo;
         agvSprite.position.set(codeSprite.position.x, codeSprite.position.y);

--
Gitblit v1.9.1