diff --git a/src/components/device/device-tree/device-tree.vue b/src/components/device/device-tree/device-tree.vue index 966d818..6248738 100644 --- a/src/components/device/device-tree/device-tree.vue +++ b/src/components/device/device-tree/device-tree.vue @@ -46,6 +46,7 @@ const { selectedStationCode, selectedDeviceType, selectedDevice, + hasFromPage, selectDevice, routeDevice, // 设备管理 @@ -460,12 +461,15 @@ const onLocateDeviceTree = async () => { animated.value = true; }; -// 渲染全线设备树时,若是首次选择设备,则定位设备树 -const unwatch = watch(selectedDevice, async (newDevice, oldDevice) => { +// 渲染全线设备树时,若是首次经过路由跳转而来选择设备,则定位设备树 +const unwatchLocate = watch(selectedDevice, async (newDevice, oldDevice) => { if (!!station.value) return; - if (!!newDevice && !oldDevice && !!deviceTreeInst.value) { - await onLocateDeviceTree(); - unwatch(); + if (!hasFromPage.value) return; + if (!!newDevice && !oldDevice) { + if (!!deviceTreeInst.value) { + await onLocateDeviceTree(); + unwatchLocate(); + } } }); diff --git a/src/composables/device/use-device-selection.ts b/src/composables/device/use-device-selection.ts index dd1319b..d8e88bb 100644 --- a/src/composables/device/use-device-selection.ts +++ b/src/composables/device/use-device-selection.ts @@ -3,7 +3,7 @@ import { tryGetDeviceType, type DeviceType } from '@/enums'; import { useDeviceStore } from '@/stores'; import { watchDebounced } from '@vueuse/core'; import { storeToRefs } from 'pinia'; -import { onMounted, ref, watch } from 'vue'; +import { computed, onMounted, ref, watch } from 'vue'; import { useRoute, useRouter } from 'vue-router'; export const useDeviceSelection = () => { @@ -17,6 +17,8 @@ export const useDeviceSelection = () => { const selectedDeviceType = ref(); const selectedDevice = ref(); + const hasFromPage = computed(() => !!route.query['fromPage']); + const initFromRoute = (lineDevices: LineDevices) => { const { stationCode, deviceType, deviceDbId } = route.query; if (stationCode) { @@ -105,6 +107,8 @@ export const useDeviceSelection = () => { selectedDeviceType, selectedDevice, + hasFromPage, + initFromRoute, selectDevice, routeDevice,