| | |
| | | <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 }"> |
| | |
| | | <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"> |
| | |
| | | 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(() => { |
| | |
| | | <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> |