vue中饼状图的使用

图形构建子组件

<template>
	<div>
	  <div id="myChart" :style="echartStyle"></div>
	</div>
</template>

<script>
  export default {
    props: {
      // 样式
      echartStyle: {
        type: Object,
        default(){
          return {
           }
        }
      },
      // 提示框键名
      tooltipFormatter: {
        type: String,
        default: ''
      },
      // 扇形区域名称
      opinion: {
        type: Array,
        default(){
          return []
        }
      },
      // 提示框标题
      seriesName: {
        type: String,
        default: ''
      },
      // 扇形区域数据
      opinionData: {
        type: Array,
        default(){
          return []
        }
      },
    },
    data(){
      return {
      }
    },
    mounted(){
      this.$nextTick(function() {
        this.drawPie('myChart')
      })
    },
    methods: {
      // 监听扇形图点击
      eConsole(param) {
        // 向父组件传值
        this.$emit("currentEchartData",param.name);
      },
      // 绘制饼状图
      drawPie(id){
        this.charts = this.$echarts.init(document.getElementById(id));
        this.charts.on("click", this.eConsole);
        this.charts.setOption({
          title: {
            text: this.titleText, // 标题文本
            left: 'center'
          },
          tooltip : {
            trigger: 'item',
            formatter: "{a} <br/> " + this.tooltipFormatter + ":{c}"
          },
          legend: {
            bottom: 20,
            left: 'center',
            data: this.opinion // 扇形区域名称
          },
          series : [
            {
              name:this.seriesName,  // 提示框标题
              type: 'pie',
              radius : '60%',
              center: ['50%', '60%'],
              selectedMode: 'single',
			  color:['#4383C9','#7B5BAA','#BA6329','#B92E2E','#6E8C34','#21A579'],
              data:this.opinionData, // 扇形区域数据
              itemStyle: {
                emphasis: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ]
        })
      }
    },
	watch:{
	    	opinionData:{
	    		handler(val,oldval){
	    		this.opinionData=val
	    		this.drawPie('myChart')
	    	},
	    	deep:true
	     }
	    }
  }
</script>

  父组件

<div class="chartright fr">
               	<Echarts
			:echartStyle="s"
			:tooltipFormatter="b"
			:seriesName="d"
			:opinionData="g"
			 v-on:currentEchartData="getEchartData"
		 ></Echarts>
</div>
<script>
	export default {
	    data() {
	      return {
	      	          b:'开房数量',
			  d:'开房统计',  
			   g:[ ],	
			   s: {
				 height: '150px',
			  }
	      }
	    },
//	    props:['monData'],
//	       methods:{
//		    getEchartData(val){
//		    console.log(val);
//		  }
//	    },
//	    watch:{
//	    	monData:{
//	    		handler(val,oldval){
//	    			console.log(val.openhouseStyle)
//	    			for(let i=0;i<val.openhouseStyle.length;i++){
//	    				this.g[i].value=val.openhouseStyle[i]
//	    			}
//	    			for(let i=0;i<val.refundStyle.length;i++){
//	    				this.e[i].value=val.refundStyle[i]
//	    			}
//	    			console.log(this.g)
//	    		}
//	    	},
//	    }
 };
</script>

  (房屋管理)

posted @ 2018-10-11 13:55  麦麦芽  阅读(2630)  评论(0编辑  收藏  举报