From d9a0470ecfff32326e2c19e6e6cce9d493c50511 Mon Sep 17 00:00:00 2001 From: zxr <271055687@qq.com> Date: Sun, 19 Apr 2026 14:24:03 +0800 Subject: [PATCH] fix --- src/api/ops/room-device.ts | 29 +- .../dc/device-collect/components/Detail.vue | 6 +- .../ops/pages/monitor/environment/index.vue | 1234 +++++++---------- 3 files changed, 551 insertions(+), 718 deletions(-) diff --git a/src/api/ops/room-device.ts b/src/api/ops/room-device.ts index cad8a1c..c14329b 100644 --- a/src/api/ops/room-device.ts +++ b/src/api/ops/room-device.ts @@ -10,7 +10,10 @@ export interface RoomDeviceItem { name: string description: string room_id: string + device_code?: string device_category: string + type?: string + status_url?: string agent_config: string collect_method: 'api' | 'snmp' snmp_target: string @@ -23,6 +26,15 @@ export interface RoomDeviceItem { collect_on: boolean collect_interval: number collect_last_result: string + status?: string + status_code?: number + status_message?: string + response_time?: number + last_check_time?: string + last_online_time?: string | null + last_offline_time?: string | null + continuous_errors?: number + uptime?: number policy_ids?: number[] } @@ -111,6 +123,21 @@ export interface MetricItem { metric_unit?: string } +/** GET /room-devices/metrics/latest 的 details 载荷 */ +export interface RoomDeviceMetricsLatestDetails { + service_identity: string + latest_timestamp?: string | null + count: number + metrics: MetricItem[] +} + +/** 统一 API 封装(与 storage 等页一致) */ +export interface RoomDeviceMetricsLatestResponse { + code: number + message?: string + details?: RoomDeviceMetricsLatestDetails +} + /** 指标上报数据 */ export interface MetricsUploadData { metrics: MetricItem[] @@ -148,7 +175,7 @@ export const patchRoomDeviceCollect = (id: number, data: RoomDeviceCollectData) /** 查询最新指标 */ export const fetchLatestMetrics = (serviceIdentity: string) => { - return request.get('/DC-Control/v1/room-devices/metrics/latest', { + return request.get('/DC-Control/v1/room-devices/metrics/latest', { params: { service_identity: serviceIdentity }, }) } diff --git a/src/views/ops/pages/dc/device-collect/components/Detail.vue b/src/views/ops/pages/dc/device-collect/components/Detail.vue index ae5b460..235e883 100644 --- a/src/views/ops/pages/dc/device-collect/components/Detail.vue +++ b/src/views/ops/pages/dc/device-collect/components/Detail.vue @@ -108,7 +108,11 @@ const handleViewMetrics = async () => { metricsLoading.value = true try { const response = await fetchLatestMetrics(props.record.service_identity) - metricsData.value = (response as any)?.details?.data || [] + const metrics = + response?.code === 0 && response.details?.metrics && Array.isArray(response.details.metrics) + ? response.details.metrics + : [] + metricsData.value = metrics } catch (error) { console.error('获取最新指标失败:', error) Message.error('获取最新指标失败') diff --git a/src/views/ops/pages/monitor/environment/index.vue b/src/views/ops/pages/monitor/environment/index.vue index 3d6ce36..892fff9 100644 --- a/src/views/ops/pages/monitor/environment/index.vue +++ b/src/views/ops/pages/monitor/environment/index.vue @@ -1,545 +1,460 @@