guonan
2025-06-26 1119a7837323e052d3e6256cddd3283d919bd959
提交
已修改4个文件
58 ■■■■ 文件已修改
src/api/hpApi.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/menu/TimeLine.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/simulation.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Home.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/hpApi.js
@@ -235,11 +235,17 @@
}
// 查询孙胡沟避险场所
export async function getSafePoint() {
export async function getSafePoint(data) {
  const response = await axios.get("/hp/safeHavenLocation/getDataSelect", {
    params: {
      divisionId: "110116110218"
      divisionId: data
    }
  });
  return response.data;
}
// 查询北京市
export async function getAllCode() {
  const response = await axios.get("/hp/district/getAll");
  return response.data;
}
src/components/menu/TimeLine.vue
@@ -899,18 +899,16 @@
async function initializeSimulationData(force = false) {
  try {
    const schemeInfo = selectedScheme.value;
    serviceInfo = schemeInfo.serviceName;
    // 如果不是 type == 2 且非强制执行,则跳过
    if (schemeInfo.type !== 2 && !force) {
    if (schemeInfo.type == 2) {
      speedShow.value = false;
      jsonFetch.value = layerDate.value;
    } else {
      getRainfallData();
      speedShow.value = true;
      jsonFetch.value = null;
      return;
    }
    speedShow.value = false;
    jsonFetch.value = layerDate.value;
    serviceInfo = schemeInfo.serviceName;
    // console.log('获取到的 serviceName:', serviceInfo);
@@ -977,7 +975,6 @@
    shouldAutoPlay.value = false;
  }
});
// 根据返回数据的个数去渲染时间轴
function updateTimelineRange() {
src/store/simulation.js
@@ -2,6 +2,9 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useSimStore = defineStore('simulation', () => {
    // 北京市所有村的code
    const townCodeAll = ref([])
    // 实时模拟最新的layer
    const layerDate = ref("")
    // 帧数
    const frameNum = ref(0)
src/views/Home.vue
@@ -58,7 +58,7 @@
// import ResultAssess from "@/components/monifangzhen/ResultAssess.vue";
// import DangerAssess from "@/components/monifangzhen/DangerAssess.vue";
import { showDeviceDetail } from "@/store";
import { setupTokenRefresh, getDangerPoint } from "@/api/hpApi.js";
import { setupTokenRefresh, getDangerPoint, getAllCode } from "@/api/hpApi.js";
import { convertToWKT } from "@/utils/wktUtils";
import { getDeviceInfoSHG, getSafePoint } from "@/api/hpApi";
@@ -100,7 +100,37 @@
// 计算属性
const showDetail = computed(() => showDeviceDetail.value);
function extractAllChildrenInfoUnique(dataArray) {
  const map = new Map();
  function traverse(nodes) {
    if (!Array.isArray(nodes)) return;
    for (const node of nodes) {
      const key = node.code;
      // 检查是否是最后一层(没有子节点或子节点为空数组)
      if (!node.children || node.children.length === 0) {
        if (key && !map.has(key)) {
          map.set(key, { name: node.nameChn, code: key });
        }
      } else {
        // 如果有子节点,继续递归遍历
        traverse(node.children);
      }
    }
  }
  traverse(dataArray);
  return Array.from(map.values());
}
onMounted(async () => {
  getAllCode().then((res) => {
    // 北京市所有村以及街道code
    simStore.townCodeAll = extractAllChildrenInfoUnique(res.data[0].children);
    console.log(simStore.townCodeAll,'aaaaaaaaa')
  });
  setupTokenRefresh(); // 获取宏图token
  // getSimData(); //测试tr后端
  // 获取隐患点列表(因为中科软后端接口获取加载时间较长)