From 74190ebc24e6e850d418ad0ce041fd91b795c23e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 25 五月 2026 18:32:21 +0800
Subject: [PATCH] 新增智能电表、空调管理
---
admin/src/views/business/ywelectrical.vue | 65 +++++++++++++++++++++++++++++++-
1 files changed, 62 insertions(+), 3 deletions(-)
diff --git a/admin/src/views/business/ywelectrical.vue b/admin/src/views/business/ywelectrical.vue
index 96658fb..6e4aa45 100644
--- a/admin/src/views/business/ywelectrical.vue
+++ b/admin/src/views/business/ywelectrical.vue
@@ -32,11 +32,26 @@
<el-table-column prop="name" label="鐢佃〃鍚嶇О" fixed min-width="140" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="address" label="鐢佃〃鍦板潃" min-width="130" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="accountId" label="寮�鎴峰彿" min-width="100" align="center" show-overflow-tooltip></el-table-column>
+ <el-table-column label="寮�鎴风姸鎬�" min-width="100" align="center">
+ <template slot-scope="{ row }">
+ <span :class="row.accountStatus === 1 ? 'green' : 'red'">{{ formatAccountStatus(row.accountStatus) }}</span>
+ </template>
+ </el-table-column>
<el-table-column prop="roomNames" label="缁戝畾鎴块棿" min-width="160" align="center" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="paramName" label="鐢佃〃鍙傛暟鍚�" min-width="140" align="center" show-overflow-tooltip>
+ <template slot-scope="{ row }">{{ row.paramName || '-' }}</template>
+ </el-table-column>
+ <el-table-column label="鐢佃〃鍊嶇巼" min-width="100" align="center">
+ <template slot-scope="{ row }">{{ formatRate(row.rate) }}</template>
+ </el-table-column>
<el-table-column prop="balanceBattery" label="绱鐢ㄧ數閲�" min-width="120" align="center">
<template slot-scope="{ row }">{{ formatBattery(row.balanceBattery) }}</template>
</el-table-column>
- <el-table-column prop="balance" label="璐︽埛浣欓" min-width="100" align="center"></el-table-column>
+ <el-table-column label="璐︽埛浣欓" min-width="110" align="center">
+ <template slot-scope="{ row }">
+ <span :class="{ red: isBalanceLow(row.balance) }">{{ formatBalance(row.balance) }}</span>
+ </template>
+ </el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="160" align="center"></el-table-column>
<el-table-column label="鍦ㄧ嚎鐘舵��" min-width="90" align="center">
<template slot-scope="{ row }">
@@ -50,9 +65,16 @@
<span v-else>-</span>
</template>
</el-table-column>
- <el-table-column label="棰勮鎯呭喌" min-width="160" align="center" show-overflow-tooltip>
+ <el-table-column label="棰勮鎯呭喌" min-width="200" align="center">
<template slot-scope="{ row }">
- <span class="red">{{ row.warnTypeName || row.warnType || '-' }}</span>
+ <template v-if="warnTypeLabels(row).length">
+ <span
+ v-for="(label, index) in warnTypeLabels(row)"
+ :key="index"
+ class="warn-tag"
+ >{{ label }}</span>
+ </template>
+ <span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="鎿嶄綔" align="center" min-width="220" fixed="right">
@@ -135,6 +157,32 @@
if (!val) return '-'
return String(val).indexOf('kwh') >= 0 || String(val).indexOf('kWh') >= 0 ? val : val + 'kwh'
},
+ formatRate (val) {
+ if (val === null || val === undefined || val === '') return '-'
+ const n = Number(val)
+ return isNaN(n) ? val : n.toFixed(2)
+ },
+ formatBalance (val) {
+ if (val === null || val === undefined || val === '') return '-'
+ const n = Number(val)
+ if (isNaN(n)) return val
+ return `${n.toFixed(2)}鍏僠
+ },
+ isBalanceLow (val) {
+ if (val === null || val === undefined || val === '') return false
+ const n = Number(val)
+ return !isNaN(n) && n <= 0
+ },
+ warnTypeLabels (row) {
+ const text = row.warnTypeName || row.warnType || ''
+ if (!text) return []
+ return text.split(',').map(item => item.trim()).filter(Boolean)
+ },
+ formatAccountStatus (val) {
+ if (val === 1 || val === '1') return '宸插紑鎴�'
+ if (val === 0 || val === '0') return '鏈紑鎴�'
+ return val == null || val === '' ? '-' : '鏈紑鎴�'
+ },
handleSync () {
this.$dialog.actionConfirm('纭浠庝笁鏂瑰钩鍙板悓姝ュ叏閮ㄧ數琛ㄦ暟鎹悧锛�', '鍚屾鐢佃〃')
.then(() => {
@@ -162,4 +210,15 @@
<style scoped>
.green { color: #67c23a; }
.red { color: #f56c6c; }
+.warn-tag {
+ display: inline-block;
+ color: #f56c6c;
+ border: 1px solid #f56c6c;
+ border-radius: 4px;
+ padding: 0 6px;
+ margin: 2px;
+ font-size: 12px;
+ line-height: 20px;
+ white-space: nowrap;
+}
</style>
--
Gitblit v1.9.3