From ca74058a77d7c9000a485502a2b53fbef5807ef5 Mon Sep 17 00:00:00 2001
From: guonan <guonan201020@163.com>
Date: 星期四, 03 七月 2025 14:08:02 +0800
Subject: [PATCH] 历史回放

---
 src/api/trApi.js |  156 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 145 insertions(+), 11 deletions(-)

diff --git a/src/api/trApi.js b/src/api/trApi.js
index 9d7bd66..f826b82 100644
--- a/src/api/trApi.js
+++ b/src/api/trApi.js
@@ -4,15 +4,15 @@
 export async function getRegionData(params = {}) {
   try {
     const defaultParams = {
-      id: undefined,       
-      name: undefined,     
-      type: undefined,     
-      pageNum: 1,         
-      pageSize: 10         
+      id: undefined,
+      name: undefined,
+      type: undefined,
+      pageNum: 1,
+      pageSize: 100000,
     };
     const finalParams = { ...defaultParams, ...params };
-    const response = await instance.get('/region/selectPage', {
-      params: finalParams
+    const response = await instance.get("/region/selectPage", {
+      params: finalParams,
     });
     return response.data;
   } catch (error) {
@@ -24,8 +24,21 @@
 // 鑾峰彇鏂规鍒楄〃
 export async function getSimData() {
   try {
-    const res = await instance.get("/simu/selectPage");
-    return res.data; // 杩斿洖瀹為檯鏁版嵁锛堥�氬父 res.data 鎵嶆槸鎺ュ彛杩斿洖鐨勫唴瀹癸級
+    const res = await instance.get("/simu/selectPage", {
+      params: { pageSize: 100 },
+    });
+    return res.data;
+  } catch (error) {
+    console.error("Error fetching data:", error);
+    throw error; // 鎶涘嚭閿欒锛岃璋冪敤鏂瑰彲浠ユ崟鑾�
+  }
+}
+
+// 鏍规嵁鏂规id鑾峰彇鏂规鍒楄〃
+export async function getSimDataById(id) {
+  try {
+    const res = await instance.get(`/simu/selectPage?id=${id}`);
+    return res.data;
   } catch (error) {
     console.error("Error fetching data:", error);
     throw error; // 鎶涘嚭閿欒锛岃璋冪敤鏂瑰彲浠ユ崟鑾�
@@ -53,8 +66,129 @@
     const res = await instance.delete(`/simu/deleteByIds?ids=${ids}`);
     return res.data;
   } catch (error) {
-    console.error('Error deleting simulation data:', error);
+    console.error("Error deleting simulation data:", error);
     throw error;
   }
 }
-// 鑾峰彇
+
+// 寮�濮嬫ā鎷�
+export async function getSimStart(ids) {
+  try {
+    const res = await instance.get(`/simu/start?id=${ids}`);
+    return res.data;
+  } catch (error) {
+    console.error("Error deleting simulation data:", error);
+    throw error;
+  }
+}
+
+// 瀹炴椂妯℃嫙鐨勭粨鏋�
+export async function getSimresult(ids) {
+  try {
+    const res = await instance.get(`/simu/results?id=${ids}`);
+    return res.data;
+  } catch (error) {
+    console.error("Error deleting simulation data:", error);
+    throw error;
+  }
+}
+
+// 缁撴潫瀹炴椂妯℃嫙
+export async function stopSim(ids) {
+  try {
+    const res = await instance.get(`/simu/stop?id=${ids}`);
+    return res.data;
+  } catch (error) {
+    console.error("Error deleting simulation data:", error);
+    throw error;
+  }
+}
+// **************************************************************************************************************
+// 瑙f瀽json鑾峰彇娉ョ煶娴佸弬鏁�
+export function parseWaterSimulationData(jsonData) {
+  try {
+    const startTime = jsonData.duration.start; // 鐩存帴浣跨敤鍘熷鏃堕棿
+    const endTime = jsonData.duration.end; // 鐩存帴浣跨敤鍘熷鏃堕棿
+    const extension = jsonData.extension;
+    const terrainSizes = jsonData.terrain.size; // 鍒嗚鲸鐜�
+    const waterTimestamps = jsonData.waters.data.map((timestamp) => {
+      return timestamp; // 涓嶈繘琛屾椂闂存牸寮忓寲
+    });
+    return {
+      startTime: startTime, // 鍘熷鏃堕棿
+      endTime: endTime, // 鍘熷鏃堕棿
+      extension: {
+        maxHeight: extension.maxHeight,
+        minHeight: extension.minHeight,
+        maxX: extension.maxx,
+        maxY: extension.maxy,
+        minX: extension.minx,
+        minY: extension.miny,
+      },
+      terrainSizes: terrainSizes,
+      flowUrl: jsonData.flowUrl,
+      waterUrl: jsonData.waterUrl,
+      version: jsonData.version,
+      waterTimestamps: waterTimestamps,
+      watersMaxHeight: jsonData.waters.maxHeight,
+      watersMinHeight: jsonData.waters.minHeight,
+    };
+  } catch (error) {
+    console.error("瑙f瀽姘存ā鎷熸暟鎹椂鍑洪敊:", error);
+    return null;
+  }
+}
+
+// // 閫氳繃鎺ュ彛鍘昏姹俲son锛屽皢璇锋眰鐨刯son瑙f瀽鑾峰彇娉ョ煶娴佸弬鏁�
+// export async function fetchWaterSimulationData(serviceInfo) {
+//   try {
+//     const response = await fetch(`/simu/${serviceInfo}/layer.json`); // 鍙戣捣璇锋眰
+//     // const response = await fetch(`/simu/c2h1dc/layer.json`); // 鍙戣捣璇锋眰
+//     if (!response.ok) {
+//       throw new Error(`HTTP error! status: ${response.status}`);
+//     }
+//     const jsonData = await response.json(); // 瑙f瀽 JSON 鏁版嵁
+//     // console.log(jsonData, "jsonjsonjsonjson");
+//     return parseWaterSimulationData(jsonData); // 璋冪敤瑙f瀽鍑芥暟
+//   } catch (error) {
+//     console.error("璇锋眰鎴栬В鏋愭暟鎹椂鍑洪敊:", error);
+//     return null;
+//   }
+// }
+
+export async function fetchWaterSimulationData(serviceInfo, timestamp = null) {
+  try {
+    // 鏍规嵁鏄惁鎻愪緵鏃堕棿鎴虫潵鍐冲畾鏂囦欢鍚�
+    let fileName = timestamp ? timestamp : 'layer.json';
+    const url = `/simu/${serviceInfo}/${fileName}`;
+
+    const response = await fetch(url); // 鍙戣捣璇锋眰  
+
+    // console.log(url,'aaaaaaaaa')
+
+    if (!response.ok) {
+      throw new Error(`HTTP error! status: ${response.status}`);
+    }
+    const jsonData = await response.json(); // 瑙f瀽 JSON 鏁版嵁
+    return parseWaterSimulationData(jsonData); // 璋冪敤瑙f瀽鍑芥暟澶勭悊鏁版嵁
+  } catch (error) {
+    console.error("璇锋眰鎴栬В鏋愭暟鎹椂鍑洪敊:", error);
+    return null;
+  }
+}
+
+// 鑾峰彇姘翠綅姘存繁
+export async function getFlowRate(data) {
+  // console.log(data,'鍙戦�佺殑鏁版嵁锛�');
+
+  try {
+    const res = await instance.get("/simu/position", {
+      params: data
+    });
+    return res.data; // 杩斿洖瀹為檯鏁版嵁锛堥�氬父 res.data 鎵嶆槸鎺ュ彛杩斿洖鐨勫唴瀹癸級
+  } catch (error) {
+    console.error("Error fetching data:", error);
+    throw error; // 鎶涘嚭閿欒锛岃璋冪敤鏂瑰彲浠ユ崟鑾�
+  }
+}
+// **************************************************************************************************************

--
Gitblit v1.9.3