From 5c37cb8f6988ed012ee935cb48825d0046e12c89 Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Wed, 30 Sep 2026 00:55:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=91=84=E5=83=8F=E5=A4=B4=E9=A2=84=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/cameraMonitoring.ts | 2 +- src/views/venues/CameraAlerts.vue | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/api/cameraMonitoring.ts b/src/api/cameraMonitoring.ts index 12df578..acef50f 100644 --- a/src/api/cameraMonitoring.ts +++ b/src/api/cameraMonitoring.ts @@ -3,7 +3,7 @@ import { http } from './http' export type CameraDevice = { id: number; venue_id?: number | null; venue_name?: string | null; name: string; ip: string; sdk_port: number; http_port?: number; channel: number; device_slot?: number | null; group_id?: string | null; monitor_enabled: boolean; notification_enabled: boolean; include_in_venue_stats: boolean; maintenance_until?: string | null; push_timeout_seconds: number; health?: CameraHealth | null; venue?: { id: number; name: string } | null } -export type CameraHealth = { status: string; sdk_status?: string; alarm_status?: string; tcp_reachable?: boolean | null; last_pdc_at?: string | null; push_age_seconds?: number | null; last_tcp_error?: string | null; reconnect_attempts?: number; observed_at?: string | null } +export type CameraHealth = { status: string; sdk_status?: string; alarm_status?: string; tcp_reachable?: boolean | null; last_pdc_at?: string | null; last_pdc_at_source?: string | null; push_age_seconds?: number | null; last_tcp_error?: string | null; reconnect_attempts?: number; observed_at?: string | null } export type CameraAlert = { id: number; alert_type: string; status: string; severity: string; title: string; reason?: string; first_occurred_at?: string; last_occurred_at?: string; recovered_at?: string | null; camera?: Pick; venue?: { id: number; name: string } } export type CameraSettings = { timezone: string; notification_start_time: string; notification_end_time: string; default_push_interval_seconds: number; default_push_timeout_seconds: number; probe_interval_seconds: number; probe_failure_threshold: number; auto_reconnect_max_attempts: number; send_manual_action_email: boolean; send_recovery_email: boolean; recipient_emails: string[] } export async function fetchCameraDevices(params?: Record) { const { data } = await http.get('/camera-devices', { params }); return data } diff --git a/src/views/venues/CameraAlerts.vue b/src/views/venues/CameraAlerts.vue index dc84ebc..39d4324 100644 --- a/src/views/venues/CameraAlerts.vue +++ b/src/views/venues/CameraAlerts.vue @@ -1,5 +1,5 @@