diff --git a/src/components/DeviceEnvironmentValues.vue b/src/components/DeviceEnvironmentValues.vue
new file mode 100644
index 0000000..4e6994b
--- /dev/null
+++ b/src/components/DeviceEnvironmentValues.vue
@@ -0,0 +1,18 @@
+
+
+
+
+ {{ item.label }}
+ {{ item.value }}
+
+
+
+
+
diff --git a/src/components/DeviceStatusMatrix.vue b/src/components/DeviceStatusMatrix.vue
new file mode 100644
index 0000000..8491bb1
--- /dev/null
+++ b/src/components/DeviceStatusMatrix.vue
@@ -0,0 +1,19 @@
+
+
+
+
+ {{ item.label }}
+ {{ item.value }}
+
+
+
+
+
+
diff --git a/src/views/DeviceDetailView/DeviceDetailView.vue b/src/views/DeviceDetailView/DeviceDetailView.vue
index 7badc41..8863d53 100644
--- a/src/views/DeviceDetailView/DeviceDetailView.vue
+++ b/src/views/DeviceDetailView/DeviceDetailView.vue
@@ -41,14 +41,7 @@
机巢运行状态
全部状态
-
-
左侧舱门{{ doorText('left') }}
-
右侧舱门{{ doorText('right') }}
-
左右归中{{ centeringText('leftRight') }}
-
前后归中{{ centeringText('frontBack') }}
-
急停状态{{ isTrue(rt('emergencyStop')) ? '已触发' : booleanText(rt('emergencyStop')) === '--' ? '--' : '未触发' }}
-
整机状态{{ record.status }}
-
+
环境监测
-
-
舱外温度{{ withUnit(record.environment?.outsideTemperature, '℃') }}
-
舱内温度{{ withUnit(record.environment?.insideTemperature, '℃') }}
-
舱外湿度{{ withUnit(record.environment?.outsideHumidity, '%RH') }}
-
舱内湿度{{ withUnit(record.environment?.insideHumidity, '%RH') }}
-
实时风速{{ withUnit(record.environment?.windSpeed, ' m/s') }}
-
降雨{{ booleanText(record.environment?.rain) }}
-
+
@@ -316,6 +302,8 @@ import { useUiStore } from '@/stores/modules/uiStore'
import { useUserStore } from '@/stores/modules/userStore'
import request from '@/utils/http'
import DockEditModal from '@/components/DockEditModal.vue'
+import DeviceStatusMatrix from '@/components/DeviceStatusMatrix.vue'
+import DeviceEnvironmentValues from '@/components/DeviceEnvironmentValues.vue'
import * as urls from '@/config/urls'
const route = useRoute()
@@ -383,6 +371,29 @@ const homeSetText = computed(() => {
if (isFalse(rt('homeSet'))) return '未设置'
return '--'
})
+const statusMatrixItems = computed(() => {
+ const emergency = rt('emergencyStop')
+ const emergencyValue = isTrue(emergency) ? '已触发' : booleanText(emergency) === '--' ? '--' : '未触发'
+ return [
+ { icon: '#i-door', label: '左侧舱门', value: doorText('left'), ok: isClosed(doorValue('left')) },
+ { icon: '#i-door', label: '右侧舱门', value: doorText('right'), ok: isClosed(doorValue('right')) },
+ { icon: '#i-grid', label: '左右归中', value: centeringText('leftRight'), ok: isTight(centeringValue('leftRight')) },
+ { icon: '#i-grid', label: '前后归中', value: centeringText('frontBack'), ok: isTight(centeringValue('frontBack')) },
+ { icon: '#i-alert', label: '急停状态', value: emergencyValue, ok: isFalse(emergency) },
+ { icon: '#i-refresh', label: '整机状态', value: record.value?.status ?? '--', ok: !!record.value?.online }
+ ]
+})
+const environmentItems = computed(() => {
+ const env = record.value?.environment
+ return [
+ { icon: '#i-sun', label: '舱外温度', value: withUnit(env?.outsideTemperature, '℃') },
+ { icon: '#i-sun', label: '舱内温度', value: withUnit(env?.insideTemperature, '℃') },
+ { icon: '#i-cloud-rain', label: '舱外湿度', value: withUnit(env?.outsideHumidity, '%RH') },
+ { icon: '#i-cloud-rain', label: '舱内湿度', value: withUnit(env?.insideHumidity, '%RH') },
+ { icon: '#i-wind', label: '实时风速', value: withUnit(env?.windSpeed, ' m/s') },
+ { icon: '#i-cloud-rain', label: '降雨', value: booleanText(env?.rain) }
+ ]
+})
const filteredAlarms = computed(() => {
if (!alarmStatusFilter.value) return alarmRecords.value
if (alarmStatusFilter.value === 'active') return alarmRecords.value.filter((item) => item.status !== 'resolved')