From 75e2b9a394251beb60ef61b8e36b66c5fecbed2b Mon Sep 17 00:00:00 2001
From: ZHW <1941286652@qq.com>
Date: Sat, 27 Dec 2025 21:57:10 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/src/views/equipment/WaterSupplier.vue | 87 ++++++++++++-
.../views/equipment/WaterSupplierDetail.vue | 118 +++++++++++++++++-
2 files changed, 197 insertions(+), 8 deletions(-)
diff --git a/src/main/resources/web/src/views/equipment/WaterSupplier.vue b/src/main/resources/web/src/views/equipment/WaterSupplier.vue
index c6b2471..274d2eb 100644
--- a/src/main/resources/web/src/views/equipment/WaterSupplier.vue
+++ b/src/main/resources/web/src/views/equipment/WaterSupplier.vue
@@ -124,13 +124,24 @@
-
+
+
+
+
关联的制水机
+
+
+ 制水机ID:
+ {{ associatedMaker.deviceId }}
+
+
+ 制水机名称:
+ {{ associatedMaker.deviceName }}
+
+
+ 制水机状态:
+
+
+ {{ formatStatus(associatedMaker.status) }}
+
+
+
+
+ 安装位置:
+ {{ associatedMaker.installLocation }}
+
+
+ 所属片区:
+ {{ associatedMaker.areaId }}
+
+
+
+
实时数据
@@ -71,10 +101,7 @@
温度:
{{ deviceDetail.realtimeData?.temperature || '-' }} °C
-
- 水质(TDS):
- {{ deviceDetail.realtimeData?.tds || '-' }} ppm
-
+
运行状态:
@@ -119,6 +146,7 @@ interface DeviceInfo {
status: string
createTime?: string
lastHeartbeatTime?: string
+ parentMakerId?: string // 关联的制水机ID
}
// 根据 WaterSupplyRealtimeData 实体类定义
@@ -142,6 +170,7 @@ const route = useRoute()
const router = useRouter()
const authStore = useAuthStore()
const deviceDetail = ref(null)
+const associatedMaker = ref(null) // 关联的制水机信息
const loading = ref(true)
const error = ref('')
@@ -219,6 +248,11 @@ const loadDeviceDetail = async () => {
if (result.code === 200 && result.data) {
deviceDetail.value = result.data
console.log('设备详情数据:', deviceDetail.value)
+
+ // 如果供水机有关联的制水机,加载制水机信息
+ if (result.data.deviceInfo.parentMakerId) {
+ await loadAssociatedMaker(result.data.deviceInfo.parentMakerId)
+ }
} else {
error.value = result.message || '获取设备详情失败'
}
@@ -234,6 +268,80 @@ const loadDeviceDetail = async () => {
}
}
+// 加载指定片区内可用的制水机设备
+const loadAvailableMakers = async () => {
+ if (!newDevice.value.areaId) {
+ availableMakers.value = []
+ return
+ }
+
+ try {
+ const token = authStore.token
+ if (!token) {
+ router.push('/login')
+ return
+ }
+
+ // 请求该片区内的所有制水机
+ const params = new URLSearchParams();
+ params.append('areaId', newDevice.value.areaId);
+ params.append('deviceType', 'water_maker');
+
+ const queryString = params.toString();
+ const url = `/api/web/device-status/by-type${queryString ? `?${queryString}` : ''}`;
+
+ const response = await request>(url, { method: 'GET' });
+
+ if (response.code === 200 && response.data && Array.isArray(response.data)) {
+ // 转换为选项格式,包含ID和位置信息
+ availableMakers.value = response.data.map((maker: any) => ({
+ id: maker.deviceId,
+ name: `${maker.deviceId} - ${maker.installLocation}`
+ }))
+ } else {
+ console.error('获取制水机列表失败:', response.message);
+ availableMakers.value = []
+ }
+ } catch (error) {
+ console.error('加载制水机列表失败:', error);
+ availableMakers.value = []
+ if ((error as Error).message.includes('401')) {
+ authStore.logout()
+ router.push('/login')
+ }
+ }
+}
+
+
+// 加载关联的制水机信息
+const loadAssociatedMaker = async (makerId: string) => {
+ try {
+ const token = authStore.token
+ if (!token) {
+ router.push('/login')
+ return
+ }
+
+ const result = await request>(
+ `/api/web/device/${makerId}`,
+ { method: 'GET' }
+ )
+
+ if (result.code === 200 && result.data) {
+ associatedMaker.value = result.data.deviceInfo
+ console.log('关联的制水机数据:', associatedMaker.value)
+ } else {
+ console.error('获取关联制水机失败:', result.message)
+ }
+ } catch (err) {
+ console.error('加载关联制水机失败:', err)
+ if ((err as Error).message.includes('401')) {
+ authStore.logout()
+ router.push('/login')
+ }
+ }
+}
+
// 组件挂载时加载数据
onMounted(() => {
if (deviceId) {