Element + Vue之封装的Echarts折线图组件

调用该组件需要传以下几个参数

  • id: 该echarts盒子的id(可以随意设置,它是echarts渲染的关键要素,同时我用它来在一个页面多次调用该组件而做的区分)
  • option: 该折线图的option配置代码,主要是大部分折线图每一个配置都不一样,不是单纯的改改数据而已,由于时间问题,我也没有再进行进一步的封装。
<template>
    <div :id="id" :option="option" class="mychart"></div>
</template>
<script>
export default {
    name: 'linechart',
    props: ['id','option'],
    data(){
        return {
            myChart: null
        }
    },
    mounted(){
    	// 页面加载完毕调用渲染图表的方法
        this.lineChart(this.id,this.option)
        // 处理echarts响应式问题
        window.addEventListener("resize",function(){
            if(this.myChart) {
                this.myChart.resize()
            }
        })
    },
    methods: {
    	// 渲染图表
        lineChart(id,option){
        	// 每次重绘前先清除echarts,不然没有绘制线的动画
       		if(this.myChart) this.myChart.clear();
            if(document.getElementById(id)) {
                this.myChart = this.$echarts.init(document.getElementById(id))
                this.myChart.setOption(option,true)
            }
        }
    },
    watch: {
    	// 监听父组件传过来option的变化(主要是数据切换)
        option:{
            handler(newValue) {
                if(document.getElementById(this.id)) {
                    this.myChart = this.$echarts.init(document.getElementById(this.id))
                    this.lineChart(this.id,newValue)
                }
            },
            deep: true
        }
    },
}
</script>

<style lang="less" scoped>
.mychart {
    max-width: 100%;

    /deep/div:nth-child(1) {
        width: 100% !important;  
        max-width: 100%;
    }

    /deep/canvas {
        // width: 100% !important;
        max-width: 100%;
    }
}
</style>


父组件调用
<linechart :id="'flowEchart'" :option="tabActive==0?flowEchart:inquireEchart" style="width: 100%;max-width: 100%;height: 220px;"></linechart>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会做饭的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值