фикс пинга

This commit is contained in:
dv 2026-04-10 12:39:36 +03:00
parent 3c3624d848
commit da8092dfe8
2 changed files with 28 additions and 16 deletions

View file

@ -462,17 +462,26 @@ export function DeviceDetailPage() {
<Descriptions bordered size="small" column={1} labelStyle={{ width: 180 }} style={{ marginTop: 16 }}>
<Descriptions.Item label="Статус"><DeviceStatusBadge status={effectiveStatus} /></Descriptions.Item>
<Descriptions.Item label="Последний ping">
{device.last_seen ? (
<Tooltip title={elapsedAgo(device.last_seen)}>
<Descriptions.Item label="Последний пинг">
{(device.last_ping_at ?? device.last_seen) ? (
<Tooltip title={elapsedAgo((device.last_ping_at ?? device.last_seen)!)}>
<Space size={4} style={{ cursor: 'default' }}>
<ClockCircleOutlined style={{ color: '#999' }} />
<span>{dayjs(device.last_seen).format('DD.MM.YYYY HH:mm:ss')}</span>
{effectivePing !== null && <span style={{ color: '#999' }}>{effectivePing}мс</span>}
<span>{dayjs(device.last_ping_at ?? device.last_seen).format('DD.MM.YYYY HH:mm:ss')}</span>
</Space>
</Tooltip>
) : '—'}
</Descriptions.Item>
{device.last_seen && device.last_ping_at !== device.last_seen && (
<Descriptions.Item label="Онлайн был">
<Tooltip title={elapsedAgo(device.last_seen)}>
<Space size={4} style={{ cursor: 'default' }}>
<ClockCircleOutlined style={{ color: '#52c41a' }} />
<span>{dayjs(device.last_seen).format('DD.MM.YYYY HH:mm:ss')}</span>
</Space>
</Tooltip>
</Descriptions.Item>
)}
<Descriptions.Item label="Мониторинг">
{device.monitor_enabled
? <Tag color="green">Включён</Tag>

View file

@ -457,20 +457,23 @@ export function ObjectDetailPage({ defaultMode = 'inventory' }: { defaultMode?:
? <Tooltip title="Мониторинг включен"><span style={{ color: '#faad14' }}></span></Tooltip>
: null
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
const tooltipText = [elapsedAgo(pingTime), lastSeenHint].filter(Boolean).join(' · ')
const showLastSeen = d.status !== 'online' && d.last_seen && d.last_ping_at !== d.last_seen
return (
<Space size={6}>
<Space size={6} align="start">
{dot}
<Tooltip title={tooltipText}>
<span style={{ color: dotColor, cursor: 'default' }}>
{dayjs(pingTime).format('DD.MM.YYYY HH:mm')}
</span>
</Tooltip>
<div>
<Tooltip title={elapsedAgo(pingTime)}>
<span style={{ color: dotColor, cursor: 'default' }}>
{dayjs(pingTime).format('DD.MM.YYYY HH:mm')}
</span>
</Tooltip>
{showLastSeen && (
<div style={{ fontSize: 11, color: '#999', lineHeight: 1.4 }}>
онлайн: {dayjs(d.last_seen).format('DD.MM.YYYY HH:mm')}
</div>
)}
</div>
{pauseIcon}
</Space>
)