From 369285fe8c588341420b1d5ab50cbbdbaea941c6 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Sat, 27 Sep 2025 15:00:52 +0800 Subject: [PATCH] =?UTF-8?q?agv=E4=BB=BB=E5=8A=A1=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/automatedWarehouse/agvTask.vue | 202 +++++++++++++++++- 1 file changed, 200 insertions(+), 2 deletions(-) diff --git a/src/views/modules/automatedWarehouse/agvTask.vue b/src/views/modules/automatedWarehouse/agvTask.vue index a483efe..97b97d1 100644 --- a/src/views/modules/automatedWarehouse/agvTask.vue +++ b/src/views/modules/automatedWarehouse/agvTask.vue @@ -4,6 +4,7 @@ 查询 AGV监控 + 告警信息 测试连接 调整优先级 - 变更位置 取消 @@ -315,6 +314,102 @@ 关闭 + + + +
+ + + + +
+ {{ alarmStats.total }} + 总告警数 +
+
+
+ + +
+ {{ alarmStats.warning }} + 警告 +
+
+
+ + +
+ {{ alarmStats.error }} + 错误 +
+
+
+ + +
+ {{ alarmStats.info }} + 信息 +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
暂无告警信息
+
+
+ +
@@ -326,6 +421,7 @@ import { changeLocation as changeLocationApi, cancelTuskTask as cancelTuskTaskApi, getAgvStatus, + getAgvAlarms, testTuskConnection as testTuskConnectionApi } from '@/api/automatedWarehouse/agvTask.js' import { @@ -389,6 +485,16 @@ export default { currentToLocation: '', newFromLocation: '', newToLocation: '' + }, + // 告警信息相关 + alarmDialogVisible: false, + alarmLoading: false, + alarmList: [], + alarmStats: { + total: 0, + warning: 0, + error: 0, + info: 0 } } }, @@ -744,6 +850,98 @@ export default { }).catch(error => { this.$message.error('测试TUSK连接异常:' + error.message); }); + }, + + // 显示告警信息 + showAlarmInfo() { + this.alarmDialogVisible = true; + this.refreshAlarmInfo(); + }, + + // 刷新告警信息 + refreshAlarmInfo() { + this.alarmLoading = true; + getAgvAlarms().then(({data}) => { + this.alarmLoading = false; + if (data.code === 0) { + this.alarmList = data.alarms || []; + this.calculateAlarmStats(); + } else { + this.$message.error(data.msg || '获取告警信息失败'); + } + }).catch(error => { + this.alarmLoading = false; + this.$message.error('获取告警信息异常:' + error.message); + }); + }, + + // 计算告警统计信息 + calculateAlarmStats() { + this.alarmStats = { + total: this.alarmList.length, + warning: this.alarmList.filter(alarm => alarm.alarmLevel === 'WARNING').length, + error: this.alarmList.filter(alarm => alarm.alarmLevel === 'ERROR' || alarm.alarmLevel === 'CRITICAL').length, + info: this.alarmList.filter(alarm => alarm.alarmLevel === 'INFO').length + }; + }, + + // 获取告警类型文本 + getAlarmTypeText(type) { + const typeMap = { + 'SYSTEM': '系统', + 'HARDWARE': '硬件', + 'SOFTWARE': '软件', + 'COMMUNICATION': '通信', + 'SAFETY': '安全', + 'OPERATION': '操作' + }; + return typeMap[type] || type; + }, + + // 获取告警类型颜色 + getAlarmTypeColor(type) { + const colorMap = { + 'SYSTEM': 'danger', + 'HARDWARE': 'warning', + 'SOFTWARE': 'info', + 'COMMUNICATION': 'warning', + 'SAFETY': 'danger', + 'OPERATION': 'primary' + }; + return colorMap[type] || 'info'; + }, + + // 获取告警级别文本 + getAlarmLevelText(level) { + const levelMap = { + 'INFO': '信息', + 'WARNING': '警告', + 'ERROR': '错误', + 'CRITICAL': '严重' + }; + return levelMap[level] || level; + }, + + // 获取告警级别颜色 + getAlarmLevelColor(level) { + const colorMap = { + 'INFO': 'info', + 'WARNING': 'warning', + 'ERROR': 'danger', + 'CRITICAL': 'danger' + }; + return colorMap[level] || 'info'; + }, + + // 获取告警信息颜色 + getAlarmMessageColor(level) { + const colorMap = { + 'INFO': '#909399', + 'WARNING': '#e6a23c', + 'ERROR': '#f56c6c', + 'CRITICAL': '#f56c6c' + }; + return colorMap[level] || '#606266'; } }, }