123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <template>
- <div class="chart_a">
- <div id="chart_a" style="width: 80%;height:400px;"></div>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- series: [],
- optionKeys: [],
- time: []
- };
- },
- props: {
- option: { type: Object }
- },
- created() {},
- watch: {
- option(nVal, oVal) {
-
- this.optionKeys = Object.keys(this.option);
- this.series = [];
- Object.keys(this.option).forEach(key => {
- this.series.push({
- name: "通道" + key,
- type: "line",
- data: this.option[key].data.reverse(),
- markPoint: {
- data: [
- { type: "max", name: "最大值" },
- { type: "min", name: "最小值" }
- ]
- },
- markLine: {
- data: [{ type: "average", name: "平均值" }]
- }
- });
- });
- this.time = this.option[this.optionKeys[0]].time.reverse();
- this.drawChart();
- }
- },
- mounted() {
- this.drawChart();
- },
- methods: {
- drawChart() {
- // 基于准备好的dom,初始化echarts实例
- let myChart = this.$echarts.init(
- document.getElementById("chart_a")
- );
- // 指定图表的配置项和数据
- let option = {
- title: {
- text: "温度",
- // subtext: this.subtext,
- left: 100
- },
- tooltip: {
- trigger: "axis",
- formatter: function(params) {
- let str = `${params[0].axisValue}`;
- params.forEach(item => {
- str += `<br /><span style='width:10px;height:10px;background-color:#f00;border-radius:50%;display: inline-block;margin-right:3px;'></span>${item.seriesName}:${item.value} ℃`;
- });
- return str;
- }
- },
- toolbox: {
- show: true,
- feature: {
- dataZoom: {
- yAxisIndex: "none"
- },
- dataView: { readOnly: false },
- magicType: { type: ["line", "bar"] },
- restore: {},
- saveAsImage: {}
- }
- },
- color: {
- type: "linear",
- x: 0,
- y: 0,
- x2: 0,
- y2: 1,
- colorStops: [
- {
- offset: 0,
- color: "red" // 0% 处的颜色
- },
- {
- offset: 1,
- color: "blue" // 100% 处的颜色
- }
- ]
- },
- xAxis: {
- type: "category",
- boundaryGap: false,
- data: this.time
- },
- yAxis: {
- type: "value",
- axisLabel: {
- formatter: "{value} °C"
- },
- scale: true
- },
- series: this.series
- };
- // 使用刚指定的配置项和数据显示图表。
- myChart.setOption(option);
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- </style>
|