Files
emsfront/src/views/ems/dzjk/sbjk/db/index.vue

149 lines
4.0 KiB
Vue
Raw Normal View History

<template>
2025-08-15 14:13:54 +08:00
<div v-loading="loading">
<el-card
shadow="always"
class="common-card-container"
2025-09-10 09:54:29 +08:00
:class="{
'zb-common-card-container':zbInfo.emsCommunicationStatus && zbInfo.emsCommunicationStatus !== '0',
'cnb-common-card-container':zbInfo.emsCommunicationStatus === '0'
}"
2025-08-15 14:13:54 +08:00
>
<div slot="header">
<span class="large-title">1#{{ zbInfo.deviceName }}</span>
<div class="status">
<div>
{{
$store.state.ems.communicationStatusOptions[
zbInfo.emsCommunicationStatus
]
}}
</div>
2025-08-15 14:13:54 +08:00
<div>数据更新时间{{ zbInfo.dataUpdateTime }}</div>
</div>
</div>
<el-table
class="common-table"
:data="zbInfo.loadDataDetailInfo"
stripe
style="width: 100%"
>
<el-table-column prop="category" label="类别"> </el-table-column>
<el-table-column prop="totalKwh" label="总/kWh"> </el-table-column>
<el-table-column prop="peakKwh" label="尖/kWh"> </el-table-column>
<el-table-column prop="highKwh" label="峰/kWh"> </el-table-column>
<el-table-column prop="flatKwh" label="平/kWh"> </el-table-column>
<el-table-column prop="valleyKwh" label="谷/kWh"> </el-table-column>
</el-table>
</el-card>
<el-card
shadow="always"
class="common-card-container"
style="margin-top: 20px"
2025-09-10 09:54:29 +08:00
:class="{
'zb-common-card-container':zbInfo.emsCommunicationStatus && zbInfo.emsCommunicationStatus !== '0',
'cnb-common-card-container':zbInfo.emsCommunicationStatus === '0'
}"
2025-08-15 14:13:54 +08:00
>
<div slot="header">
<span class="large-title">2#{{ cnbInfo.deviceName }}</span>
<div class="status">
<div>
{{
$store.state.ems.communicationStatusOptions[
cnbInfo.emsCommunicationStatus
]
}}
</div>
2025-08-15 14:13:54 +08:00
<div>数据更新时间{{ cnbInfo.dataUpdateTime }}</div>
</div>
</div>
2025-08-15 14:13:54 +08:00
<el-table
class="common-table"
:data="cnbInfo.meteDataDetailInfo"
stripe
style="width: 100%"
>
<el-table-column prop="category" label="类别"> </el-table-column>
<el-table-column prop="activePower" label="有功功率"> </el-table-column>
<el-table-column prop="reactivePower" label="无功功率">
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
2025-06-30 17:32:04 +08:00
import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
2025-08-15 14:13:54 +08:00
import { getAmmeterDataList } from "@/api/ems/dzjk";
2025-09-10 09:54:29 +08:00
import intervalUpdate from "@/mixins/ems/intervalUpdate";
export default {
2025-08-15 14:13:54 +08:00
name: "DzjkSbjkDb",
2025-09-10 09:54:29 +08:00
mixins: [getQuerySiteId,intervalUpdate],
data() {
return {
2025-08-15 14:13:54 +08:00
loading: false,
zbInfo: {},
cnbInfo: {},
};
},
2025-08-15 14:13:54 +08:00
methods: {
2025-09-10 09:54:29 +08:00
updateData(){
2025-08-15 14:13:54 +08:00
this.loading = true;
getAmmeterDataList(this.siteId)
2025-09-10 09:54:29 +08:00
.then((response) => {
this.zbInfo = JSON.parse(
JSON.stringify(response?.data?.ammeterLoadData || {})
);
this.cnbInfo = JSON.parse(
JSON.stringify(response?.data?.ammeterMeteData || {})
);
})
.finally(() => {
this.loading = false;
});
},
init() {
this.updateData()
this.updateInterval(this.updateData)
2025-08-15 14:13:54 +08:00
},
},
2025-08-15 14:13:54 +08:00
mounted() {},
};
</script>
<style scoped lang="scss">
2025-09-10 09:54:29 +08:00
.common-card-container {
2025-08-15 14:13:54 +08:00
::v-deep {
.el-card__header {
2025-09-10 09:54:29 +08:00
background-color: transparent;
2025-08-15 14:13:54 +08:00
padding: 10px 14px;
color: #ffffff;
position: relative;
}
}
}
2025-09-10 09:54:29 +08:00
.zb-common-card-container{
::v-deep {
.el-card__header {
background-color: #fc6b69;
}
}
}
2025-08-15 14:13:54 +08:00
.cnb-common-card-container {
::v-deep {
.el-card__header {
background-color: #05aea3;
}
}
}
2025-08-15 14:13:54 +08:00
.status {
position: absolute;
2025-08-15 14:13:54 +08:00
right: 14px;
top: 50%;
transform: translateY(-50%);
color: #ffffff;
font-size: 12px;
line-height: 20px;
}
</style>