diff --git a/code/frontend/src/components/LobsterRiver/index.js b/code/frontend/src/components/LobsterRiver/index.js index a617801..1fe1e2a 100644 --- a/code/frontend/src/components/LobsterRiver/index.js +++ b/code/frontend/src/components/LobsterRiver/index.js @@ -2,10 +2,11 @@ import React, { useState } from 'react'; const API_BASE = 'http://localhost:8000/api'; -function LobsterRiver({ agents, onRefresh }) { +function LobsterRiver({ agents, onRefresh, onAgentToRiver, onAgentFromRiver }) { const [isOverRiver, setIsOverRiver] = useState(false); const [riverAgents, setRiverAgents] = useState([]); const [hoveredAgent, setHoveredAgent] = useState(null); + const [showHint, setShowHint] = useState(false); // 拖拽进入河水 const handleDragOver = (e) => { @@ -39,6 +40,12 @@ function LobsterRiver({ agents, onRefresh }) { // 添加到河中 if (!riverAgents.find(a => a.id === agent.id)) { setRiverAgents([...riverAgents, agent]); + + // 通知父组件:龙虾已入河 + if (onAgentToRiver) { + onAgentToRiver(parseInt(agentId)); + } + alert(`🦐 ${agentName} 已放归河水中!🌊`); } @@ -58,18 +65,33 @@ function LobsterRiver({ agents, onRefresh }) { // 从河中移除 setRiverAgents(riverAgents.filter(a => a.id !== agent.id)); + + // 通知父组件:龙虾已出河 + if (onAgentFromRiver) { + onAgentFromRiver(agent.id); + } + }; + + // 鼠标移入河水区域 + const handleMouseEnter = () => { + setShowHint(true); + }; + + // 鼠标离开河水区域 + const handleMouseLeave = () => { + setShowHint(false); }; return (
- {isOverRiver ? '🦐 松开手,放虾归海!' : '拖拽龙虾到河水中'} -
-将左侧的龙虾拖到这里,放虾归海
+ {/* 提示文字(鼠标悬停时显示) */} + {showHint && riverAgents.length === 0 && ( +💡 使用提示
+🖱️ 拖动展示方块到水池中 '放虾'
+🦐 拖动虾到池子 '用虾'
+