diff --git a/src/app/OlMap/Controls/BaseLayers.tsx b/src/app/OlMap/Controls/BaseLayers.tsx index a9fd717..7f17bb1 100644 --- a/src/app/OlMap/Controls/BaseLayers.tsx +++ b/src/app/OlMap/Controls/BaseLayers.tsx @@ -179,7 +179,7 @@ const BaseLayers: React.FC = () => { }; return ( -
+
{ const isSaveDisabled = drawnFeatures.length === 0; return ( -
+
} diff --git a/src/app/OlMap/Controls/HistoryDataPanel.tsx b/src/app/OlMap/Controls/HistoryDataPanel.tsx index 31780af..ddb988d 100644 --- a/src/app/OlMap/Controls/HistoryDataPanel.tsx +++ b/src/app/OlMap/Controls/HistoryDataPanel.tsx @@ -12,7 +12,6 @@ import { Tabs, Tooltip, Typography, - Drawer, } from "@mui/material"; import { Refresh, ShowChart, TableChart } from "@mui/icons-material"; import { DataGrid, GridColDef } from "@mui/x-data-grid"; @@ -649,34 +648,38 @@ const SCADADataPanel: React.FC = ({ return ( <> {/* 主面板 */} - - + {/* Header */} = ({ {activeTab === "chart" ? renderChart() : renderTable()} - + ); }; diff --git a/src/app/OlMap/Controls/LayerControl.tsx b/src/app/OlMap/Controls/LayerControl.tsx index fd12c38..d89e598 100644 --- a/src/app/OlMap/Controls/LayerControl.tsx +++ b/src/app/OlMap/Controls/LayerControl.tsx @@ -24,8 +24,8 @@ const LayerControl: React.FC = () => { deckLayer, isContourLayerAvailable, isWaterflowLayerAvailable, + setShowWaterflowLayer, setShowContourLayer, - flowAnimation, } = data; const [layerItems, setLayerItems] = useState([]); @@ -142,7 +142,7 @@ const LayerControl: React.FC = () => { setShowContourLayer && setShowContourLayer(checked); } if (item.id === "waterflowLayer") { - if (flowAnimation) flowAnimation.current = checked; + setShowWaterflowLayer && setShowWaterflowLayer(checked); } } @@ -156,7 +156,7 @@ const LayerControl: React.FC = () => { } return ( -
+
{layerItems.map((item) => ( = ({ : 0; return ( -
+
{/* 头部 */}
diff --git a/src/app/OlMap/Controls/ScaleLine.tsx b/src/app/OlMap/Controls/ScaleLine.tsx index 0b9090a..24070cd 100644 --- a/src/app/OlMap/Controls/ScaleLine.tsx +++ b/src/app/OlMap/Controls/ScaleLine.tsx @@ -35,7 +35,7 @@ const Scale: React.FC = () => { }, [map]); return ( -
+
缩放: {zoomLevel.toFixed(1)}
坐标: {coordinates[0]}, {coordinates[1]} diff --git a/src/app/OlMap/Controls/StyleEditorPanel.tsx b/src/app/OlMap/Controls/StyleEditorPanel.tsx index cbdfa1f..40d2ce9 100644 --- a/src/app/OlMap/Controls/StyleEditorPanel.tsx +++ b/src/app/OlMap/Controls/StyleEditorPanel.tsx @@ -1436,7 +1436,7 @@ const StyleEditorPanel: React.FC = ({ return ( <> -
+
{/* 图层选择 */} 选择图层 diff --git a/src/app/OlMap/Controls/Toolbar.tsx b/src/app/OlMap/Controls/Toolbar.tsx index f36ad9c..a0354ec 100644 --- a/src/app/OlMap/Controls/Toolbar.tsx +++ b/src/app/OlMap/Controls/Toolbar.tsx @@ -7,6 +7,7 @@ import PaletteOutlinedIcon from "@mui/icons-material/PaletteOutlined"; import QueryStatsOutlinedIcon from "@mui/icons-material/QueryStatsOutlined"; import PropertyPanel from "./PropertyPanel"; // 引入属性面板组件 import DrawPanel from "./DrawPanel"; // 引入绘图面板组件 +import HistoryDataPanel from "./HistoryDataPanel"; // 引入绘图面板组件 import VectorSource from "ol/source/Vector"; import VectorLayer from "ol/layer/Vector"; @@ -39,6 +40,7 @@ const Toolbar: React.FC = ({ hiddenButtons, queryType }) => { const [showPropertyPanel, setShowPropertyPanel] = useState(false); const [showDrawPanel, setShowDrawPanel] = useState(false); const [showStyleEditor, setShowStyleEditor] = useState(false); + const [showHistoryPanel, setShowHistoryPanel] = useState(false); const [highlightLayer, setHighlightLayer] = useState | null>(null); @@ -240,7 +242,7 @@ const Toolbar: React.FC = ({ hiddenButtons, queryType }) => { setShowDrawPanel(false); break; case "history": - // 取消历史查询激活时的清理(目前不保留额外状态) + setShowHistoryPanel(false); break; } }; @@ -255,54 +257,18 @@ const Toolbar: React.FC = ({ hiddenButtons, queryType }) => { setShowDrawPanel(true); break; case "history": - // 激活历史查询后立即触发一次网络历史数据查询(结果暂时打印到控制台) - queryNetworkHistory(); + setShowHistoryPanel(true); + // 激活历史查询后:HistoryDataPanel 自行负责根据传入的 props 拉取数据。 break; } }; - // 查询管网历史数据的函数(激活时调用) - const queryNetworkHistory = async () => { - try { - // 由当前选中日期和 currentTime 构造查询时间(UTC ISO) - let dateObj: Date; - if (selectedDate instanceof Date) { - dateObj = new Date(selectedDate); - } else { - dateObj = new Date(selectedDate as any); - } - const minutes = Number(currentTime) || 0; - dateObj.setHours(Math.floor(minutes / 60), minutes % 60, 0, 0); - const querytime = dateObj.toISOString(); - - let url: string; - if (queryType === "scheme") { - url = `${backendUrl}/queryschemesimulationrecordsbytime/?scheme_name=${schemeName}&querytime=${querytime}`; - } else { - url = `${backendUrl}/querysimulationrecordsbytime/?querytime=${querytime}`; - } - - const response = await fetch(url); - if (!response.ok) { - console.error("查询管网历史数据失败:", response.statusText); - return; - } - const result = await response.json(); - // TODO: 根据需要把结果展示到面板或状态中,目前先打印 - console.log("管网历史数据:", result); - // 简单提示用户已查询(可改为更友好的 UI) - // eslint-disable-next-line no-alert - alert("已查询管网历史数据(请查看控制台或后续面板展示)。"); - } catch (error) { - console.error("查询管网历史数据出错:", error); - } - }; - // 关闭所有面板(除了样式编辑器) const closeAllPanelsExceptStyle = () => { setShowPropertyPanel(false); setHighlightFeature(null); setShowDrawPanel(false); + setShowHistoryPanel(false); // 样式编辑器保持其当前状态,不自动关闭 }; const [computedProperties, setComputedProperties] = useState< @@ -686,6 +652,7 @@ const Toolbar: React.FC = ({ hiddenButtons, queryType }) => { setLayerStyleStates={setLayerStyleStates} /> )} + {showHistoryPanel && } {/* 图例显示 */} {activeLegendConfigs.length > 0 && ( diff --git a/src/app/OlMap/Controls/Zoom.tsx b/src/app/OlMap/Controls/Zoom.tsx index 98129a0..7059a7d 100644 --- a/src/app/OlMap/Controls/Zoom.tsx +++ b/src/app/OlMap/Controls/Zoom.tsx @@ -30,7 +30,7 @@ const Zoom: React.FC = () => { }; return ( -
+