From 112fe00d846c65847b0a1e9570ab19dfcf8ed784 Mon Sep 17 00:00:00 2001 From: guonan <guonan201020@163.com> Date: 星期三, 16 七月 2025 09:20:37 +0800 Subject: [PATCH] 避险场所 --- src/views/Home.vue | 52 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/views/Home.vue b/src/views/Home.vue index 3462f52..d627921 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -58,9 +58,9 @@ // 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 { getDeviceInfo } from "@/api/hpApi"; +import { getDeviceInfoSHG, getWeather } from "@/api/hpApi"; const route = useRoute(); const simStore = useSimStore(); @@ -100,7 +100,53 @@ // 璁$畻灞炴�� const showDetail = computed(() => showDeviceDetail.value); +function groupTopWithLeafNodes(dataArray) { + const result = {}; + + function traverse(nodes, topLevelName = null) { + if (!Array.isArray(nodes)) return; + + for (const node of nodes) { + const isLeaf = !node.children || node.children.length === 0; + + // 濡傛灉鏄《灞傝妭鐐癸紝璁板綍瀹冪殑鍚嶅瓧浣滀负 key + if (!topLevelName && !isLeaf) { + topLevelName = node.nameChn; + if (!result[topLevelName]) { + result[topLevelName] = []; + } + } + + // 濡傛灉鏄彾瀛愯妭鐐癸紝鍔犲叆瀵瑰簲鏁扮粍 + if (isLeaf && topLevelName) { + result[topLevelName].push({ + name: node.nameChn, + code: node.code, + }); + } + + // 缁х画閫掑綊瀛愯妭鐐癸紙淇濇寔褰撳墠椤跺眰鍚嶇О锛� + if (node.children && node.children.length > 0) { + traverse(node.children, topLevelName); + } + } + } + + // 閬嶅巻鏁翠釜澶ф暟缁勪腑鐨勬瘡涓�椤癸紙鍗虫瘡涓�涓尯鍩燂級 + for (const item of dataArray) { + if (item && item.children && Array.isArray(item.children)) { + traverse([item]); // 鎶婂綋鍓嶉」鍖呰鎴愭暟缁勶紝鏂逛究缁熶竴澶勭悊 + } + } + + return result; +} onMounted(async () => { + getAllCode().then((res) => { + // 鍖椾含甯傛墍鏈夋潙浠ュ強琛楅亾code + simStore.townCodeAll = groupTopWithLeafNodes(res.data[0].children); + console.log(simStore.townCodeAll, "涓杞帴鍙h幏鍙栦埂闀嘽ode"); + }); setupTokenRefresh(); // 鑾峰彇瀹忓浘token // getSimData(); //娴嬭瘯tr鍚庣 // 鑾峰彇闅愭偅鐐瑰垪琛紙鍥犱负涓杞悗绔帴鍙h幏鍙栧姞杞芥椂闂磋緝闀匡級 @@ -108,7 +154,7 @@ simStore.DangerPoint = res.data.pageData; }); - getDeviceInfo(null,"110116110000").then((res) => { + getDeviceInfoSHG(null).then((res) => { simStore.devices = res.data.pageData; }); try { -- Gitblit v1.9.3