You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xy-frontend/src/echartsDemo.vue

338 lines
8.3 KiB
Vue

<template>
<div class="echartsBox">
<div class="gropName">
<el-checkbox-group v-model="checkList">
<el-checkbox
v-for="item in qtOption"
:label="item.groupName"
:key="item.groupName"
><span v-if="item.groupName == 'H2'">{{ item.groupName }}()</span>
<span v-if="item.groupName == 'CO'"
>{{ item.groupName }}(一氧化碳)</span
>
<span v-if="item.groupName == 'CH4'">{{ item.groupName }}()</span>
<span v-if="item.groupName == 'C2H4'"
>{{ item.groupName }}(乙烯)</span
>
<span v-if="item.groupName == 'C2H6'"
>{{ item.groupName }}(乙烷)</span
>
<span v-if="item.groupName == 'C2H2'"
>{{ item.groupName }}(乙炔)</span
></el-checkbox
>
</el-checkbox-group>
</div>
<div id="demo1"></div>
<div id="demo2"></div>
<div id="demo3"></div>
</div>
</template>
<script>
import axios from "axios";
export default {
name: "",
data() {
return {
checkList: [], //选中勾选框
qtOption: [], //气体数据
myChart: "",
xData1: [], //横坐标
lineData1: [], //纵坐标
yMax1: "", //y轴最大值
xData2: [], //横坐标
lineData2: [], //纵坐标
yMax2: "", //y轴最大值
xData3: [], //横坐标
lineData3: [], //纵坐标
yMax3: "", //y轴最大值
};
},
created() {
this.getMenuData1();
this.getMenuData2();
this.getMenuData3();
},
mounted() {},
watch: {},
methods: {
//图表1
getMenuData1() {
axios
.get("/aa.json")
.then((res) => {
console.log("getMenuData", res);
// this.qtOption = res.data.config.channels[0].crests;//气体
// console.log(this.qtOption);
this.lineData1 = res.data.data[0]; //纵坐标数据
this.yMax1 = res.data.config.yMax; //y轴最大值
var timeSpan = 1; //时间间隔
for (
var i = 0;
i < res.data.config.numberOfData * timeSpan;
i = i + timeSpan
) {
console.log(i);
this.xData1.push(i);
}
//横坐标数据
this.getEchart1();
})
.catch((error) => {
console.log(error);
});
},
//图表2
getMenuData2() {
axios
.get("/bb.json")
.then((res) => {
this.lineData2 = res.data.data[0]; //纵坐标数据
this.yMax2 = res.data.config.yMax; //y轴最大值
var timeSpan = 1; //时间间隔
for (
var i = 0;
i < res.data.config.numberOfData * timeSpan;
i = i + timeSpan
) {
console.log(i);
this.xData2.push(i);
}
//横坐标数据
this.getEchart2();
})
.catch((error) => {
console.log(error);
});
},
//图表3
getMenuData3() {
axios
.get("/cc.json")
.then((res) => {
this.lineData3 = res.data.data[0]; //纵坐标数据
this.yMax3 = res.data.config.yMax; //y轴最大值
var timeSpan = 1; //时间间隔
for (
var i = 0;
i < res.data.config.numberOfData * timeSpan;
i = i + timeSpan
) {
console.log(i);
this.xData3.push(i);
}
//横坐标数据
this.getEchart3();
})
.catch((error) => {
console.log(error);
});
},
//装置数量统计
getEchart1() {
this.$nextTick(() => {
let that = this;
that.myChart = this.$echarts.init(document.getElementById("demo1"));
let option = {
title: {
text: "图表一",
left: "center",
},
tooltip: {
trigger: "axis",
axisPointer: {
animation: false,
},
},
dataZoom: [
{
type: "inside",
start: 0,
end: 100,
},
{
start: 0,
end: 100,
},
],
xAxis: {
type: "category",
data: this.xData1, // 把时间组成的数组接过来放在x轴上
boundaryGap: false,
showMaxLabel: true,
},
yAxis: {
type: "value",
// min: 20000,
//max: this.yMax1,
},
series: [
{
data: this.lineData1,
type: "line",
smooth: true,
symbol: "none",
sampling: "lttb",
itemStyle: {
color: "rgb(255, 70, 131)",
},
},
],
};
that.myChart.setOption(option);
window.addEventListener("resize", () => {
that.myChart.resize();
});
});
},
//装置数量统计
getEchart2() {
this.$nextTick(() => {
let that = this;
that.myChart = this.$echarts.init(document.getElementById("demo2"));
let option = {
title: {
text: "图表二",
left: "center",
},
tooltip: {
trigger: "axis",
axisPointer: {
animation: false,
},
},
dataZoom: [
{
type: "slider",
start: 0,
end: 100,
},
{
start: 0,
end: 100,
},
],
xAxis: {
type: "category",
data: this.xData2, // 把时间组成的数组接过来放在x轴上
boundaryGap: false,
showMaxLabel: true,
},
yAxis: {
type: "value",
// min: 20000,
// max: this.yMax2,
},
series: [
{
data: this.lineData2,
type: "line",
smooth: true,
symbol: "none",
sampling: "lttb",
itemStyle: {
color: "rgb(255, 70, 131)",
},
},
],
};
that.myChart.setOption(option);
window.addEventListener("resize", () => {
that.myChart.resize();
});
});
},
//装置数量统计
getEchart3() {
this.$nextTick(() => {
let that = this;
that.myChart = this.$echarts.init(document.getElementById("demo3"));
let option = {
title: {
text: "图表三",
left: "center",
},
tooltip: {
trigger: "axis",
axisPointer: {
animation: false,
},
},
dataZoom: [
{
type: "inside",
start: 0,
end: 100,
},
{
start: 0,
end: 100,
},
],
xAxis: {
type: "category",
data: this.xData3, // 把时间组成的数组接过来放在x轴上
boundaryGap: false,
showMaxLabel: true,
},
yAxis: {
type: "value",
boundaryGap: [0, "100%"],
// min: 20000,
//max: this.yMax3,
},
series: [
{
data: this.lineData3,
type: "line",
showAllSymbol: true,
smooth: true,
symbol: "none",
sampling: "lttb",
itemStyle: {
color: "rgb(255, 70, 131)",
},
},
],
};
that.myChart.setOption(option);
window.addEventListener("resize", () => {
that.myChart.resize();
});
});
},
},
};
</script>
<style lang="less">
.echartsBox {
height: calc(100% - 32px);
padding: 16px;
display: flex;
flex-direction: column;
// justify-content: space-around;
#demo1,
#demo2,
#demo3 {
height: 400px;
width: 80%;
}
.gropName {
.el-checkbox-group {
display: flex;
flex-direction: column;
.el-checkbox {
height: 40px;
line-height: 40px;
}
}
}
}
</style>