feat: expand nvr cluster node if any nvr is selected when manually locate device

This commit is contained in:
yangsy
2025-08-18 15:54:42 +08:00
parent 3171bf34d5
commit 91dee03829

View File

@@ -222,7 +222,16 @@ const deviceTreeInsts = useTemplateRef<TreeInst[]>('deviceTreeInsts');
const onClickLocateDeviceTree = () => {
selectedTab.value = (selectedDevice.value?.deviceType ?? selectedTab.value) as DeviceTypeCode;
selectedKeys.value = selectedDevice.value?.id ? [selectedDevice.value.id] : undefined;
expandedKeys.value = route.query['stationCode'] ? [route.query['stationCode'] as string] : undefined;
const stationCode = route.query['stationCode'] as string | undefined;
let expanded: string[] | undefined = stationCode ? [stationCode] : undefined;
if (selectedTab.value === DeviceType.Nvr && stationCode) {
const nvrs = (lineDevices.value?.[stationCode]?.[DeviceType.Nvr] ?? []) as NdmNvrResultVO[];
const clusterKeys = nvrs.filter((nvr) => !!nvr.clusterList?.trim() && nvr.clusterList !== nvr.ipAddress).map((nvr) => String(nvr.id));
expanded = [...(expanded ?? []), ...clusterKeys];
}
expandedKeys.value = expanded;
// 由于数据量大所以开启虚拟滚动,
// 但是无法知晓NTree内部的虚拟列表容器何时创建完成所以使用setTimeout延迟固定时间后执行滚动
scrollDeviceTreeToSelectedDevice();