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 0fee9ce..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: 100000 + 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