diff --git a/components/monitoring/MonitoringTopologyView.tsx b/components/monitoring/MonitoringTopologyView.tsx index 6164d0d..f968e21 100644 --- a/components/monitoring/MonitoringTopologyView.tsx +++ b/components/monitoring/MonitoringTopologyView.tsx @@ -2309,7 +2309,11 @@ export function MonitoringTopologyView({ hosts, keys }: Props) { // 本地 Electron:从 localStorage 读,找不到则从主进程 inspection-data.json 读 try { let saved = localStorage.getItem('monitoring-topology-positions'); - if (saved) return JSON.parse(saved); + if (saved) { + const parsed = JSON.parse(saved); + // 空对象 {} 等于没有,继续 fallback + if (parsed && typeof parsed === 'object' && Object.keys(parsed).length > 0) return parsed; + } // portable 版 localStorage 为空 → fallback 主进程 JSON(sendSync 同步) try { const nc = (window as any).netcatty; @@ -2332,7 +2336,7 @@ export function MonitoringTopologyView({ hosts, keys }: Props) { const MIN_Y = -0.5; const MAX_Y = 20; - if (savedPositions) { + if (savedPositions && Object.keys(savedPositions).length > 0) { devices.forEach((d) => { if (savedPositions[d.id]) { positions[d.id] = new THREE.Vector3(