Browse Source

fix: 监控绑定虚线按机巢关联飞行无人机

dock asset 无 children,改为通过 dockId + mission 状态定位飞行中无人机。
main
xiaosi 3 weeks ago
parent
commit
a6708328a5
  1. 22
      src/views/MonitorView/MonitorView.vue

22
src/views/MonitorView/MonitorView.vue

@ -524,20 +524,20 @@ function bindingEndpoints() {
if (!selectedId.value) return null
const asset = devices.asset(selectedId.value)
if (!asset) return null
let dock = null
let drone = null
let dockAsset = null
let droneAsset = null
if (asset.type === 'dock') {
dock = asset
const child = (asset.children || []).map((c) => devices.asset(c.id || c)).find((a) => a && !a.inDock && a.hasCoordinates)
drone = child || null
dockAsset = asset
const dockRec = devices.record(asset.id)
const flying = devices.drones.find((d) => d.dockId === dockRec?.dockId && d.statusClass === 'mission')
droneAsset = flying ? devices.asset(flying.id) : null
} else {
drone = asset.inDock ? null : asset
dock = asset.parent ? devices.asset(asset.parent) : null
droneAsset = asset.inDock ? null : asset
dockAsset = asset.parent ? devices.asset(asset.parent) : null
}
if (!dock?.hasCoordinates || !drone?.hasCoordinates) return null
if (drone.inDock) return null
const a = [Number(dock.longitude), Number(dock.latitude)]
const b = [Number(drone.longitude), Number(drone.latitude)]
if (!dockAsset?.hasCoordinates || !droneAsset?.hasCoordinates || droneAsset.inDock) return null
const a = [Number(dockAsset.longitude), Number(dockAsset.latitude)]
const b = [Number(droneAsset.longitude), Number(droneAsset.latitude)]
if (!a.every(Number.isFinite) || !b.every(Number.isFinite)) return null
return [a, b]
}

Loading…
Cancel
Save