zoukankan      html  css  js  c++  java
  • vue使用echarts

    一、安装echarts依赖

    npm install echarts -S

    二、引入echarts

    (1)全局引入

    main.js

    import echarts from "echarts";

    然后更改原型链,这样就可以在全局使用通过this.$echarts来全局使用了

    Vue.prototype.$echarts = echarts;

    使用图表

    新建一个组件element.vue组件

    <template>
      <!--为echarts准备一个具备大小的容器dom-->
      <div id="main" style=" 600px;height: 400px;"></div>
    </template>
    <script>
    //import echarts from 'echarts'
        export default {
            name: '',
            data () {
                return {
                    charts: '',
                    opinion:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'],
                    opinionData:[
                      {value:335, name:'直接访问'},
                      {value:310, name:'邮件营销'},
                      {value:234, name:'联盟广告'},
                      {value:135, name:'视频广告'},
                      {value:1548, name:'搜索引擎'}
                    ]
                }
            },
            methods:{
                drawPie(id){
                   this.charts = this.$echarts.init(document.getElementById(id));//$echarts就是引入时原型链的更改
                   this.charts.setOption({
                     tooltip: {
                       trigger: 'item',
                       formatter: '{a}<br/>{b}:{c} ({d}%)'
                     },
                     legend: {
                       orient: 'vertical',
                       x: 'left',
                       data:this.opinion
                     },
                     series: [
                       {
                         name:'访问来源',
                         type:'pie',
                         radius:['50%','70%'],
                         avoidLabelOverlap: false,
                         label: {
                           normal: {
                             show: false,
                             position: 'center'
                           },
                           emphasis: {
                             show: true,
                             textStyle: {
                               fontSize: '30',
                               fontWeight: 'blod'
                             }
                           }
                         },
                         labelLine: {
                           normal: {
                             show: false
                           }
                         },
                         data:this.opinionData
                       }
                     ]
                   })
                }  
            },
          //调用
            mounted(){
                this.$nextTick(function() {
                    this.drawPie('main')
                })
            }
        }
    </script>
    <style scoped>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }
    </style>
    

      

    (二)按需引入

    这时就不需要再main.js中进行配置了

    再组件中引入自己需要的模板,更多模板https://github.com/ecomfe/echarts/blob/master/index.js

    <script>
    // 引入基本模板
    // let echarts = require(‘echarts/lib/echarts‘)
    var echarts = require(‘echarts‘)
    // 引入柱状图组件
    require(‘echarts/lib/chart/bar‘)
    // 引入提示框和title组件
    require(‘echarts/lib/component/tooltip‘)
    require(‘echarts/lib/component/title‘)
    export default {
        name: ‘eCharts‘,
        data () {
            return {
            msg: ‘Welcome to Your Vue.js App‘
            }
        },
        mounted(){
            this.drawLine();
        },
        methods: {
            drawLine(){
                // 基于准备好的dom,初始化echarts实例
                var myChart = echarts.init(this.$el);//console.log(this.$el)
                // 绘制图表
                myChart.setOption({
                    title: { text: ‘在Vue中使用echarts‘ },
                    tooltip: {},
                    xAxis: {
                        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
                    },
                    yAxis: {},
                    series: [{
                        name: ‘销量‘,
                        type: ‘bar‘,
                        data: [5, 20, 36, 10, 10, 20]
                    }]
                });
            }
        }
    }
    </script>
    

      

     注:这里用 requir 不用 import 引入是因为 import 需要详细的路径

    另外 

    var myChart = echarts.init(this.$el);//this.$el指的是当前组件的元素
    按需引用的时候将 this.$echarts 改为 echarts(引入时的名)

     三、echarts图表自适应

    mounted() {
        let vueThis = this;
        window.addEventListener("resize",function (event) {
            vueThis.chart.resize();
        })
    }
    

      

  • 相关阅读:
    【数学】杜教筛
    【数学】【多项式】多项式求逆
    【数学】求导
    【数学】【多项式】快速数论变换(NTT)
    【数学】【多项式】快速傅里叶变换(FFT)
    WC2021 Day3 笔记
    网络流
    $DP$ 重修
    数学基础 5
    数学基础 3
  • 原文地址:https://www.cnblogs.com/YAN-HUA/p/9603292.html
Copyright © 2011-2022 走看看