From b170df43b80c29690ad0d52a68b94630ed75ce8b Mon Sep 17 00:00:00 2001 From: dv Date: Fri, 10 Apr 2026 11:48:19 +0300 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=BF=D0=B8=D0=BD?= =?UTF-8?q?=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/ObjectDetail.tsx | 44 +++++++++++++++-------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/frontend/src/pages/ObjectDetail.tsx b/frontend/src/pages/ObjectDetail.tsx index 94c580c..47e9d01 100644 --- a/frontend/src/pages/ObjectDetail.tsx +++ b/frontend/src/pages/ObjectDetail.tsx @@ -434,13 +434,10 @@ export function ObjectDetailPage({ defaultMode = 'inventory' }: { defaultMode?: if (row._type === 'group') return null const d = row as DeviceRow - // Мониторинг выключен и история отсутствует - if (!d.monitor_enabled && !d.last_ping_at) { - return выключен - } - - // Мониторинг включён, но ни разу не пинговалось - if (d.monitor_enabled && !d.last_ping_at) { + // Нет никаких данных о пинге + const pingTime = d.last_ping_at ?? d.last_seen + if (!pingTime) { + if (!d.monitor_enabled) return выключен return ожидание... } @@ -448,30 +445,35 @@ export function ObjectDetailPage({ defaultMode = 'inventory' }: { defaultMode?: ? : null - // Устройство online — last_ping_at ≈ last_seen + // Устройство online if (d.status === 'online') { return ( - - - {dayjs(d.last_ping_at).format('DD.MM.YYYY HH:mm')} - + + + + {dayjs(pingTime).format('DD.MM.YYYY HH:mm')} + + {pauseIcon} - + ) } - // Устройство offline или unknown — показываем время попытки, в tooltip — когда был онлайн - const lastSeenHint = d.last_seen + // Устройство offline или unknown + // pingTime = последняя попытка (last_ping_at) или последний онлайн (last_seen как fallback) + const lastSeenHint = d.last_seen && d.last_ping_at && d.last_ping_at !== d.last_seen ? `онлайн был: ${dayjs(d.last_seen).format('DD.MM.YYYY HH:mm')}` - : 'онлайн не был' + : null return ( - - - {dayjs(d.last_ping_at).format('DD.MM.YYYY HH:mm')} - + + + + {dayjs(pingTime).format('DD.MM.YYYY HH:mm')} + + {pauseIcon} - + ) }, },