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

    1.安装echarts依赖

    npm install echarts -S
    

    或者使用国内的淘宝镜像:

    安装

    npm install -g cnpm --registry=https://registry.npm.taobao.org

    使用

    cnpm install echarts -S
    

    2.创建图表

    全局引入

    main.js

    // 引入echarts
    import echarts from 'echarts'
    Vue.prototype.$echarts = echarts 
    

    Hello.vue

    <div id="myChart" :style="{ '300px', height: '300px'}"></div>
    

    3.mounted 中调用 (mounted 是 vue 的生命周期,表示挂载完毕,html 已经渲染)

    mounted(){
        this.$nextTick(function() {
            this.drawPie('myChart')
        })
    }
    

    4.组件

    <template>
      	<!--为echarts准备一个具备大小的容器dom-->
      	<div id="myChart" style="300px;height:300px;"></div>
    </template>
    
    <script>
        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 = $echarts.init(document.getElementById(id));
                   	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('myChart')
                })
            }
        }
    </script>
    
    <style scoped>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }
    </style>
    

    5.效果图

    6.监听扇形区域点击事件

  • 相关阅读:
    python快速查看内置模块函数
    kettle -小技巧 null 跳过唯一索引
    IOException:Connection refused:connect Kettle连接数据库
    各种数据库的jdbc驱动下载及连接方式
    DataCleaner中文文档
    ModuleNotFoundError: No module named 'xlwt' 。
    liunx 常用命令
    Mysql 环境搭建详解
    查询mysql所有表数据、字段信息
    mysqp pk、nn、qu、b、un、zf、ai、g代表的意思
  • 原文地址:https://www.cnblogs.com/crazycode2/p/7871976.html
Copyright © 2011-2022 走看看