wangjuncheng
2025-05-15 f16045cde17854377084335c478e3cae0d08d6b8
src/api/trApi.js
@@ -1,20 +1,30 @@
import axios from "./requestTR.js";
import instance from "./requestTR.js";
// 获取雨量数据
export async function getData() {
// 获取区域数据
export async function getRegionData(params = {}) {
  try {
    const response = await axios.get("/region/selectPage", {
    const defaultParams = {
      id: undefined,
      name: undefined,
      type: undefined,
      pageNum: 1,
      pageSize: 100000,
    };
    const finalParams = { ...defaultParams, ...params };
    const response = await instance.get("/region/selectPage", {
      params: finalParams,
    });
    // console.log("Response:", response);
    return response.data;
  } catch (error) {
    console.error("Error fetching data:", error);
    throw error;
  }
}
// 获取方案列表
export async function getSimData() {
  try {
    const res = await axios.get("/simu/selectPage");
    const res = await instance.get("/simu/selectPage");
    return res.data; // 返回实际数据(通常 res.data 才是接口返回的内容)
  } catch (error) {
    console.error("Error fetching data:", error);
@@ -25,7 +35,7 @@
// 新建仿真方案
export async function createSimData(simData) {
  try {
    const res = await axios.post("/simu/insert", simData, {
    const res = await instance.post("/simu/insert", simData, {
      headers: {
        "Content-Type": "application/json",
      },
@@ -40,10 +50,59 @@
// 删除仿真方案
export async function deleteSimData(ids) {
  try {
    const res = await axios.delete(`/simu/deleteByIds?ids=${ids}`);
    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;
  }
}
}
// **************************************************************************************************************
// 解析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, // 原始时间数组
      };
  } catch (error) {
      console.error("解析水模拟数据时出错:", error);
      return null;
  }
}
// 通过接口去请求json,将请求的json解析获取泥石流参数
export async function fetchWaterSimulationData() {
  try {
    const response = await fetch("/simu/20250515111549/layer.json"); // 发起请求
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    const jsonData = await response.json(); // 解析 JSON 数据
    return parseWaterSimulationData(jsonData); // 调用解析函数
  } catch (error) {
    console.error("请求或解析数据时出错:", error);
    return null;
  }
}
// **************************************************************************************************************