From f2c23cf6a5288cf5836bc07d9024e06a085cee0e Mon Sep 17 00:00:00 2001 From: zhaojunlong <5482498@qq.com> Date: Wed, 1 Jul 2026 16:45:43 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(alarm):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E7=8A=B6=E6=80=81=E7=AD=9B=E9=80=89=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在API接口中添加warning字段用于筛选预警状态 - 实现预警状态的下拉选择框,支持全部、是、否三种选项 - 添加清空按钮重置所有筛选条件 - 更新告警管理页面的数据请求逻辑以包含预警筛选参数 - 修复视频组件样式问题,移除不必要的悬停动画效果 ``` --- src/api/alarm.ts | 1 + src/views/dashboard1/index.less | 3 +-- .../dashboard1/pages/AlarmManagementPage.vue | 26 +++++++++++++++++++ .../dashboard1/pages/IntegratedCenterPage.vue | 4 +-- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/api/alarm.ts b/src/api/alarm.ts index 1095730..2cf47ea 100644 --- a/src/api/alarm.ts +++ b/src/api/alarm.ts @@ -4,6 +4,7 @@ export interface RosInspectionRecordLineImageQueryDTO { recognizeType?: number | string; startTime?: string; endTime?: string; + warning?: boolean; keyword?: string; } diff --git a/src/views/dashboard1/index.less b/src/views/dashboard1/index.less index f029e51..008f5d3 100644 --- a/src/views/dashboard1/index.less +++ b/src/views/dashboard1/index.less @@ -931,7 +931,6 @@ } .video-grid-cell:hover { - transform: translateY(-1px); border-color: rgba(141, 237, 255, 0.42); } @@ -942,7 +941,7 @@ height: 100%; object-fit: contain; display: block; - opacity: 0.76; + // opacity: 0.76; } .stream-message { diff --git a/src/views/dashboard1/pages/AlarmManagementPage.vue b/src/views/dashboard1/pages/AlarmManagementPage.vue index de605c7..7d9caee 100644 --- a/src/views/dashboard1/pages/AlarmManagementPage.vue +++ b/src/views/dashboard1/pages/AlarmManagementPage.vue @@ -21,6 +21,7 @@ interface AlarmRecord { } type RecognitionStatusText = "待执行" | "执行中" | "执行成功" | "执行失败" | "未知状态"; +type WarningFilterValue = "" | "true" | "false"; interface AlarmPageResult { total?: number; @@ -48,6 +49,7 @@ const recognitionStatusMap: Record = { const alarmNo = ref(""); const recognizeType = ref(""); +const warningFilter = ref("true"); const startTime = ref(""); const endTime = ref(""); const alarms = ref([]); @@ -97,6 +99,15 @@ function handleSearch() { fetchAlarmList(); } +function handleClear() { + alarmNo.value = ""; + recognizeType.value = ""; + warningFilter.value = ""; + startTime.value = ""; + endTime.value = ""; + handleSearch(); +} + // 请求告警分页列表并更新表格数据 async function fetchAlarmList() { listLoading.value = true; @@ -108,6 +119,7 @@ async function fetchAlarmList() { limit: pageSize, query: { recognizeType: normalizeRecognizeType(recognizeType.value), + warning: normalizeWarningFilter(warningFilter.value), startTime: normalizeDateTime(startTime.value), endTime: normalizeDateTime(endTime.value), id: alarmNo.value.trim() || undefined, @@ -183,6 +195,14 @@ function normalizeRecognizeType(value: string) { return value ? Number(value) : undefined; } +function normalizeWarningFilter(value: WarningFilterValue) { + if (!value) { + return undefined; + } + + return value === "true"; +} + function formatPosition(record: RosInspectionRecordLineImage) { if (typeof record.poseX !== "number" || typeof record.poseY !== "number") { return "--"; @@ -210,6 +230,11 @@ onMounted(() => { + { @keyup.enter="handleSearch" /> +
共 {{ totalAlarms }} 条告警记录
diff --git a/src/views/dashboard1/pages/IntegratedCenterPage.vue b/src/views/dashboard1/pages/IntegratedCenterPage.vue index 732ad0b..2cddb13 100644 --- a/src/views/dashboard1/pages/IntegratedCenterPage.vue +++ b/src/views/dashboard1/pages/IntegratedCenterPage.vue @@ -1640,10 +1640,10 @@ function getStatusClass(status: DeviceItem["status"]) { :class="['monitor-video', { infrared: activeCameraMode === 'infrared' }]" autoplay muted playsinline>
-
实时视频流
+
{{ currentRobot.id }}
视频流连接中...
{{ streamError }}