场景模型测试工具
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.
 
 
 
 
 
scmy/psdc-ui/src/views/bigview/index.vue

1109 lines
32 KiB

<template>
<div class="home">
<div class="header">
<h2>电能替代分布式控制试验平台</h2>
<router-link :to="{path:'/control/manual'}" tag="div" class="back"><el-icon><HomeFilled /></el-icon></router-link>
</div>
<div class="main">
<div class="left">
<div class="left_top bgimg">
<div class="title">电磁锅炉</div>
<div class="info_box">
<div class="dev_img">
<img src="../../assets/images/dcgl.png" alt="">
</div>
<div class="dev_data">
<p>当前状态<span :class="{'green':dcglRunStatus === '开启','red':dcglRunStatus === '关闭'}">{{ dcglRunStatus }}</span></p>
<p>进水温度<span class="enter_t"><span>{{ dcglThermometerValueIn }}</span></span></p>
<p>出水温度<span class="leave_t"><span>{{ dcglThermometerValueOut }}</span></span></p>
<p>今日能耗<span class="today_tce"><span>{{ dcglTodayUseEnergy }}</span>kWh</span></p>
</div>
</div>
<div class="chart_box">
<div class="dev_chart" id="dcglChart"></div>
</div>
</div>
<div class="left_bottom bgimg">
<div class="title">蓄热锅炉</div>
<div class="info_box">
<div class="dev_img">
<img src="../../assets/images/蓄热锅炉.png" alt="">
</div>
<div class="dev_data">
<p>当前状态<span :class="{'green':xrglRunStatus === '开启','red':xrglRunStatus === '关闭'}">{{ xrglRunStatus }}</span></p>
<p>进水温度<span class="enter_t"><span>{{ xrglThermometerValueIn }}</span></span></p>
<p>出水温度<span class="leave_t"><span>{{ xrglThermometerValueOut }}</span></span></p>
<p>今日能耗<span class="today_tce"><span>{{ xrglTodayUseEnergy }}</span>kWh</span></p>
</div>
</div>
<div class="chart_box">
<div class="dev_chart" id="xrglChart"></div>
</div>
</div>
</div>
<div class="middle">
<div class="middle_top">
<div class="now_power">
<div class="data"><span class="screenNumber">{{ nowPower }}</span>kW</div>
<div class="bg_img"></div>
<div class="txt">当前功率</div>
</div>
<div class="my3D_img">
<img src="../../assets/images/3Dimg.png" alt="">
</div>
<div class="now_ele">
<div class="data"><span class="screenNumber">{{ nowEle }}</span>kWh</div>
<div class="bg_img"></div>
<div class="txt">总用电量</div>
</div>
</div>
<div class="middle_bottom">
<div class="chart_box2 bgimg">
<div class="title">当前功率</div>
<div class="nowPower_chart" id="dqglChart"></div>
</div>
<div class="wendu_box">
<div class="item" v-for="item in wdcgqArr" :key="item.deviceId">
<div class="dev_name">{{ item.deviceName }}</div>
<div class="line"></div>
<div class="data"><span class="screenNumber">{{ item.deviceTemp}}</span>℃</div>
</div>
</div>
</div>
</div>
<div class="right">
<div class="right_top bgimg">
<div class="title">空气源热泵</div>
<div class="info_box">
<div class="dev_img">
<img src="../../assets/images/空气源热泵.png" alt="">
</div>
<div class="dev_data">
<p>当前状态:<span :class="{'green':kqyrbRunStatus === '开启','red':kqyrbRunStatus === '关闭'}">{{ kqyrbRunStatus }}</span></p>
<p>进水温度:<span class="enter_t"><span>{{ kqyrbThermometerValueIn }}</span>℃</span></p>
<p>出水温度:<span class="leave_t"><span>{{ kqyrbThermometerValueOut }}</span>℃</span></p>
<p>今日能耗:<span class="today_tce"><span>{{ kqyrbTodayUseEnergy }}</span>kWh</span></p>
</div>
</div>
<div class="chart_box">
<div class="dev_chart" id="kqyrbChart"></div>
</div>
</div>
<div class="right_bottom bgimg">
<div class="title">发热电缆</div>
<div class="info_box">
<div class="dev_img">
<img src="../../assets/images/发热电缆.png" alt="">
</div>
<div class="dev_data">
<p>当前状态:<span :class="{'green':frdlRunStatus === '开启','red':frdlRunStatus === '关闭'}">{{ frdlRunStatus }}</span></p>
<p>当前温度:<span class="now_t"><span>{{ frdlThermometerValueNow }}</span>℃</span></p>
<p>今日能耗:<span class="today_tce"><span>{{ frdlTodayUseEnergy }}</span>kWh</span></p>
</div>
</div>
<div class="chart_box">
<div class="dev_chart" id="frdlChart"></div>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup name="Index">
import * as echarts from 'echarts'
import {HomeFilled} from '@element-plus/icons-vue'
import {ref,reactive,onMounted,onBeforeUnmount } from 'vue'
import {getTemperature,getDevicesInfo,getZdb} from '../../api/bigview/bigview'
/** 页面加载时*/
onMounted(()=>{
dcglChartFun();
kqyrbChartFun();
frdlChartFun();
getWenduFun();
getDevicesInfoFun();
xrglChartFun();
getZdbFun();
dqglChartFun()
})
/** 8个温度传感器数据*/
const wdcgqArr = ref([])
function getWenduFun(){
getTemperature("温度传感器").then((res)=>{
console.log('111',res)
for(let i = 0;i < res.data.length;i++){
if(res.data[i].deviceTemp == null){
res.data[i].deviceTemp = '--'
}
}
wdcgqArr.value = res.data
})
}
/**运行设备工作信息*/
//蓄热锅炉运行数据
const xrglRunStatus = ref('--')
const xrglThermometerValueIn = ref('--')
const xrglThermometerValueOut = ref('--')
const xrglTodayUseEnergy = ref('--')
//蓄热锅炉折线图数据
const xrglTimeList = ref([]);
const xrglTempInTodayList = ref([]);
const xrglTempOutTodayList = ref([]);
//电磁锅炉运行数据
const dcglRunStatus = ref('--')
const dcglThermometerValueIn = ref('--')
const dcglThermometerValueOut = ref('--')
const dcglTodayUseEnergy = ref('--')
//电磁锅炉折线图数据
const dcglTimeList = ref([]);
const dcglTempInTodayList = ref([]);
const dcglTempOutTodayList = ref([]);
//空气源热泵运行数据
const kqyrbRunStatus = ref('--')
const kqyrbThermometerValueIn = ref('--')
const kqyrbThermometerValueOut = ref('--')
const kqyrbTodayUseEnergy = ref('--')
//空气源热泵折线图数据
const kqyrbTimeList = ref([]);
const kqyrbTempInTodayList = ref([]);
const kqyrbTempOutTodayList = ref([]);
//发热电缆运行数据
const frdlRunStatus = ref('--')
const frdlThermometerValueNow = ref('--')
const frdlTodayUseEnergy = ref('--')
//发热电缆折线图数据
const frdlTimeList = ref([]);
const frdlTempTodayList = ref([]);
function getDevicesInfoFun(){
getDevicesInfo().then((res)=>{
for(let i = 0;i < res.data.length;i++){
if(res.data[i].deviceId == 2){
// console.log('蓄热锅炉')
if(res.data[i].deviceRunStatus == 1){
xrglRunStatus.value = '开启'
}else{
xrglRunStatus.value = '关闭'
}
xrglThermometerValueIn.value = res.data[i].thermometerValueIn;
xrglThermometerValueOut.value = res.data[i].thermometerValueOut;
xrglTodayUseEnergy.value = res.data[i].todayUseEnergy;
xrglTimeList.value = res.data[i].timeList;
xrglTempInTodayList.value = res.data[i].tempInTodayList;
xrglTempOutTodayList.value = res.data[i].tempOutTodayList;
xrglChartFun();
}
if(res.data[i].deviceId == 1){
// console.log('电磁锅炉')
if(res.data[i].deviceRunStatus == 1){
dcglRunStatus.value = '开启'
}else{
dcglRunStatus.value = '关闭'
}
dcglThermometerValueIn.value = res.data[i].thermometerValueIn;
dcglThermometerValueOut.value = res.data[i].thermometerValueOut;
dcglTodayUseEnergy.value = res.data[i].todayUseEnergy;
dcglTimeList.value = res.data[i].timeList;
dcglTempInTodayList.value = res.data[i].tempInTodayList;
dcglTempOutTodayList.value = res.data[i].tempOutTodayList;
dcglChartFun();
}
if(res.data[i].deviceId == 3){
// console.log('空气源热泵')
if(res.data[i].deviceRunStatus == 1){
kqyrbRunStatus.value = '开启'
}else{
kqyrbRunStatus.value = '关闭'
}
kqyrbThermometerValueIn.value = res.data[i].thermometerValueIn;
kqyrbThermometerValueOut.value = res.data[i].thermometerValueOut;
kqyrbTodayUseEnergy.value = res.data[i].todayUseEnergy;
kqyrbTimeList.value = res.data[i].timeList;
kqyrbTempInTodayList.value = res.data[i].tempInTodayList;
kqyrbTempOutTodayList.value = res.data[i].tempOutTodayList;
kqyrbChartFun();
}
if(res.data[i].deviceId == 4){
// console.log('发热电缆')
if(res.data[i].deviceRunStatus == 1){
frdlRunStatus.value = '开启'
}else{
frdlRunStatus.value = '关闭'
}
frdlThermometerValueNow.value = res.data[i].thermometerValue;
frdlTodayUseEnergy.value = res.data[i].todayUseEnergy;
frdlTimeList.value = res.data[i].timeList;
frdlTempTodayList.value = res.data[i].tempTodayList;
frdlChartFun();
}
}
})
}
let dcglChart;
let xrglChart;
let kqyrbChart;
let frdlChart;
function dcglChartFun(){
const chartDom = document.getElementById('dcglChart')
dcglChart = echarts.init(chartDom);
const option = {
legend: {
data: ["进水温度","出水温度"],
// selectedMode: 'single',
textStyle: {
color: "#b6bee7"
}
},
tooltip: {
trigger: "axis",
formatter: function(params) {
var result = params[0].name + '<br>'; // 获取横轴数据项名称
for (var i = 0; i < params.length; i++) {
var seriesName = params[i].seriesName; // 获取系列名称
var value = params[i].value; // 获取数据值
// result += seriesName + ': ' + '<strong>'+value+'</strong>' + '℃<br>'; // 拼接字符串
if (i === 0) { // 第一个系列名称设置为蓝色
result += '<span>' + '<span style="color: #128dff">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>℃<br>';
} else if (i === 1) { // 第二个系列名称设置为黄色
result += '<span>' + '<span style="color: #F5901A">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>℃<br>';
} else { // 其他系列名称使用默认颜色
result += seriesName + ': ' + value + ' m/s<br>';
}
}
return result;
},
// borderColor: '#00fcff',
borderWidth: 1
},
grid:{
show: true,
top: '20%',
bottom:'15%',
left:'10%',
right:'3%',
borderWidth: 0,
borderColor: '#767da1',
},
xAxis: {
type: 'category',
data: dcglTimeList.value,
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
axisLine: {
lineStyle: {
color: '#767da1' // 设置x轴的线条颜色
}
},
axisTick: {
show: true // 去掉x轴刻度
},
splitArea: {
show: false,
interval:0,
areaStyle: {
color: ['rgb(54,68,148,.8)', 'rgb(37,51,133,.8)'] //这里重点,用于设置颜色的数组,
//(有了这个属性,那我们完全可以自己在根据某些条件来生成这样一个数组)
}
}
},
yAxis: {
type: 'value',
name:'℃',
nameTextStyle: {
color: "#b6bee7",
nameLocation: "start"
},
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
splitLine: {
show: true,
lineStyle: {color: "#767da1", type: "dashed"} //dashed
} //s是否显示为虚线的条纹背景
},
series: [
{
name: "进水温度",
data: dcglTempInTodayList.value,
type: 'line',
smooth: true,
symbol: "none", //去掉圆点
itemStyle: { //线条颜色
color: '#128dff',
}
},
{
name: "出水温度",
data: dcglTempOutTodayList.value,
type: 'line',
smooth: true,
symbol: "none", //去掉圆点
itemStyle: { //线条颜色
color: '#F5901A',
}
}
]
};
option && dcglChart.setOption(option);
};
function xrglChartFun(){
const chartDom = document.getElementById('xrglChart')
xrglChart = echarts.init(chartDom);
const option = {
legend: {
data: ["进水温度","出水温度"],
// selectedMode: 'single',
textStyle: {
color: "#b6bee7"
}
},
tooltip: {
trigger: "axis",
formatter: function(params) {
var result = params[0].name + '<br>'; // 获取横轴数据项名称
for (var i = 0; i < params.length; i++) {
var seriesName = params[i].seriesName; // 获取系列名称
var value = params[i].value; // 获取数据值
// result += seriesName + ': ' + '<strong>'+value+'</strong>' + '℃<br>'; // 拼接字符串
if (i === 0) { // 第一个系列名称设置为蓝色
result += '<span>' + '<span style="color: #128dff">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>℃<br>';
} else if (i === 1) { // 第二个系列名称设置为黄色
result += '<span>' + '<span style="color: #F5901A">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>℃<br>';
} else { // 其他系列名称使用默认颜色
result += seriesName + ': ' + value + ' m/s<br>';
}
}
return result;
},
// borderColor: '#00fcff',
borderWidth: 1
},
grid:{
show: true,
top: '20%',
bottom:'15%',
left:'10%',
right:'3%',
borderWidth: 0,
borderColor: '#767da1',
},
xAxis: {
type: 'category',
data: xrglTimeList.value,
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
axisLine: {
lineStyle: {
color: '#767da1' // 设置x轴的线条颜色
}
},
axisTick: {
show: true // 去掉x轴刻度
},
splitArea: {
show: false,
interval:0,
areaStyle: {
color: ['rgb(54,68,148,.8)', 'rgb(37,51,133,.8)'] //这里重点,用于设置颜色的数组,
//(有了这个属性,那我们完全可以自己在根据某些条件来生成这样一个数组)
}
}
},
yAxis: {
type: 'value',
name:'℃',
nameTextStyle: {
color: "#b6bee7",
nameLocation: "start"
},
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
splitLine: {
show: true,
lineStyle: {color: "#767da1", type: "dashed"} //dashed
} //s是否显示为虚线的条纹背景
},
series: [
{
name: "进水温度",
data: xrglTempInTodayList.value,
type: 'line',
smooth: true,
symbol: "none", //去掉圆点
itemStyle: { //线条颜色
color: '#128dff',
}
},
{
name: "出水温度",
data: xrglTempOutTodayList.value,
type: 'line',
smooth: true,
symbol: "none", //去掉圆点
itemStyle: { //线条颜色
color: '#F5901A',
}
}
]
};
option && xrglChart.setOption(option);
};
function kqyrbChartFun(){
const chartDom = document.getElementById('kqyrbChart')
kqyrbChart = echarts.init(chartDom);
const option = {
legend: {
data: ["进水温度","出水温度"],
// selectedMode: 'single',
textStyle: {
color: "#b6bee7"
}
},
tooltip: {
trigger: "axis",
formatter: function(params) {
var result = params[0].name + '<br>'; // 获取横轴数据项名称
for (var i = 0; i < params.length; i++) {
var seriesName = params[i].seriesName; // 获取系列名称
var value = params[i].value; // 获取数据值
// result += seriesName + ': ' + '<strong>'+value+'</strong>' + '℃<br>'; // 拼接字符串
if (i === 0) { // 第一个系列名称设置为蓝色
result += '<span>' + '<span style="color: #128dff">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>℃<br>';
} else if (i === 1) { // 第二个系列名称设置为黄色
result += '<span>' + '<span style="color: #F5901A">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>℃<br>';
} else { // 其他系列名称使用默认颜色
result += seriesName + ': ' + value + ' m/s<br>';
}
}
return result;
},
// borderColor: '#00fcff',
borderWidth: 1
},
grid:{
show: true,
top: '20%',
bottom:'15%',
left:'10%',
right:'3%',
borderWidth: 0,
borderColor: '#767da1',
},
xAxis: {
type: 'category',
data: kqyrbTimeList.value,
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
axisLine: {
lineStyle: {
color: '#767da1' // 设置x轴的线条颜色
}
},
axisTick: {
show: true // 去掉x轴刻度
},
splitArea: {
show: false,
interval:0,
areaStyle: {
color: ['rgb(54,68,148,.8)', 'rgb(37,51,133,.8)'] //这里重点,用于设置颜色的数组,
//(有了这个属性,那我们完全可以自己在根据某些条件来生成这样一个数组)
}
}
},
yAxis: {
type: 'value',
name:'℃',
nameTextStyle: {
color: "#b6bee7",
nameLocation: "start"
},
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
splitLine: {
show: true,
lineStyle: {color: "#767da1", type: "dashed"} //dashed
} //s是否显示为虚线的条纹背景
},
series: [
{
name: "进水温度",
data: kqyrbTempInTodayList.value,
type: 'line',
smooth: true,
symbol: "none", //去掉圆点
itemStyle: { //线条颜色
color: '#128dff',
}
},
{
name: "出水温度",
data: kqyrbTempOutTodayList.value,
type: 'line',
smooth: true,
symbol: "none", //去掉圆点
itemStyle: { //线条颜色
color: '#F5901A',
}
}
]
};
option && kqyrbChart.setOption(option);
};
function frdlChartFun(){
const chartDom = document.getElementById('frdlChart')
frdlChart = echarts.init(chartDom);
const option = {
legend: {
data: ["当前温度"],
// selectedMode: 'single',
textStyle: {
color: "#b6bee7"
}
},
tooltip: {
trigger: "axis",
formatter: function(params) {
var result = params[0].name + '<br>'; // 获取横轴数据项名称
for (var i = 0; i < params.length; i++) {
var seriesName = params[i].seriesName; // 获取系列名称
var value = params[i].value; // 获取数据值
// result += seriesName + ': ' + '<strong>'+value+'</strong>' + '℃<br>'; // 拼接字符串
if (i === 0) { // 第一个系列名称设置为蓝色
result += '<span>' + '<span style="color: #128dff">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>℃<br>';
} else if (i === 1) { // 第二个系列名称设置为黄色
result += '<span>' + '<span style="color: #F5901A">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>℃<br>';
} else { // 其他系列名称使用默认颜色
result += seriesName + ': ' + value + ' m/s<br>';
}
}
return result;
},
// borderColor: '#00fcff',
borderWidth: 1
},
grid:{
show: true,
top: '20%',
bottom:'15%',
left:'10%',
right:'3%',
borderWidth: 0,
borderColor: '#767da1',
},
xAxis: {
type: 'category',
data: frdlTimeList.value,
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
axisLine: {
lineStyle: {
color: '#767da1' // 设置x轴的线条颜色
}
},
axisTick: {
show: true // 去掉x轴刻度
},
splitArea: {
show: false,
interval:0,
areaStyle: {
color: ['rgb(54,68,148,.8)', 'rgb(37,51,133,.8)'] //这里重点,用于设置颜色的数组,
//(有了这个属性,那我们完全可以自己在根据某些条件来生成这样一个数组)
}
}
},
yAxis: {
type: 'value',
name:'℃',
nameTextStyle: {
color: "#b6bee7",
nameLocation: "start"
},
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
splitLine: {
show: true,
lineStyle: {color: "#767da1", type: "dashed"} //dashed
} //s是否显示为虚线的条纹背景
},
series: [
{
name: "当前温度",
data: frdlTempTodayList.value,
type: 'line',
smooth: true,
symbol: "none", //去掉圆点
itemStyle: { //线条颜色
color: '#128dff',
}
}
]
};
option && frdlChart.setOption(option);
};
/**总电表信息*/
const nowPower = ref('--')
const nowEle = ref('--')
const todayUsePowersArr = [];
function getZdbFun(){
getZdb(13).then((res)=>{
console.log(res.data)
nowPower.value = res.data.totp;
nowEle.value = res.data.totwh;
delete res.data.todayUsePowers.userId
delete res.data.todayUsePowers.deviceId
delete res.data.todayUsePowers.samDate
for(let i in res.data.todayUsePowers){
todayUsePowersArr.push(res.data.todayUsePowers[i])
}
dqglChartFun()
})
}
let dqglChart;
function dqglChartFun(){
const chartDom = document.getElementById('dqglChart')
dqglChart = echarts.init(chartDom);
const option = {
legend: {
data: ["当前功率"],
// selectedMode: 'single',
textStyle: {
color: "#b6bee7"
}
},
tooltip: {
trigger: "axis",
// formatter: "{b0}: {c0}kW",
formatter: function(params) {
var result = params[0].name + '<br>'; // 获取横轴数据项名称
for (var i = 0; i < params.length; i++) {
var seriesName = params[i].seriesName; // 获取系列名称
var value = params[i].value; // 获取数据值
result += '<span>' + '<span style="color: #128dff">'+seriesName+'</span>' + '&nbsp;&nbsp;&nbsp;&nbsp;' + '<strong>'+value+'</strong>' + '</span>kW<br>';
}
return result;
},
// borderColor: '#00fcff',
borderWidth: 1
},
grid:{
show: true,
top: '20%',
bottom:'15%',
left:'10%',
right:'3%',
borderWidth: 0,
borderColor: '#767da1',
},
xAxis: {
type: 'category',
data: ["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",],
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
axisLine: {
lineStyle: {
color: '#767da1' // 设置x轴的线条颜色
}
},
axisTick: {
show: true // 去掉x轴刻度
},
splitArea: {
show: false,
interval:0,
areaStyle: {
color: ['rgb(54,68,148,.8)', 'rgb(37,51,133,.8)'] //这里重点,用于设置颜色的数组,
//(有了这个属性,那我们完全可以自己在根据某些条件来生成这样一个数组)
}
}
},
yAxis: {
type: 'value',
name:'kW',
nameTextStyle: {
color: "#b6bee7",
nameLocation: "start"
},
axisLabel: {
textStyle: {
color: "#b6bee7"
}
},
splitLine: {
show: true,
lineStyle: {color: "#767da1", type: "dashed"} //dashed
} //是否显示为虚线的条纹
},
series: [
{
name: "当前功率",
data: todayUsePowersArr,
type: 'line',
smooth: true,
symbol: "none", //去掉圆点
itemStyle: { //线条颜色
color: '#128dff',
}
}
]
};
option && dqglChart.setOption(option);
};
/** 页面销毁时*/
onBeforeUnmount(() => {
if(dcglChart) {
dcglChart.dispose(); // 销毁实例,防止内存泄漏}
if (xrglChart) {
xrglChart.dispose();
}
if (kqyrbChart) {
kqyrbChart.dispose();
}
if (frdlChart) {
frdlChart.dispose();
}
if (dqglChart) {
dqglChart.dispose();
}
}
});
</script>
<style scoped lang="scss">
@import "@/assets/font/stylesheet.css";
.home{
height: 100%;
background-image: url("../../assets/images/bg.png");
background-size: 100% 100%;
.header{
position: relative;
width: 100%;
height: 70px;
background-image: url("../../assets/images/headtitle.png");
background-size: 100% 100%;
h2{
font-size: 36px;
color: #AFEAFF;
font-weight: bold;
text-align: center;
line-height: 70px;
}
.back{
position: absolute;
top: 0px;
right: 30px;
font-size: 16px;
color: #fff;
padding: 9px 15px;
border: 1px solid #dddddd00;
&:hover{
border: 1px solid #dddddd70;
}
}
}
.main{
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
padding: 0 20px 20px 20px;
width: 100%;
height: calc(100% - 70px);
.left{
width: 24%;
height: 100%;
.left_top{
width: 100%;
height: 49%;
margin-bottom: 4%;
}
.left_bottom{
width: 100%;
height: 49%;
}
}
.middle{
display: flex;
flex-direction: column;
width: 50.5%;
height: 100%;
.middle_top{
position: relative;
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
flex: 2;
width: 100%;
height: 67%;
padding-bottom: 20px;
.now_power{
position: absolute;
bottom: 20px;
left: 20px;
width: 112px;
height: 110px;
.data{
color: #F5901A;
font-size: 24px;
font-weight: bold;
text-align: center;
}
.bg_img{
width: 112px;
height: 62px;
background-image: url("../../assets/images/footer.png");
background-size: 100% 100%;
margin-top: -10px;
}
.txt{
color: #1AC4F5;
font-size: 15px;
font-weight: bold;
line-height: 30px;
text-align: center;
}
}
.now_ele{
position: absolute;
bottom: 20px;
right: 20px;
width: 112px;
height: 110px;
.data{
color: #128DFF;
font-size: 24px;
font-weight: bold;
text-align: center;
}
.bg_img{
width: 112px;
height: 62px;
background-image: url("../../assets/images/footer.png");
background-size: 100% 100%;
margin-top: -10px;
}
.txt{
color: #1AC4F5;
font-size: 15px;
font-weight: bold;
line-height: 30px;
text-align: center;
}
}
.my3D_img{
width: 100%;
height: 100%;
padding: 20px 70px 0 70px;
img{
width: 100%;
height: 100%;
opacity: .85;
}
}
}
.middle_bottom{
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
height: 33%;
width: 100%;
.chart_box2{
width: 49.5%;
height: 100%;
.nowPower_chart{
width: 100%;
height: 81%;
}
}
.wendu_box{
display: flex;
justify-content: space-between;
flex-wrap: wrap;
width: 49%;
height: 100%;
.item{
width: 24%;
height: 48.5%;
padding: 0 10px;
border: 1px solid #1085B6;
&:first-child{
margin-bottom: 8px;
}
.dev_name{
color: #19C3F4;
font-size: 14px;
text-align: center;
line-height: 50px;
}
.line{
width: 100%;
height: 1px;
background-image: url("../../assets/images/line.png");
background-size: 100% 100%;
}
.data{
color: #F5901A;
font-size: 26px;
font-weight: bold;
line-height: 80px;
text-align: center;
}
}
}
}
}
.right{
width: 24%;
height: 100%;
.right_top{
display: flex;
flex-direction: column;
width: 100%;
height: 49%;
margin-bottom: 4%;
}
.right_bottom{
width: 100%;
height: 49%;
}
}
}
}
.title{
width: 45%;
height: 30px;
line-height: 30px;
margin: 0 auto 20px auto;
color: #19C3F4;
font-size: 18px;
font-weight: bold;
text-align: center;
background-image: url("../../assets/images/wrappertitle.png");
background-size: 100% 100%;
}
.info_box{
display: flex;
width: 100%;
height: 44%;
padding: 10px;
.dev_img{
width: 50%;
height: 100%;
//border: 1px solid #fff;
img{
width: 100%;
height: 100%;
}
}
.dev_data{
width: 50%;
height: 100%;
//border: 1px solid #fff;
margin-left: 10px;
p{
font-size: 16px;
line-height: 40px;
color: #f3ffff;
}
.green{
color: #14FF00;
}
.red{
color: red;
}
.enter_t{
color: #F5901A;
}
.leave_t{
color: #F5901A;
}
.today_tce{
color: #128DFF;
}
.now_t{
color: #F5901A;
}
}
}
.chart_box{
width: 100%;
height: 44%;
padding: 10px 10px 10px 10px;
.dev_chart{
width: 100%;
height: 100%;
//border: 1px solid #fff;
}
}
.bgimg{
background-image: url("../../assets/images/wrapperbox.png");
background-size: 100% 100%;
//background-color: rgba(32,237,255,.1);
}
.screenNumber{
font-family: 'ds-digitalnormal';
}
</style>