|
@@ -1,851 +1,231 @@
|
|
|
<template>
|
|
|
- <div class="energy-overView" :loading="loading">
|
|
|
- <!-- <commonSearch hasAreaSearch ref="commonSearch" type="nodate" @search="handleSearch"></commonSearch> -->
|
|
|
- <div class="top-container u-flex">
|
|
|
- <div class="louyu u-flex common-box">
|
|
|
- <div class="common-title">区域基本信息</div>
|
|
|
- <img src="../../../../assets/louyu.png" alt="" />
|
|
|
- <a-descriptions :column="2">
|
|
|
- <a-descriptions-item label="建筑名称">{{ energySpace.name }}</a-descriptions-item>
|
|
|
- <a-descriptions-item label="建筑面积">{{ energySpace.builtarea }} ㎡</a-descriptions-item>
|
|
|
- <a-descriptions-item label="空调面积">{{ energySpace.aircondarea }} ㎡</a-descriptions-item>
|
|
|
- <a-descriptions-item label="采暖面积">{{ energySpace.heatarea }} ㎡</a-descriptions-item>
|
|
|
- <!-- <el-descriptions-item label="用能人数">{{energySpace.}}</el-descriptions-item> -->
|
|
|
- <!-- <el-descriptions-item label="建筑年代">{{energySpace.}}</el-descriptions-item> -->
|
|
|
- <!-- <el-descriptions-item label="建筑用途">{{energySpace.}}</el-descriptions-item> -->
|
|
|
- </a-descriptions>
|
|
|
- </div>
|
|
|
- <div class="sort-top5-container common-box">
|
|
|
- <div class="common-title">当月用电量TOP5(kWh)</div>
|
|
|
- <div class="sort-top5" ref="sortTop5"></div>
|
|
|
- </div>
|
|
|
- <div class="info-total">
|
|
|
- <div class="yongdian-xuliang common-box">
|
|
|
- <div class="common-title">用电需量(kVA)</div>
|
|
|
- <div class="info-container u-flex-jaa">
|
|
|
- <div class="item-info">
|
|
|
- <div class="name">即时需量</div>
|
|
|
- <div class="value">{{ demandStatistics.jishi }}</div>
|
|
|
- </div>
|
|
|
- <a-divider direction="vertical"></a-divider>
|
|
|
- <div class="item-info">
|
|
|
- <div class="name">需量峰值</div>
|
|
|
- <div class="value">{{ demandStatistics.fengzhi }}</div>
|
|
|
- </div>
|
|
|
- <a-divider direction="vertical"></a-divider>
|
|
|
- <div class="item-info">
|
|
|
- <div class="name">目标需量</div>
|
|
|
- <div class="value">{{ demandStatistics.mubiao }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="u-flex co2-tianqi">
|
|
|
- <div class="co2 common-box">
|
|
|
- <div class="common-title">CO2排放</div>
|
|
|
- <div class="info-container u-flex-jaa">
|
|
|
- <div class="item-info">
|
|
|
- <div class="name">本月排放(Kg)</div>
|
|
|
- <div class="value">{{ demandStatistics.co2 }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="tianqi common-box">
|
|
|
- <div class="common-title">环境信息</div>
|
|
|
- <div class="info-container u-flex-jaa">
|
|
|
- <div class="item-info">
|
|
|
- <div class="name">湿度(%)</div>
|
|
|
- <div class="value">{{ demandStatistics.shidu }}</div>
|
|
|
- </div>
|
|
|
- <a-divider direction="vertical"></a-divider>
|
|
|
- <div class="item-info">
|
|
|
- <div class="name">温度(℃)</div>
|
|
|
- <div class="value">{{ demandStatistics.wendu }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="bottom-container u-flex">
|
|
|
- <div class="xiaohao common-box">
|
|
|
- <div class="common-title">当月能源消耗总标煤(kg)</div>
|
|
|
- <div class="zongbiao-chart" ref="zongbiao"></div>
|
|
|
- <!-- <div class="legend">
|
|
|
- <div class="u-flex item" v-for="(item, index) in dataLists" :key="index">
|
|
|
- <div class="text">{{item.name}}</div>
|
|
|
- <div class="number">{{item.number}}tec</div>
|
|
|
- <div class="pieValue">{{item.pieValue}}%</div>
|
|
|
- </div>
|
|
|
- </div> -->
|
|
|
- </div>
|
|
|
- <div class="qushi common-box">
|
|
|
- <div class="common-title">总用电趋势图(kWh)</div>
|
|
|
- <div class="totalEle-trend" ref="totalEleTrend"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="demand-analysis" :loading="loading">
|
|
|
+ <!-- <commonSearch ref="commonSearch" type="daterange" @search="handleSearch"></commonSearch> -->
|
|
|
+ <div class="item-echarts" ref="echarts" :style="{ height: echartsHeight + 'px' }"></div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import * as echarts from 'echarts'
|
|
|
-// import commonSearch from '../components/commonSearch'
|
|
|
+// import commonSearch from '../components/commonSearch.vue'
|
|
|
import { httpAction, getAction } from '@/api/manage'
|
|
|
-import { pvdata } from '../pvdata';
|
|
|
+import { pvdata } from '../pvdata'
|
|
|
export default {
|
|
|
- name: '',
|
|
|
+ name: 'mdCurveAnalysis',
|
|
|
components: {
|
|
|
// commonSearch,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- description: '能耗总览',
|
|
|
+ description: '多设备曲线分析',
|
|
|
loading: true,
|
|
|
- energySpace: {},
|
|
|
- demandStatistics: {
|
|
|
- jishi: null,
|
|
|
- fengzhi: null,
|
|
|
- mubiao: null,
|
|
|
- co2: null,
|
|
|
- shidu: null,
|
|
|
- wendu: null,
|
|
|
- },
|
|
|
- dataLists: [
|
|
|
- { name: '空调用电', number: 80, pieValue: 20 },
|
|
|
- { name: '动力用电', number: 100, pieValue: 25 },
|
|
|
- { name: '照明用电', number: 140, pieValue: 35 },
|
|
|
- { name: '其他用电', number: 80, pieValue: 20 },
|
|
|
- ],
|
|
|
- sortTop5Name: [],
|
|
|
- nowMonthData: [],
|
|
|
- lastMonthData: [],
|
|
|
- // sortTop5Name: ['电信盘','烧机设备', '插座', '全空气机组', '照明', ],
|
|
|
- // nowMonthData: [7773.50, 8809.40, 10065.20, 17371.00, 20478.60],
|
|
|
- // lastMonthData: [-6979.80, -6458.10 -13762.10, -16628.50, -8037.70],
|
|
|
- totalEleTrend: {
|
|
|
- daysplit: [],
|
|
|
- kongtiao: [],
|
|
|
- zhaoming: [],
|
|
|
- dongli: [],
|
|
|
- qita: [],
|
|
|
- },
|
|
|
- zongbiao: [],
|
|
|
+ echartsHeight: window.innerHeight - 84 - 60 - 30,
|
|
|
+ myChart: null,
|
|
|
url: {
|
|
|
- list: '/ems/statistics/energyoverview',
|
|
|
+ list: '/ems/statistics/demandanalysis',
|
|
|
},
|
|
|
+ times: [],
|
|
|
+ gd02us: [],
|
|
|
+ gd03us: [],
|
|
|
+ gd05us: [],
|
|
|
+ gd06us: [],
|
|
|
}
|
|
|
},
|
|
|
created() {},
|
|
|
mounted() {
|
|
|
this.$nextTick(() => {
|
|
|
- this.getTest()
|
|
|
- // this.getEnergyoverview()
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getTest()
|
|
|
+ }, 1000)
|
|
|
+ // this.getDemandanalysis()
|
|
|
})
|
|
|
},
|
|
|
methods: {
|
|
|
// 后端好了需要删掉
|
|
|
getTest() {
|
|
|
- var listData = pvdata.dashboarddata
|
|
|
- console.log(listData)
|
|
|
- // 用电需量
|
|
|
- this.demandStatistics.jishi = listData.demandStatistics.find((item) => item.type === '即时需量').howManyValue
|
|
|
- this.demandStatistics.fengzhi = listData.demandStatistics.find((item) => item.type === '需量峰值').howManyValue
|
|
|
- this.demandStatistics.mubiao = listData.demandStatistics.find((item) => item.type === '目标需量').howManyValue
|
|
|
-
|
|
|
- // co2+气象
|
|
|
- this.demandStatistics.co2 = listData.environmentStatistics.find((item) => item.type === 'CO2排放').howManyValue
|
|
|
- this.demandStatistics.shidu = listData.environmentStatistics.find((item) => item.type === '室外湿度')
|
|
|
- ? listData.environmentStatistics.find((item) => item.type === '室外湿度').howManyValue
|
|
|
- : ''
|
|
|
- this.demandStatistics.wendu = listData.environmentStatistics.find((item) => item.type === '室外温度')
|
|
|
- ? listData.environmentStatistics.find((item) => item.type === '室外温度').howManyValue
|
|
|
- : ''
|
|
|
-
|
|
|
- // top5
|
|
|
- this.sortTop5Name = []
|
|
|
- this.nowMonthData = []
|
|
|
- this.lastMonthData = []
|
|
|
- listData.top5Statistics.forEach((res) => {
|
|
|
- this.sortTop5Name.push(res.equipmentname)
|
|
|
- this.nowMonthData.push(res.howManyValue)
|
|
|
- this.lastMonthData.push(res.howManyValue2)
|
|
|
- })
|
|
|
-
|
|
|
- // 总标煤
|
|
|
- this.zongbiao = listData.kgceStatistics.map((res) => {
|
|
|
- var item = {
|
|
|
- name: res.type,
|
|
|
- value: res.howManyValue,
|
|
|
- }
|
|
|
- return item
|
|
|
+ var _this = this;
|
|
|
+ pvdata.mdcurveanalysisdata.forEach((item) => {
|
|
|
+ item.data.forEach((i) => {
|
|
|
+ if (item.meterName === 'GD02') {
|
|
|
+ _this.times.push(i.Time.substring(11, 16));
|
|
|
+ _this.gd02us.push(i.Ua.toFixed(1));
|
|
|
+ }
|
|
|
+ else if (item.meterName === 'GD03') {
|
|
|
+ _this.gd03us.push(i.Ua.toFixed(1));
|
|
|
+ }
|
|
|
+ else if (item.meterName === 'GD05') {
|
|
|
+ _this.gd05us.push(i.Ua.toFixed(1));
|
|
|
+ }
|
|
|
+ else if (item.meterName === 'GD06') {
|
|
|
+ _this.gd06us.push(i.Ua.toFixed(1));
|
|
|
+ }
|
|
|
+ })
|
|
|
})
|
|
|
-
|
|
|
- this.totalEleTrend.daysplit = listData.daysplit
|
|
|
- this.totalEleTrend.kongtiao = listData.kongtiao
|
|
|
- this.totalEleTrend.dongli = listData.dongli
|
|
|
- this.totalEleTrend.zhaoming = listData.zhaoming
|
|
|
- this.totalEleTrend.qita = listData.qita
|
|
|
- this.energySpace = listData.energySpace
|
|
|
- this.loading = false
|
|
|
- this.initSortTop5()
|
|
|
- this.initPieDianliang()
|
|
|
- this.initTotalEleTrend()
|
|
|
+ this.initEcharts()
|
|
|
},
|
|
|
- async getEnergyoverview() {
|
|
|
- // {spaceId: 277797283102721}
|
|
|
+ async getDemandanalysis() {
|
|
|
this.loading = true
|
|
|
var data = this.$refs.commonSearch.queryParams
|
|
|
- getAction(this.url.list, data).then((res) => {
|
|
|
- console.log(res)
|
|
|
- var listData = res.data
|
|
|
- // 用电需量
|
|
|
- this.demandStatistics.jishi = listData.demandStatistics.find((item) => item.type === '即时需量').howManyValue
|
|
|
- this.demandStatistics.fengzhi = listData.demandStatistics.find((item) => item.type === '需量峰值').howManyValue
|
|
|
- this.demandStatistics.mubiao = listData.demandStatistics.find((item) => item.type === '目标需量').howManyValue
|
|
|
-
|
|
|
- // co2+气象
|
|
|
- this.demandStatistics.co2 = listData.environmentStatistics.find((item) => item.type === 'CO2排放').howManyValue
|
|
|
- this.demandStatistics.shidu = listData.environmentStatistics.find((item) => item.type === '室外湿度')
|
|
|
- ? listData.environmentStatistics.find((item) => item.type === '室外湿度').howManyValue
|
|
|
- : ''
|
|
|
- this.demandStatistics.wendu = listData.environmentStatistics.find((item) => item.type === '室外温度')
|
|
|
- ? listData.environmentStatistics.find((item) => item.type === '室外温度').howManyValue
|
|
|
- : ''
|
|
|
-
|
|
|
- // top5
|
|
|
- this.sortTop5Name = []
|
|
|
- this.nowMonthData = []
|
|
|
- this.lastMonthData = []
|
|
|
- listData.top5Statistics.forEach((res) => {
|
|
|
- this.sortTop5Name.push(res.equipmentname)
|
|
|
- this.nowMonthData.push(res.howManyValue)
|
|
|
- this.lastMonthData.push(res.howManyValue2)
|
|
|
- })
|
|
|
-
|
|
|
- // 总标煤
|
|
|
- this.zongbiao = listData.kgceStatistics.map((res) => {
|
|
|
- var item = {
|
|
|
- name: res.type,
|
|
|
- value: res.howManyValue,
|
|
|
- }
|
|
|
- return item
|
|
|
- })
|
|
|
-
|
|
|
- this.totalEleTrend.daysplit = listData.daysplit
|
|
|
- this.totalEleTrend.kongtiao = listData.kongtiao
|
|
|
- this.totalEleTrend.dongli = listData.dongli
|
|
|
- this.totalEleTrend.zhaoming = listData.zhaoming
|
|
|
- this.totalEleTrend.qita = listData.qita
|
|
|
- this.energySpace = listData.energySpace
|
|
|
+ getAction(this.url.list, data).then((response) => {
|
|
|
+ console.log(response)
|
|
|
+ this.monthsplit = response.data.monthsplit
|
|
|
+ this.mubiao = response.data.mubiao
|
|
|
+ this.shiji = response.data.shiji
|
|
|
this.loading = false
|
|
|
})
|
|
|
- this.$nextTick(() => {
|
|
|
- this.initSortTop5()
|
|
|
- this.initPieDianliang()
|
|
|
- this.initTotalEleTrend()
|
|
|
- })
|
|
|
+ this.initEcharts()
|
|
|
},
|
|
|
- handleSearch(param) {
|
|
|
- this.getTest()
|
|
|
- // this.getEnergyoverview()
|
|
|
- },
|
|
|
- // 当月用电量TOP5 柱状图
|
|
|
- initSortTop5() {
|
|
|
+ initEcharts() {
|
|
|
var _this = this
|
|
|
- var chartDom = this.$refs.sortTop5
|
|
|
- var myChart = echarts.init(chartDom)
|
|
|
- var option
|
|
|
+ var chartDom = _this.$refs.echarts
|
|
|
+ _this.myChart = echarts.init(chartDom)
|
|
|
|
|
|
- option = {
|
|
|
+ var option = {
|
|
|
tooltip: {
|
|
|
trigger: 'axis',
|
|
|
- axisPointer: {
|
|
|
- type: 'shadow',
|
|
|
+ position: function (pt) {
|
|
|
+ return [pt[0], '20%']
|
|
|
},
|
|
|
},
|
|
|
+ title: {
|
|
|
+ left: 'left',
|
|
|
+ text: '参数历史数据',
|
|
|
+ },
|
|
|
legend: {
|
|
|
- bottom: 0,
|
|
|
- data: ['上月', '当月'],
|
|
|
+ data: ['GD02 U', 'GD03 U', 'GD05 U', 'GD06 U'],
|
|
|
},
|
|
|
- // grid: {
|
|
|
- // left: '3%',
|
|
|
- // right: '4%',
|
|
|
- // bottom: '12%',
|
|
|
- // top: '0%',
|
|
|
- // containLabel: true
|
|
|
- // },
|
|
|
- grid: [
|
|
|
- // 左边柱子
|
|
|
- {
|
|
|
- show: false,
|
|
|
- left: '10%',
|
|
|
- top: '10%',
|
|
|
- bottom: '20',
|
|
|
- containLabel: true,
|
|
|
- width: '25%',
|
|
|
- },
|
|
|
- // 中间
|
|
|
- {
|
|
|
- show: false,
|
|
|
- left: '51%',
|
|
|
- top: '10%',
|
|
|
- bottom: '20',
|
|
|
- width: '30%',
|
|
|
- },
|
|
|
- // 右边柱子
|
|
|
- {
|
|
|
- show: false,
|
|
|
- right: '10%',
|
|
|
- top: '10%',
|
|
|
- bottom: '20',
|
|
|
- containLabel: true,
|
|
|
- width: '25%',
|
|
|
- },
|
|
|
- ],
|
|
|
- xAxis: [
|
|
|
- {
|
|
|
- type: 'value',
|
|
|
- inverse: true,
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- gridIndex: 1,
|
|
|
- show: false,
|
|
|
- },
|
|
|
- {
|
|
|
- gridIndex: 2,
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- },
|
|
|
- // {
|
|
|
- // type: 'value'
|
|
|
- // }
|
|
|
- ],
|
|
|
- yAxis: [
|
|
|
- {
|
|
|
- type: 'category',
|
|
|
- inverse: true,
|
|
|
- position: 'right',
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- data: this.sortTop5Name,
|
|
|
- },
|
|
|
- {
|
|
|
- gridIndex: 1,
|
|
|
- type: 'category',
|
|
|
- inverse: true,
|
|
|
- position: 'center',
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: true,
|
|
|
- align: 'center',
|
|
|
- // color: '#CDD7D7',
|
|
|
- fontSize: 14,
|
|
|
- },
|
|
|
- data: this.sortTop5Name,
|
|
|
- },
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ boundaryGap: false,
|
|
|
+ data: _this.times,
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: 'value',
|
|
|
+ boundaryGap: [0, '100%'],
|
|
|
+ },
|
|
|
+ dataZoom: [
|
|
|
{
|
|
|
- gridIndex: 2,
|
|
|
- type: 'category',
|
|
|
- inverse: true,
|
|
|
- position: 'left',
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- data: this.sortTop5Name,
|
|
|
+ type: 'inside',
|
|
|
+ start: 0,
|
|
|
+ end: 100,
|
|
|
+ xAxisIndex: 0,
|
|
|
},
|
|
|
- // {
|
|
|
- // type: 'category',
|
|
|
- // axisTick: {
|
|
|
- // show: false
|
|
|
- // },
|
|
|
- // data: this.sortTop5Name
|
|
|
- // }
|
|
|
- ],
|
|
|
- series: [
|
|
|
{
|
|
|
- name: '当月',
|
|
|
- type: 'bar',
|
|
|
- xAxisIndex: 2,
|
|
|
- yAxisIndex: 2,
|
|
|
- barWidth: 15,
|
|
|
- stack: 'Total',
|
|
|
- // barWidth: '50%',
|
|
|
- label: {
|
|
|
- show: true,
|
|
|
- position: 'right',
|
|
|
- // color: '#4BE6E6'
|
|
|
- },
|
|
|
- emphasis: {
|
|
|
- focus: 'series',
|
|
|
- },
|
|
|
- data: this.nowMonthData,
|
|
|
+ start: 0,
|
|
|
+ end: 10,
|
|
|
},
|
|
|
{
|
|
|
- name: '上月',
|
|
|
- type: 'bar',
|
|
|
- stack: 'Total',
|
|
|
- xAxisIndex: 0,
|
|
|
+ show: true,
|
|
|
yAxisIndex: 0,
|
|
|
- barWidth: 15,
|
|
|
- label: {
|
|
|
- show: true,
|
|
|
- position: 'left',
|
|
|
- // color: '#F29740'
|
|
|
- },
|
|
|
- emphasis: {
|
|
|
- focus: 'series',
|
|
|
- },
|
|
|
- data: this.lastMonthData,
|
|
|
+ filterMode: 'empty',
|
|
|
+ width: 30,
|
|
|
+ height: '80%',
|
|
|
+ right: '7%',
|
|
|
},
|
|
|
],
|
|
|
- }
|
|
|
- option && myChart.setOption(option)
|
|
|
-
|
|
|
- window.addEventListener('resize', function () {
|
|
|
- myChart.resize()
|
|
|
- })
|
|
|
- },
|
|
|
- // 当月能源消耗总标煤 饼图
|
|
|
- initPieDianliang1() {
|
|
|
- var chartDom = this.$refs.zongbiao
|
|
|
- var myChart = echarts.init(chartDom)
|
|
|
- var option
|
|
|
-
|
|
|
- option = {
|
|
|
series: [
|
|
|
{
|
|
|
- type: 'gauge',
|
|
|
- radius: '70%',
|
|
|
- center: ['50%', '50%'],
|
|
|
- clockwise: true, // 仪表盘刻度是否是顺时针增长
|
|
|
- startAngle: '90', // 开始角度
|
|
|
- endAngle: '-269.9999', // 结束角度
|
|
|
- splitNumber: 36, // 仪表盘刻度的分割段数
|
|
|
- detail: {
|
|
|
- offsetCenter: [0, -20],
|
|
|
- formatter: ' ',
|
|
|
- },
|
|
|
- detail: {
|
|
|
- // 仪表盘详情,用于显示数据-value
|
|
|
- show: true, // 是否显示详情,默认 true
|
|
|
- offsetCenter: [0, -4], // 相对于仪表盘中心的偏移位置
|
|
|
- color: '#000',
|
|
|
- fontWeight: '600',
|
|
|
- fontSize: '18',
|
|
|
- formatter: '{value}', // 格式化函数或者字符串
|
|
|
- },
|
|
|
- title: {
|
|
|
- //仪表盘标题-name。
|
|
|
- show: true, //是否显示标题,默认 true
|
|
|
- offsetCenter: [0, 16], // 相对于仪表盘中心的偏移位置
|
|
|
- color: '#000',
|
|
|
- fontWeight: '100',
|
|
|
- fontSize: '14',
|
|
|
- },
|
|
|
- pointer: {
|
|
|
- // 指针
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisLine: {
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- color: [
|
|
|
- [0.3437, '#5470C6'],
|
|
|
- [0.6269, '#91CC75'],
|
|
|
- [0.8648, '#FAC858'],
|
|
|
- [1, '#EE6666'],
|
|
|
- // [0.3437, '#e2e14f'],
|
|
|
- // [0.6269, '#00a7fb'],
|
|
|
- // [0.8648, '#00e0fb'],
|
|
|
- // [1, '#00ffb4']
|
|
|
- ],
|
|
|
- width: 18,
|
|
|
- },
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- // 刻度线
|
|
|
- show: false,
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- // 分割线
|
|
|
- show: true,
|
|
|
- distance: -18, // 分割线与轴线的距离(在哪儿显示)
|
|
|
- length: 18,
|
|
|
- lineStyle: {
|
|
|
- color: '#f1f1f1',
|
|
|
- width: 2,
|
|
|
- },
|
|
|
+ name: 'GD02 U',
|
|
|
+ type: 'line',
|
|
|
+ symbol: 'none',
|
|
|
+ sampling: 'lttb',
|
|
|
+ itemStyle: {
|
|
|
+ color: '#91CC75',
|
|
|
},
|
|
|
- axisLabel: {
|
|
|
- show: false,
|
|
|
+ markPoint: {
|
|
|
+ data: [
|
|
|
+ { type: 'max', name: 'Max' },
|
|
|
+ { type: 'min', name: 'Min' },
|
|
|
+ ],
|
|
|
},
|
|
|
- data: [
|
|
|
- {
|
|
|
- value: 400,
|
|
|
- name: 'tce',
|
|
|
- },
|
|
|
- ],
|
|
|
+ data: _this.gd02us,
|
|
|
},
|
|
|
{
|
|
|
- type: 'pie',
|
|
|
- name: '内层细圆环',
|
|
|
- radius: ['52%', '53%'],
|
|
|
- center: ['50%', '50%'],
|
|
|
- hoverAnimation: false,
|
|
|
- startAngle: 200,
|
|
|
+ name: 'GD03 U',
|
|
|
+ type: 'line',
|
|
|
+ symbol: 'none',
|
|
|
+ sampling: 'lttb',
|
|
|
itemStyle: {
|
|
|
- color: '#E3EBFA',
|
|
|
+ color: '#EE6666',
|
|
|
},
|
|
|
- label: {
|
|
|
- show: false,
|
|
|
+ markPoint: {
|
|
|
+ data: [
|
|
|
+ { type: 'max', name: 'Max' },
|
|
|
+ { type: 'min', name: 'Min' },
|
|
|
+ ],
|
|
|
},
|
|
|
- data: [100],
|
|
|
+ data: _this.gd03us,
|
|
|
},
|
|
|
{
|
|
|
- type: 'pie',
|
|
|
- name: '外层细圆环',
|
|
|
- radius: ['72%', '71%'],
|
|
|
- center: ['50%', '50%'],
|
|
|
- hoverAnimation: false,
|
|
|
- startAngle: 200,
|
|
|
+ name: 'GD05 U',
|
|
|
+ type: 'line',
|
|
|
+ symbol: 'none',
|
|
|
+ sampling: 'lttb',
|
|
|
itemStyle: {
|
|
|
- color: '#E3EBFA',
|
|
|
+ color: '#FAAD14',
|
|
|
},
|
|
|
- label: {
|
|
|
- show: false,
|
|
|
+ markPoint: {
|
|
|
+ data: [
|
|
|
+ { type: 'max', name: 'Max' },
|
|
|
+ { type: 'min', name: 'Min' },
|
|
|
+ ],
|
|
|
},
|
|
|
- data: [100],
|
|
|
+ data: _this.gd05us,
|
|
|
},
|
|
|
- ],
|
|
|
- }
|
|
|
-
|
|
|
- option && myChart.setOption(option)
|
|
|
- window.addEventListener('resize', function () {
|
|
|
- myChart.resize()
|
|
|
- })
|
|
|
- },
|
|
|
- // 总用电趋势图 柱状图
|
|
|
- initPieDianliang() {
|
|
|
- var chartDom = this.$refs.zongbiao
|
|
|
- var myChart = echarts.init(chartDom)
|
|
|
- var option
|
|
|
-
|
|
|
- option = {
|
|
|
- tooltip: {
|
|
|
- trigger: 'item',
|
|
|
- },
|
|
|
- legend: {
|
|
|
- // orient: 'vertical',
|
|
|
- // top: '10%',
|
|
|
- // right: 10,
|
|
|
- bottom: 0,
|
|
|
- },
|
|
|
- series: [
|
|
|
{
|
|
|
- name: '',
|
|
|
- type: 'pie',
|
|
|
- radius: ['30%', '48%'], // 内圈 外圈
|
|
|
- center: ['50%', '45%'],
|
|
|
- avoidLabelOverlap: false,
|
|
|
+ name: 'GD06 U',
|
|
|
+ type: 'line',
|
|
|
+ symbol: 'none',
|
|
|
+ sampling: 'lttb',
|
|
|
itemStyle: {
|
|
|
- borderRadius: 10,
|
|
|
- borderColor: '#fff',
|
|
|
- borderWidth: 2,
|
|
|
- },
|
|
|
- label: {
|
|
|
- show: true,
|
|
|
- formatter(param) {
|
|
|
- // return param.name + '\n (' + param.percent + '%)';
|
|
|
- return param.name + '\n' + param.value + ' (' + param.percent + '%)'
|
|
|
- },
|
|
|
- // formatter: '{a} <br/>{b}: {c} ({d}%)'
|
|
|
- // position: 'center'
|
|
|
- },
|
|
|
- labelLine: {
|
|
|
- show: true,
|
|
|
+ color: '#5470C6',
|
|
|
},
|
|
|
- emphasis: {
|
|
|
- label: {
|
|
|
- // 饼图每一个的名称显示
|
|
|
- show: true,
|
|
|
- // fontSize: 40,
|
|
|
- // fontWeight: 'bold'
|
|
|
- },
|
|
|
+ markPoint: {
|
|
|
+ data: [
|
|
|
+ { type: 'max', name: 'Max' },
|
|
|
+ { type: 'min', name: 'Min' },
|
|
|
+ ],
|
|
|
},
|
|
|
- data: this.zongbiao,
|
|
|
+ data: _this.gd06us,
|
|
|
},
|
|
|
],
|
|
|
}
|
|
|
|
|
|
- option && myChart.setOption(option)
|
|
|
- window.addEventListener('resize', function () {
|
|
|
- myChart.resize()
|
|
|
- })
|
|
|
- },
|
|
|
- initTotalEleTrend() {
|
|
|
- console.log(this.totalEleTrend.daysplit)
|
|
|
- var _this = this
|
|
|
- var chartDom = this.$refs.totalEleTrend
|
|
|
- var myChart = echarts.init(chartDom)
|
|
|
- var option
|
|
|
-
|
|
|
- option = {
|
|
|
- // title: {
|
|
|
- // text: '用能趋势',
|
|
|
- // left: 'center'
|
|
|
- // },
|
|
|
- tooltip: {
|
|
|
- trigger: 'axis',
|
|
|
- axisPointer: {
|
|
|
- type: 'shadow',
|
|
|
- },
|
|
|
- },
|
|
|
- legend: {
|
|
|
- bottom: 0,
|
|
|
- },
|
|
|
- grid: {
|
|
|
- top: '10%',
|
|
|
- left: '3%',
|
|
|
- right: '4%',
|
|
|
- bottom: '25px',
|
|
|
- containLabel: true,
|
|
|
- },
|
|
|
- xAxis: {
|
|
|
- type: 'category',
|
|
|
- // data: ['6月','7月','8月','9月','10月','11月','12月','1月','2月','3月','4月','5月',]
|
|
|
- data: this.totalEleTrend.daysplit,
|
|
|
- },
|
|
|
- yAxis: {
|
|
|
- type: 'value',
|
|
|
- },
|
|
|
- toolbox: {
|
|
|
- show: true,
|
|
|
- feature: {
|
|
|
- saveAsImage: {},
|
|
|
- },
|
|
|
- },
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: '动力用电',
|
|
|
- type: 'bar',
|
|
|
- stack: 'total',
|
|
|
- color: '#5470C6',
|
|
|
- emphasis: {
|
|
|
- focus: 'series',
|
|
|
- },
|
|
|
- // data: [150, 212, 201, 154, 190, 330, 410, 320, 199, 254, 324, 225]
|
|
|
- data: this.totalEleTrend.dongli,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '空调用电',
|
|
|
- type: 'bar',
|
|
|
- stack: 'total',
|
|
|
- color: '#91CC75',
|
|
|
- // label: { // 是否显示柱形图上数字
|
|
|
- // show: true
|
|
|
- // },
|
|
|
- // emphasis: { // 悬浮时是否模糊其他柱形图
|
|
|
- // focus: 'series'
|
|
|
- // },
|
|
|
- // data: [120, 132, 101, 134, 90, 230, 210, 209, 150, 140, 152, 143]
|
|
|
- data: this.totalEleTrend.kongtiao,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '照明用电',
|
|
|
- type: 'bar',
|
|
|
- stack: 'total',
|
|
|
- color: '#EE6666',
|
|
|
- // emphasis: {
|
|
|
- // focus: 'series'
|
|
|
- // },
|
|
|
- // data: [220, 182, 191, 234, 290, 330, 310, 320, 145, 222, 245, 301]
|
|
|
- data: this.totalEleTrend.zhaoming,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '其他用电',
|
|
|
- type: 'bar',
|
|
|
- stack: 'total',
|
|
|
- color: '#FAC858',
|
|
|
- // barWidth: '50%',
|
|
|
- // emphasis: {
|
|
|
- // focus: 'series'
|
|
|
- // },
|
|
|
- // data: [320, 302, 301, 334, 390, 330, 320, 300, 310, 316, 304, 322]
|
|
|
- data: this.totalEleTrend.qita,
|
|
|
- },
|
|
|
- ],
|
|
|
- }
|
|
|
-
|
|
|
- option && myChart.setOption(option)
|
|
|
+ option && _this.myChart.setOption(option)
|
|
|
|
|
|
window.addEventListener('resize', function () {
|
|
|
- myChart.resize()
|
|
|
+ _this.myChart.resize()
|
|
|
})
|
|
|
},
|
|
|
+ /** 搜索按钮操作 */
|
|
|
+ handleSearch(param) {
|
|
|
+ this.getTest()
|
|
|
+ // this.getDemandanalysis()
|
|
|
+ },
|
|
|
},
|
|
|
}
|
|
|
</script>
|
|
|
+
|
|
|
<style lang="less" scoped>
|
|
|
- @import '~@/assets/less/uStyle.less';
|
|
|
+@import '~@/assets/less/uStyle.less';
|
|
|
</style>
|
|
|
<style lang="less" scoped>
|
|
|
-.energy-overView {
|
|
|
+.demand-analysis {
|
|
|
min-height: calc(100vh - 84px);
|
|
|
padding: 10px;
|
|
|
- .common-title {
|
|
|
- text-align: center;
|
|
|
- font-weight: bold;
|
|
|
- font-size: 18px;
|
|
|
- color: #1b2128;
|
|
|
- }
|
|
|
- .common-box {
|
|
|
+ .search-container {
|
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
|
- padding: 1.1vh 1.2vh;
|
|
|
- // padding: 16px 20px;
|
|
|
- }
|
|
|
- .info-container {
|
|
|
- width: 100%;
|
|
|
- .item-info {
|
|
|
- padding: 1.4vh 0;
|
|
|
- // padding: 22px 0;
|
|
|
- text-align: center;
|
|
|
- .name {
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- .value {
|
|
|
- margin-top: 15px;
|
|
|
- font-size: 20px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .top-container {
|
|
|
- height: calc(50vh - 124px);
|
|
|
- .louyu {
|
|
|
- flex: 1;
|
|
|
- margin-right: 10px;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- padding-bottom: 1.2vh;
|
|
|
- // padding-bottom: 30px;
|
|
|
- img {
|
|
|
- object-fit: contain;
|
|
|
- }
|
|
|
- .ant-descriptions {
|
|
|
- background-color: #ffffff;
|
|
|
- }
|
|
|
- }
|
|
|
- .sort-top5-container {
|
|
|
- flex: 1.2;
|
|
|
- .sort-top5 {
|
|
|
- height: calc(100% - 20px);
|
|
|
- padding-top: 16px;
|
|
|
- }
|
|
|
- }
|
|
|
- .info-total {
|
|
|
- flex: 1.5;
|
|
|
- padding-left: 10px;
|
|
|
- .yongdian-xuliang {
|
|
|
- height: 50%;
|
|
|
- }
|
|
|
- .co2-tianqi {
|
|
|
- height: calc(50% - 10px);
|
|
|
- margin-top: 10px;
|
|
|
- }
|
|
|
- .co2 {
|
|
|
- flex: 1;
|
|
|
- margin-right: 10px;
|
|
|
- }
|
|
|
- .tianqi {
|
|
|
- flex: 1;
|
|
|
- }
|
|
|
+ padding-top: 12px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ .el-form-item--small.el-form-item {
|
|
|
+ margin-bottom: 14px;
|
|
|
}
|
|
|
}
|
|
|
- .bottom-container {
|
|
|
- height: calc(50vh - 60px);
|
|
|
- margin-top: 10px;
|
|
|
- .xiaohao {
|
|
|
- flex: 1;
|
|
|
- margin-right: 10px;
|
|
|
- .zongbiao-chart {
|
|
|
- height: 90%;
|
|
|
- }
|
|
|
- .legend {
|
|
|
- height: calc(50% - 25px);
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: space-around;
|
|
|
- // align-items: start;
|
|
|
- align-items: flex-start;
|
|
|
- padding: 20px;
|
|
|
- font-size: 14px;
|
|
|
- .item {
|
|
|
- width: 100%;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-around;
|
|
|
- .example {
|
|
|
- width: 20px;
|
|
|
- height: 10px;
|
|
|
- background: #000;
|
|
|
- margin-right: 10px;
|
|
|
- }
|
|
|
- .text {
|
|
|
- min-width: 50px;
|
|
|
- }
|
|
|
- .number {
|
|
|
- min-width: 40px;
|
|
|
- // margin-right: 22px;
|
|
|
- }
|
|
|
- .pieValue {
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .qushi {
|
|
|
- flex: 2.7;
|
|
|
- .totalEle-trend {
|
|
|
- height: calc(100% - 25px);
|
|
|
- }
|
|
|
- }
|
|
|
+ .item-echarts {
|
|
|
+ // min-height: calc(100vh - 174px);
|
|
|
+ padding: 10px;
|
|
|
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
|
+ background-color: white;
|
|
|
}
|
|
|
}
|
|
|
</style>
|