diff --git a/frontend/src/pages/ObjectDetail.tsx b/frontend/src/pages/ObjectDetail.tsx
index 0be2459..095a0cc 100644
--- a/frontend/src/pages/ObjectDetail.tsx
+++ b/frontend/src/pages/ObjectDetail.tsx
@@ -421,29 +421,40 @@ export function ObjectDetailPage({ defaultMode = 'inventory' }: { defaultMode?:
{
title: 'Последний пинг',
key: 'monitoring',
- onCell: (row: TableRow) => {
- if (row._type === 'group') return { colSpan: 0 }
- const d = row as DeviceRow
- const bg =
- d.status === 'online' ? '#f6ffed' :
- d.status === 'offline' ? '#fff2f0' : undefined
- return bg ? { style: { background: bg } } : {}
- },
+ onCell: (row: TableRow) => row._type === 'group' ? { colSpan: 0 } : {},
render: (_: unknown, row: TableRow) => {
if (row._type === 'group') return null
const d = row as DeviceRow
+ const dotColor =
+ d.status === 'online' ? '#52c41a' :
+ d.status === 'offline' ? '#ff4d4f' : '#d9d9d9'
+
+ const dot = (
+
+ )
+
const pingTime = d.last_ping_at ?? d.last_seen
if (!pingTime) {
return (
-
- {d.monitor_enabled ? 'ожидание...' : 'нет данных'}
-
+
+ {dot}
+
+ {d.monitor_enabled ? 'ожидание...' : 'нет данных'}
+
+
)
}
const pauseIcon = !d.monitor_enabled
- ? ⏸
+ ? ⏸
: null
const lastSeenHint = d.last_seen && d.last_ping_at && d.last_ping_at !== d.last_seen
@@ -453,9 +464,10 @@ export function ObjectDetailPage({ defaultMode = 'inventory' }: { defaultMode?:
const tooltipText = [elapsedAgo(pingTime), lastSeenHint].filter(Boolean).join(' · ')
return (
-
+
+ {dot}
-
+
{dayjs(pingTime).format('DD.MM.YYYY HH:mm')}