You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
560 lines
12 KiB
560 lines
12 KiB
<template>
|
|
<div class="app-container home">
|
|
<div class="top">
|
|
<div class="card">
|
|
<div><img src="../../../assets/images/用电量.png"></div>
|
|
<div>
|
|
<p>总用电量</p>
|
|
<h2>{{data.totwh}}kWh</h2>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div><img src="../../../assets/images/功率.png"></div>
|
|
<div>
|
|
<p>当前功率</p>
|
|
<h2>{{data.totp}}kW</h2>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div><img src="../../../assets/images/温度.png"></div>
|
|
<div>
|
|
<div style="display: flex; margin-bottom: 5px">
|
|
<p>进水温度:</p>
|
|
<h2>{{data.tempIn}}℃</h2>
|
|
</div>
|
|
<div style="display: flex">
|
|
<p>出水温度:</p>
|
|
<h2>{{data.tempOut}}℃</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div><img src="../../../assets/images/温度传感器.png"></div>
|
|
<div>
|
|
<p>运行状态</p>
|
|
<h2 style="color: #1ab394">{{data.runStatus}}</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="bottom">
|
|
<div class="bottom1">
|
|
<div class="bottom1-1">
|
|
日用电量
|
|
</div>
|
|
<div id="myEcharts" style="width: 100%; height: 86.7%"></div>
|
|
</div>
|
|
<div class="bottom1">
|
|
<div class="bottom1-1">
|
|
月用电量
|
|
</div>
|
|
<div id="myEcharts2" style="width: 100%; height: 86.7%"></div>
|
|
</div>
|
|
<div class="bottom1">
|
|
<div class="bottom1-1">
|
|
当前功率
|
|
</div>
|
|
<div id="myEcharts3" style="width: 100%; height: 86.7%"></div>
|
|
</div>
|
|
<div class="bottom1">
|
|
<div class="bottom1-1">
|
|
当前温度
|
|
</div>
|
|
<div id="myEcharts4" style="width: 100%; height: 86.7%"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script name="Index">
|
|
import {getDrgl, getDcgl} from '../../../api/emonitor/api'
|
|
import {onMounted, reactive} from "vue";
|
|
import * as echarts from 'echarts';
|
|
export default {
|
|
name: "drgl",
|
|
setup() {
|
|
let data = reactive({
|
|
totwh:'',
|
|
totp:'',
|
|
tempIn:'',
|
|
tempOut:'',
|
|
//1 开 2 关
|
|
runStatus:'',
|
|
glData:[],
|
|
glXz:[
|
|
"00:00",
|
|
"00:15",
|
|
"00:30",
|
|
"00:45",
|
|
"01:00",
|
|
"01:15",
|
|
"01:30",
|
|
"01:45",
|
|
"02:00",
|
|
"02:15",
|
|
"02:30",
|
|
"02:45",
|
|
"03:00",
|
|
"03:15",
|
|
"03:30",
|
|
"03:45",
|
|
"04:00",
|
|
"04:15",
|
|
"04:30",
|
|
"04:45",
|
|
"05:00",
|
|
"05:15",
|
|
"05:30",
|
|
"05:45",
|
|
"06:00",
|
|
"06:15",
|
|
"06:30",
|
|
"06:45",
|
|
"07:00",
|
|
"07:15",
|
|
"07:30",
|
|
"07:45",
|
|
"08:00",
|
|
"08:15",
|
|
"08:30",
|
|
"08:45",
|
|
"09:00",
|
|
"09:15",
|
|
"09:30",
|
|
"09:45",
|
|
"10:00",
|
|
"10:15",
|
|
"10:30",
|
|
"10:45",
|
|
"11:00",
|
|
"11:15",
|
|
"11:30",
|
|
"11:45",
|
|
"12:00",
|
|
"12:15",
|
|
"12:30",
|
|
"12:45",
|
|
"13:00",
|
|
"13:15",
|
|
"13:30",
|
|
"13:45",
|
|
"14:00",
|
|
"14:15",
|
|
"14:30",
|
|
"14:45",
|
|
"15:00",
|
|
"15:15",
|
|
"15:30",
|
|
"15:45",
|
|
"16:00",
|
|
"16:15",
|
|
"16:30",
|
|
"16:45",
|
|
"17:00",
|
|
"17:15",
|
|
"17:30",
|
|
"17:45",
|
|
"18:00",
|
|
"18:15",
|
|
"18:30",
|
|
"18:45",
|
|
"19:00",
|
|
"19:15",
|
|
"19:30",
|
|
"19:45",
|
|
"20:00",
|
|
"20:15",
|
|
"20:30",
|
|
"20:45",
|
|
"21:00",
|
|
"21:15",
|
|
"21:30",
|
|
"21:45",
|
|
"22:00",
|
|
"22:15",
|
|
"22:30",
|
|
"22:45",
|
|
"23:00",
|
|
"23:15",
|
|
"23:30",
|
|
"23:45"
|
|
],
|
|
dayData:[],
|
|
dayXz:[],
|
|
emonthData:[],
|
|
emonthXz:[
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15,
|
|
16,
|
|
17,
|
|
18,
|
|
19,
|
|
20,
|
|
21,
|
|
22,
|
|
23,
|
|
24,
|
|
25,
|
|
26,
|
|
27,
|
|
28,
|
|
29,
|
|
30,
|
|
31],
|
|
temIn:'',
|
|
temOut:'',
|
|
time:'',
|
|
})
|
|
onMounted(() => {//需要获取到element,所以是onMounted的Hook
|
|
// getDrgl(1).then((res)=>{
|
|
// console.log(res)
|
|
// })
|
|
getDcgl(1).then((res)=>{
|
|
console.log(res)
|
|
//日用电量
|
|
let arr = []
|
|
let brr = []
|
|
for(let i in res.dcglqhour){
|
|
arr.push(res.dcglqhour[i].useElectric)
|
|
brr.push(res.dcglqhour[i].hour)
|
|
}
|
|
data.dayData=arr
|
|
data.dayXz=brr
|
|
let myChart = echarts.getInstanceByDom(document.getElementById("myEcharts"));
|
|
if (myChart){
|
|
myChart.dispose()
|
|
}
|
|
myChart = echarts.init(document.getElementById("myEcharts"));
|
|
myChart.setOption({
|
|
title: {},
|
|
tooltip: {},
|
|
textStyle:{
|
|
color:'#BEC3DA'
|
|
},
|
|
xAxis: {
|
|
data: data.dayXz,
|
|
axisLine:{
|
|
lineStyle:{
|
|
color:'#BEC3DA',
|
|
type:'dashed'
|
|
}
|
|
}
|
|
},
|
|
yAxis: {
|
|
type: 'value',
|
|
name: "kWh",
|
|
splitLine:{
|
|
show:true,
|
|
lineStyle:{
|
|
type:'dashed',
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: true,
|
|
lineStyle:{
|
|
type:'dashed',
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
},
|
|
series: [
|
|
{
|
|
name: "日用电量",
|
|
type: "bar",
|
|
data: data.dayData,
|
|
itemStyle:{
|
|
color:'#2F8EE0'
|
|
},
|
|
},
|
|
],
|
|
});
|
|
window.onresize = function () {//自适应大小
|
|
myChart.resize();
|
|
};
|
|
|
|
//月用电量
|
|
let crr = []
|
|
for(let i in res.dcglqday){
|
|
crr.push(res.dcglqday[i].useElectric)
|
|
}
|
|
data.emonthData=crr
|
|
let myChart2 = echarts.getInstanceByDom(document.getElementById("myEcharts2"));
|
|
if (myChart2){
|
|
myChart2.dispose()
|
|
}
|
|
myChart2 = echarts.init(document.getElementById("myEcharts2"));
|
|
|
|
myChart2.setOption({
|
|
title: {},
|
|
tooltip: {},
|
|
textStyle:{
|
|
color:'#BEC3DA'
|
|
},
|
|
xAxis: {
|
|
data: data.emonthXz,
|
|
axisLine:{
|
|
lineStyle:{
|
|
color:'#BEC3DA',
|
|
type:'dashed'
|
|
}
|
|
}
|
|
},
|
|
yAxis: {
|
|
type: 'value',
|
|
name: "kWh",
|
|
splitLine:{
|
|
show:true,
|
|
lineStyle:{
|
|
type:'dashed',
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: true,
|
|
lineStyle:{
|
|
type:'dashed',
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
},
|
|
series: [
|
|
{
|
|
name: "月用电量",
|
|
type: "bar",
|
|
data: data.emonthData,
|
|
itemStyle:{
|
|
color:'#2F8EE0'
|
|
},
|
|
},
|
|
],
|
|
});
|
|
window.onresize = function () {//自适应大小
|
|
myChart2.resize();
|
|
};
|
|
|
|
//进出水温度
|
|
data.time=res.times
|
|
data.temIn=res.tempIn
|
|
data.temOut=res.tempOut
|
|
|
|
let myChart4 = echarts.getInstanceByDom(document.getElementById("myEcharts4"));
|
|
if (myChart4){
|
|
myChart4.dispose()
|
|
}
|
|
myChart4 = echarts.init(document.getElementById("myEcharts4"));
|
|
myChart4.setOption({
|
|
title: {},
|
|
tooltip: {
|
|
trigger: "axis",
|
|
|
|
show: true
|
|
},
|
|
legend: {
|
|
data: ['进水', '出水'],
|
|
textStyle:{
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
textStyle:{
|
|
color:'#BEC3DA'
|
|
},
|
|
xAxis: {
|
|
data: data.time,
|
|
axisLine:{
|
|
lineStyle:{
|
|
color:'#BEC3DA',
|
|
type:'dashed'
|
|
}
|
|
}
|
|
},
|
|
yAxis: {
|
|
type: 'value',
|
|
name: "℃",
|
|
splitLine:{
|
|
show:true,
|
|
lineStyle:{
|
|
type:'dashed',
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: true,
|
|
lineStyle:{
|
|
type:'dashed',
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
},
|
|
series: [
|
|
{
|
|
name: '进水',
|
|
type: 'line',
|
|
// stack: 'Total',
|
|
itemStyle:{
|
|
color:'#2F8EE0'
|
|
},
|
|
data: data.temIn
|
|
},
|
|
{
|
|
name: '出水',
|
|
type: 'line',
|
|
// stack: 'Total',
|
|
itemStyle: { //线条颜色
|
|
color: '#F5901A',
|
|
},
|
|
data: data.temOut
|
|
},
|
|
],
|
|
});
|
|
window.onresize = function () {//自适应大小
|
|
myChart4.resize();
|
|
};
|
|
})
|
|
getDrgl(1).then((res)=>{
|
|
console.log('1',res)
|
|
if(res.data!=null){
|
|
data.tempIn=res.data.tempIn
|
|
data.tempOut=res.data.tempOut
|
|
data.totp = res.data.totp
|
|
data.totwh = res.data.totwh
|
|
if(res.data.runStatus==1){
|
|
data.runStatus = '开启'
|
|
}else if (res.data.runStatus==2){
|
|
data.runStatus = '关闭'
|
|
}
|
|
//gl
|
|
delete res.data.todayUsePowers.deviceId
|
|
delete res.data.todayUsePowers.samDate
|
|
delete res.data.todayUsePowers.userId
|
|
let arr = Object.values(res.data.todayUsePowers)
|
|
data.glData=arr
|
|
}
|
|
|
|
let myChart3 = echarts.getInstanceByDom(document.getElementById("myEcharts3"));
|
|
if (myChart3){
|
|
myChart3.dispose()
|
|
}
|
|
myChart3 = echarts.init(document.getElementById("myEcharts3"));
|
|
myChart3.setOption({
|
|
title: {},
|
|
tooltip: {
|
|
trigger: "axis",
|
|
show: true
|
|
},
|
|
textStyle:{
|
|
color:'#BEC3DA'
|
|
},
|
|
xAxis: {
|
|
data: data.glXz,
|
|
axisLine:{
|
|
lineStyle:{
|
|
color:'#BEC3DA',
|
|
type:'dashed'
|
|
}
|
|
}
|
|
},
|
|
yAxis: {
|
|
type: 'value',
|
|
name: "kW",
|
|
splitLine:{
|
|
show:true,
|
|
lineStyle:{
|
|
type:'dashed',
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: true,
|
|
lineStyle:{
|
|
type:'dashed',
|
|
color:'#BEC3DA'
|
|
}
|
|
},
|
|
},
|
|
series: [
|
|
{
|
|
name: "当前功率",
|
|
type: "line",
|
|
data: data.glData,
|
|
itemStyle:{
|
|
color:'#2F8EE0'
|
|
},
|
|
symbol: "none", //去掉拐角点
|
|
},
|
|
],
|
|
});
|
|
window.onresize = function () {//自适应大小
|
|
myChart3.resize();
|
|
};
|
|
})
|
|
|
|
|
|
});
|
|
return {
|
|
data
|
|
}
|
|
},
|
|
components: {},
|
|
mounted() {},
|
|
};
|
|
|
|
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.top{
|
|
width: 100%;
|
|
height: 110px;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
margin-bottom: 20px;
|
|
}
|
|
.card{
|
|
width: 24%;
|
|
height: 110px;
|
|
background-color: #2F3D8A;
|
|
display: flex;
|
|
justify-content: space-around;
|
|
align-items: center;
|
|
}
|
|
|
|
.bottom{
|
|
width: 100%;
|
|
height: 640px;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
}
|
|
.bottom1{
|
|
width: 49.35%;
|
|
height: 300px;
|
|
background-color: #2F3D8A;
|
|
margin-bottom: 20px;
|
|
}
|
|
p{
|
|
margin-bottom: 10px;
|
|
}
|
|
.bottom1-1{
|
|
width: 100%;
|
|
height: 13.3%;
|
|
background-color: #374590;
|
|
padding-top: 10px;
|
|
padding-left: 10px;
|
|
}
|
|
</style>
|
|
|
|
|