From fef12378282c0a8cf44411b079ac20ad4f397817 Mon Sep 17 00:00:00 2001 From: guonan <guonan201020@163.com> Date: 星期五, 23 五月 2025 16:56:48 +0800 Subject: [PATCH] 修改比较多 --- src/components/menu/Device.vue | 71 ++++++++++++++++++++++++----------- 1 files changed, 49 insertions(+), 22 deletions(-) diff --git a/src/components/menu/Device.vue b/src/components/menu/Device.vue index bd23511..01b1b31 100644 --- a/src/components/menu/Device.vue +++ b/src/components/menu/Device.vue @@ -6,12 +6,28 @@ <div class="left-content device-content"> <div style="margin-left: 5px"> <span style="color: white">閲嶇偣娌燂細</span> - <el-select @change="handleChange" v-model="selectValue" placeholder="Select" size="large" style="width: 240px"> - <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> + <el-select + @change="handleChange" + v-model="selectValue" + placeholder="Select" + size="large" + style="width: 240px" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + /> </el-select> </div> - <el-tree :data="deviceTree" node-key="deviceId" :props="treeProps" @node-click="handleTreeNodeClick" - class="device-tree"> + <el-tree + :data="deviceTree" + node-key="deviceId" + :props="treeProps" + @node-click="handleTreeNodeClick" + class="device-tree" + > <template #default="{ node, data }"> <span v-if="!data.children" class="device-tree-item"> <!-- <div class="device-item-icon"></div> --> @@ -27,21 +43,23 @@ </template> <script setup> -import { ref, computed, onMounted, watch, onBeforeUnmount, } from "vue"; -import { useRoute, onBeforeRouteUpdate } from 'vue-router'; +import { ref, computed, onMounted, watch, onBeforeUnmount } from "vue"; +import { useRoute, onBeforeRouteUpdate } from "vue-router"; import { createPoint, removeEntities } from "@/utils/map"; import { deviceDictList, getDictName } from "@/constant/dict.js"; import { getDeviceInfo } from "@/api/hpApi"; import { initeWaterPrimitiveView } from "@/utils/water"; //鐩告満flyTo鍑芥暟锛屽悗缁璷ptions鍒楄〃涓湁瀵瑰簲缁忕含搴﹀悗寮冪敤 import { useSimStore } from "@/store/simulation"; const simStore = useSimStore(); -onMounted(() => { +onMounted(async () => { + // 鍔犺浇鎵�鏈夌殑闅愭偅鐐逛俊鎭� + await getData(); loadDeviceList("瀛欒儭娌�"); - initeWaterPrimitiveView() + initeWaterPrimitiveView(); }); onBeforeRouteUpdate((to, from, next) => { - if (to.path !== '/zhjc') { + if (to.path !== "/zhjc") { handleCleanup(); } next(); @@ -49,24 +67,27 @@ const route = useRoute(); onBeforeUnmount(() => { - if (route.path !== '/zhjc') { + if (route.path !== "/zhjc") { handleCleanup(); } }); -watch(() => simStore.DeviceShowSwitch, (newValue, oldValue) => { - if (newValue) { - initializeDevicePoints(); - } else { - handleCleanup() +watch( + () => simStore.DeviceShowSwitch, + (newValue, oldValue) => { + if (newValue) { + initializeDevicePoints(); + } else { + handleCleanup(); + } } -}); +); const deviceListAll = ref([]); const deviceEntities = ref([]); const handleCleanup = () => { - deviceListAll.value.forEach(item => { + deviceListAll.value.forEach((item) => { removeEntities(item.deviceId); }); -} +}; const initializeDevicePoints = () => { const list = []; deviceListAll.value.forEach((item, index) => { @@ -82,13 +103,18 @@ }); deviceEntities.value = list; }; +const allDevices = ref([]); +const getData = async () => { + const res = await getDeviceInfo(); + allDevices.value = res.data.pageData; +}; // 鏍规嵁鍖哄煙鍚嶇О鍔犺浇璁惧鍒楄〃 const loadDeviceList = async (areaName) => { try { - handleCleanup() - const res = await getDeviceInfo(); - const allDevices = res.data.pageData; - const devicesInArea = allDevices.filter((item) => + handleCleanup(); + // const res = await getDeviceInfo(); + // const allDevices = res.data.pageData; + const devicesInArea = allDevices.value.filter((item) => item.deviceName?.includes(areaName) ); deviceListAll.value = devicesInArea; @@ -98,6 +124,7 @@ console.error("鍔犺浇璁惧淇℃伅澶辫触", error); } }; + // 澶勭悊鍖哄煙鍙樺寲浜嬩欢 const handleChange = (item) => { if (!item) { -- Gitblit v1.9.3