From 280e039a5ba85fd077acac488efe3ed08ce85f94 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 08 三月 2024 15:57:59 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/pages/map/index.jsx | 29 ++++++++++++++++++++++-------
1 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/zy-asrs-flow/src/pages/map/index.jsx b/zy-asrs-flow/src/pages/map/index.jsx
index 0a16c21..00e3809 100644
--- a/zy-asrs-flow/src/pages/map/index.jsx
+++ b/zy-asrs-flow/src/pages/map/index.jsx
@@ -71,6 +71,7 @@
const [mapContainer, setMapContainer] = React.useState(null);
const [didClickSprite, setDidClickSprite] = React.useState(false);
const [spriteBySettings, setSpriteBySettings] = React.useState(null);
+ const prevSpriteBySettingsRef = React.useRef();
// init func
React.useEffect(() => {
@@ -131,6 +132,7 @@
player.activateMapEvent(Utils.MapEvent.SELECTION_BOX);
Utils.removeSelectedEffect();
+ setSpriteBySettings(null);
setSettingsVisible(false);
mapContainer.children.forEach(child => {
@@ -156,12 +158,12 @@
}, [model]);
// Add New Device
- const onDrop = (sprite, x, y) => {
+ const onDrop = (sprite, type, x, y) => {
const { mapX, mapY } = Utils.getRealPosition(x, y, mapContainer);
sprite.x = mapX;
sprite.y = mapY;
- Utils.initSprite(sprite);
+ Utils.initSprite(sprite, type);
mapContainer.addChild(sprite);
Utils.beMovable(sprite, setDidClickSprite);
};
@@ -171,9 +173,14 @@
player.updateDidClickSprite(didClickSprite);
}, [didClickSprite])
+ // watch spriteBySettings
React.useEffect(() => {
if (!mapContainer) {
return;
+ }
+ prevSpriteBySettingsRef.current = spriteBySettings;
+ if (spriteBySettings && prevSpriteBySettings !== spriteBySettings) {
+ Utils.removeSelectedEffect();
}
if (spriteBySettings) {
Utils.showSelectedEffect(spriteBySettings)
@@ -182,8 +189,10 @@
Utils.removeSelectedEffect();
}
}, [spriteBySettings])
+ const prevSpriteBySettings = prevSpriteBySettingsRef.current;
const settingsFinish = () => {
+ setSettingsVisible(false);
setSpriteBySettings(null);
}
@@ -235,19 +244,24 @@
<FloatButton.Group
hidden={model === MapModel.OBSERVER_MODEL}
- // trigger="hover"
style={{
- right: 35,
- bottom: 35
+ left: 35,
+ bottom: window.innerHeight / 2
}}
icon={<AppstoreAddOutlined />}
>
<FloatButton
hidden={model === MapModel.OBSERVER_MODEL}
+ type={deviceVisible ? 'primary' : 'default'}
tooltip={<div><FormattedMessage id='map.device.add' defaultMessage='娣诲姞璁惧' /></div>}
icon={<FileAddOutlined />}
onClick={() => {
- setDeviceVisible(true);
+ if (deviceVisible) {
+ setDeviceVisible(false);
+ } else {
+ setDeviceVisible(true);
+ setModel(MapModel.MOVABLE_MODEL);
+ }
}}
/>
<FloatButton
@@ -275,12 +289,13 @@
<Settings
open={settingsVisible}
+ curSprite={spriteBySettings}
onCancel={() => {
setSettingsVisible(false);
setSpriteBySettings(null);
}}
refCurr={mapRef.current}
- onDrop={settingsFinish}
+ onSubmit={settingsFinish}
/>
</>
)
--
Gitblit v1.9.1