<template>
<div class="app-container energyDevelop">
<!-- 数据区域 -->
<div class="numbPannl">
<ul class="ul-numb-ico">
<li v-for="(item,index) in numbLst" :key="index" @click="getData(item)">
<div class="hd">
<h2>{
{item.name}}</h2>
<span>{
{item.year}}</span>
</div>
<div class="bd dflex mb30">
<div class="ico" :class="item.ico"></div>
<div class="numbLst">
<p class="numb f20 mb10">{
{item.numb1}}</p>
<p class="numb f14">{
{item.numb2}}%</p>
</div>
<div class="grey">
<p class="f14" style="margin:4px 0 8px 0">{
{item.Unit1}}</p>
<p class="f14">{
{item.Unit2}}</p>
</div>
</div>
<div class="ft dflex">
<span>近五年趋势</span>
<i class="el-icon-arrow-right"></i>
</div>
</li>
</ul>
</div>
<!-- 近五年趋势弹出层 -->
<el-dialog :title="titleEcharts" :visible.sync="openEcharts" width="760px" destroy-on-close>
<div style="height:360px;width: 100%;">
<Echart ref="barEcharts" />
</div>
</el-dialog>
</div>
</template>
<script>
import {
selectTitleInfo, selectQSNYXFCYFB, selectQSJWNGHYNYXFQKJYDLBHQS, selectQSGHYNYZDXFZBQK, selectQSGHYNYZDXFLYQK, selectQSGDQNYXFQKYDL, } from "@/api/carbonEye/energyConsumption";
import {
yearData } from "@/api/carbonMonitoring/KPEnterprise"; //年份共用接口
export default {
name: "energyConsumption",
data () {
return {
numbLst: [
{
name: '全省能源消费总量', year: '2019', ico: 'ico-energyDevelop1', numb1: '2223.8', numb2: '-5.7', Unit1: '万吨标准煤', Unit2: '增长率', },
{
name: '全省能耗强度', year: '2019', ico: 'ico-energyDevelop2', numb1: '0.36', numb2: '1.9', Unit1: '吨/万元', Unit2: '增长率', },
{
name: '全省用电总量', year: '2019', ico: 'ico-energyDevelop3', numb1: '2223.08', numb2: '6.2', Unit1: '亿千瓦时', Unit2: '增长率', }
],
// 弹出层-------
openEcharts: false,
//echarts---弹出标题
titleEcharts: '',
// echarts---弹出-图表需要字段
barEcharts: null,
//全省能源消费总量
kgce: '',
//全省能耗强度
energyIntensity: '',
//用电总量
summation: '',
};
},
mounted () {
this.getTitleInfo(); //页面顶部展示数接口
this.getQSJWNGHYNYXFQKJYDLBHQS(); //全省近五年各行业能源
},
methods: {
//点击近五年趋势方法
getData (item) {
//console.log(999, item)
this.openEcharts = true;
this.$nextTick(() => {
if (item.name === '全省能源消费总量') {
this.titleEcharts = item.name + '近五年趋势'
this.barEcharts1(this.kgce)
} else if (item.name === '全省能耗强度') {
this.titleEcharts = item.name + '近五年趋势'
this.barEcharts1(this.energyIntensity)
} else {
this.titleEcharts = item.name + '近五年趋势'
this.barEcharts1(this.summation)
}
})
},
//页面顶部展示数接口----请求参数:yearId(年份)
getTitleInfo () {
let params = {
yearId: this.yearModel,
}
selectTitleInfo(params).then(res => {
const result = res[0]
//全省能源消费总量-----
this.kgce = {
barEchartsYear: result.QSNYXFZLJWNQS.map(item => {
return item.YEARID
}),
barEchartsZL: {
name: '总量',
data: result.QSNYXFZLJWNQS.map(item => {
return item.ZL
})
},
barEchartsZZL: {
name: '增长率',
data: result.QSNYXFZLJWNQS.map(item => {
return item.ZZL
})
}
}
//console.log(555, this.kgce);
//全省能耗强度--
this.energyIntensity = {
barEchartsYear: result.QSNHQDJWNQS.map(item => {
return item.YEARID
}),
barEchartsZL: {
name: '总量',
data: result.QSNHQDJWNQS.map(item => {
return item.ZL
})
},
barEchartsZZL: {
name: '增长率',
data: result.QSNHQDJWNQS.map(item => {
return item.ZZL
})
}
}
//用电总量--
this.summation = {
barEchartsYear: result.QSYDZLJWNQS.map(item => {
return item.YEARID
}),
barEchartsZL: {
name: '总量',
data: result.QSYDZLJWNQS.map(item => {
return item.ZL
})
},
barEchartsZZL: {
name: '增长率',
data: result.QSYDZLJWNQS.map(item => {
return item.ZZL
})
}
}
})
},
//弹出Echarts----------
barEcharts1 (echartsData) {
//计算最大值
function calMax (arr) {
let max = 0;
let data = Math.max(...arr);
if (max < data) {
max = data;
}
let maxint = Math.ceil(max / 9.5); // 不让最高的值超过最上面的刻度
let maxval = maxint * 10; // 让显示的刻度是整数
// 为了防止数据为0时,Y轴不显示,给个最大值
if (maxval == 0) {
maxval = 1 }
return maxval;
}
//计算最小值
function calMin (arr) {
let min = 0;
let data = Math.min(...arr);
if (min > data) {
min = data;
}
let minint = Math.floor(min / 10);
let minval = minint * 10;//让显示的刻度是整数
return minval;
}
// echartsData是我的两组数据(柱状图和折线图)
let Max1, Min1, Max2, Min2;
if (echartsData) {
Max1 = calMax(echartsData.barEchartsZL.data);
Min1 = calMin(echartsData.barEchartsZL.data);
Max2 = calMax(echartsData.barEchartsZZL.data);
Min2 = calMin(echartsData.barEchartsZZL.data);
}
this.$refs.barEcharts.init({
color: ['#6571fc', '#08daaa',],
tooltip: {
trigger: 'axis',
backgroundColor: 'rgba(73,81,92,.95)', //背景颜色
borderWidth: '0', //边框为0
textStyle: {
color: '#fff' //字体颜色
},
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
}
},
legend: {
data: [echartsData.barEchartsZL.name, echartsData.barEchartsZZL.name],
right: 20,
top: 0
},
grid: {
left: '2%',
right: '2%',
bottom: '0',
top: '13%',
containLabel: true
},
xAxis: [
{
type: 'category',
boundaryGap: true, //坐标轴两端留空
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: "#D9D9D9"
}
},
axisLabel: {
show: true,
//formatter: '{value}月',
textStyle: {
padding: [10, 0, 0, 0],
color: "#333"
}
},
axisTick: {
show: false, //隐藏X轴刻度
},
data: echartsData.barEchartsYear,
},
],
yAxis: [
{
name: '单位:亿元',
type: 'value',
min: Min1,
max: Max1,
splitNumber: 5, // 坐标轴的分割段数(预估值)
interval: (Max1 - Min1) / 5,
axisLabel: {
textStyle: {
color: '#666',
},
},
//name的样式设计
nameTextStyle: {
color: '#333',
align: 'left',
lineHeight: '20',
padding: [0, 4, 5, -18],
},
splitLine: {
lineStyle: {
type: 'solid', //设置网格线类型 dotted:虚线 solid:实线
color: '#E9E9E9',
},
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
},
{
type: 'value',
min: Min2,
max: Max2,
splitNumber: 5, // 坐标轴的分割段数(预估值)
interval: (Max2 - Min2) / 5,
axisLabel: {
formatter: '{value}%', //轴线加单位
textStyle: {
color: '#666',
},
},
//name的样式设计
splitLine: {
lineStyle: {
type: 'solid', //设置网格线类型 dotted:虚线 solid:实线
color: '#E9E9E9',
},
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
},
],
series: [
{
name: echartsData.barEchartsZL.name,
type: 'bar',
barWidth: 20, //柱状图宽度
itemStyle: {
barBorderRadius: [20, 20, 0, 0],
},
emphasis: {
focus: 'series'
},
data: echartsData.barEchartsZL.data
},
{
name: echartsData.barEchartsZZL.name,
type: 'line',
emphasis: {
focus: 'series'
},
yAxisIndex: 1,
data: echartsData.barEchartsZZL.data
},
]
})
},
}
};
</script>
<style lang="scss" scoped>
</style>
多数据-弹出层共用一个Echats图表及Echarts双Y轴左右刻度不一致方法
猜你喜欢
转载自blog.csdn.net/Amily8512/article/details/122489288
今日推荐
周排行