From 4efd8e4d44d06fd7aa52ae1e9f6633dd158ff4e5 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 19 十月 2024 17:06:15 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/tool.js | 68 ++++++++++++++++++++++++---------- 1 files changed, 48 insertions(+), 20 deletions(-) diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js index d750603..e47361a 100644 --- a/zy-acs-flow/src/map/tool.js +++ b/zy-acs-flow/src/map/tool.js @@ -7,7 +7,10 @@ DEVICE_SPRITE_TINT, DEVICE_SELECTED_EFFECT_PADDING, DEVICE_SELECTED_EFFECT_COLOR, + POINT_ROUTE_DIRECTION, } from './constants'; +import { getRouteList } from './http'; +import PointRoute from "./PointRoute"; import shelf from '/map/shelf.svg'; import charge from '/map/charge.svg'; @@ -224,6 +227,8 @@ } export const beInsight = (sprite, setCurSprite) => { + if (!sprite?.data?.type) { return } + sprite.off('pointerup'); sprite.off('pointermove'); sprite.off('pointerdown'); @@ -238,7 +243,6 @@ sprite.on('pointerover', onSpriteMouseOver); sprite.on('pointermove', onSpriteMouseMove); sprite.on('pointerout', onSpriteMouseOut); - } export const beMovable = (sprite) => { @@ -281,6 +285,8 @@ } export const beSettings = (sprite, setSpriteSettings) => { + if (!sprite?.data?.type) { return } + sprite.off('pointerup'); sprite.off('pointermove'); sprite.off('pointerdown'); @@ -295,34 +301,28 @@ sprite.on('pointerover', onSpriteMouseOver); sprite.on('pointermove', onSpriteMouseMove); sprite.on('pointerout', onSpriteMouseOut); - } const createSpriteTooltip = (sprite) => { const style = new PIXI.TextStyle({ - fontFamily: 'Microsoft YaHei', - fontSize: 16, - fill: '#ffffff', - stroke: '#4a1850', - strokeThickness: 2, - dropShadow: true, - dropShadowColor: '#000000', - dropShadowBlur: 4, - dropShadowAngle: Math.PI / 6, - dropShadowDistance: 6, + fontFamily: 'Roboto', + fontSize: 12, + fill: themeMode === 'light' ? '#000' : '#eee', }); - - const text = new PIXI.Text(`缂栧彿: ${sprite.data.no}`, style); - + const text = new PIXI.Text(`${sprite.data?.type} ${sprite.data?.no}`, style); const background = new PIXI.Graphics(); - background.beginFill(0x000000, 0.7); - background.drawRoundedRect(0, 0, text.width + 20, text.height + 20, 10); + // shadow + background.beginFill(themeMode === 'light' ? '#000' : '#eee', 0.1); + background.drawRoundedRect(4, 4, text.width + 6, text.height + 6, 4); + background.endFill(); + // background + background.beginFill(themeMode === 'light' ? '#fff' : '#333', 1); + background.drawRoundedRect(0, 0, text.width + 8, text.height + 8, 4); background.endFill(); - text.x = 10; - text.y = 10; + text.x = 5; + text.y = 3; background.addChild(text); - tooltip = new PIXI.Container(); tooltip.addChild(background); return tooltip; @@ -470,6 +470,34 @@ effectCircle.position.set(selectedSprite.x, selectedSprite.y); }; +export const showRoutes = (curZone, setShowRoutes) => { + setShowRoutes(true); + getRouteList(curZone, (routeList) => { + routeList.forEach(route => { + const startPoint = querySprite(DEVICE_TYPE.POINT, route.startCodeStr); + const endPoint = querySprite(DEVICE_TYPE.POINT, route.endCodeStr); + const pointRoute = new PointRoute(POINT_ROUTE_DIRECTION[route.direction]); + pointRoute.setPoint(startPoint, endPoint); + pointRoute.clear(); + pointRoute.lineStyle(10, 0x2d3436); + pointRoute.moveTo(startPoint.position.x, startPoint.position.y); + pointRoute.lineTo(endPoint.position.x, endPoint.position.y); + pointRoute.alpha = 1; + mapContainer.addChild(pointRoute); + }) + }) +}; + +export const hideRoutes = (curZone, setShowRoutes) => { + setShowRoutes(false); + for (let i = mapContainer.children.length - 1; i >= 0; i--) { + const child = mapContainer.children[i]; + if (child?.type === DEVICE_TYPE.ROUTE) { + mapContainer.removeChild(child); + } + } +} + export const multipleSelectEnhancer = (selectedSprites, setCurSprite, setBatchSprites) => { selectedSprites = selectedSprites.filter(sprite => sprite.data?.type); -- Gitblit v1.9.1