Echars 绘制饼图函数封装实现

效果如下:

代码如下:

  <!-- 图表 -->
  <div v-show="echartsBoxShow"  id="echarts_box"  class="echarts_box"></div>

<script> 
import echarts from 'echarts'
export default {
 name: 'statisticsItem', 
data() {
    return {
      loading: true, // 加载状态 
      searchDate:[],
      tableData: [], // 内容数据 
      totall: 0, // 数据条数
      currentPage: 1, // 当前所在页
      pagesize: 10, // 每页显示数
    }
},
created(){
    this.getData()
  },
 methods: {
    /**
     * 绘制图表
     * titleText 名称 
     * namelist  标注名称
     * selllist  销售量
     * valueName 销售内容信息
     */ 
    getEcharts(titleText, namelist, selllist,valueName) {
         var option = {
            title: {
                text: titleText,
            },
            tooltip: {
                trigger: 'item',
                formatter: '{a} <br/>商品名称: {b} <br/>销量: {c} <br/>占比: ({d}%)'  
            },
            legend: {
                type: 'scroll',
                orient: 'vertical',
                right: 10,
                top: 20,
                bottom: 20,
                data: namelist, 
                selected: selllist
            },
            series: [
                {
                    name: '商品信息',
                    type: 'pie',
                    radius: '55%',
                    center: ['40%', '50%'],
                    data: valueName,
                    emphasis: {
                        itemStyle: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
         }
        var echartsBox = document.getElementById('echarts_box')
        echartsBox.style = {
          display: "block",
          minWidth:  "100%"
        } 
        var myChart = echarts.init(echartsBox);
        window.onresize = myChart.resize();
        myChart.setOption(option, true);
    },
    getData(param) {
      let params = { // 请求参数
       ...param,
        'page': this.currentPage,
        'limit': this.pagesize
      }
      this.loading = true
      this.tableData = [
        {
          'name': '安慰',
          'id': 1,
          'order_total': 15,
          'order_numb':18, 
          'order_price': '343.33',
          'return_total': 10,
          'return_numb':12,
          'return_price': 156.35,
          'total_money': 152.36 
        },
        {
          'name': '伏牛山',
          'id': 2,
          'order_total': 15,
          'order_numb':18, 
          'order_price': '343.33',
          'return_total': 10,
          'return_numb':12,
          'return_price': 156.35,
          'total_money': 152.36 
        },
        {
          'name': '反对法',
          'id': 3,
          'order_total': 15,
          'order_numb':18, 
          'order_price': '343.33',
          'return_total': 10,
          'return_numb':12,
          'return_price': 156.35,
          'total_money': 152.36 
        },
        {
          'name': '伏牛山',
          'id': 4,
          'order_total': 15,
          'order_numb':18, 
          'order_price': '343.33',
          'return_total': 10,
          'return_numb':12,
          'return_price': 156.35,
          'total_money': 152.36 
        },
        {
          'name': '对反对法',
          'id': 5,
          'order_total': 15,
          'order_numb':18, 
          'order_price': '343.33',
          'return_total': 10,
          'return_numb':12,
          'return_price': 156.35,
          'total_money': 152.36 
        }
      ]
      this.totall = 11
      this.loading = false
      //图表参数
      let valueName = []
      let namelist = []
      let selllist = [] 
      if(this.tableData&&this.tableData.length>0){
        this.echartsBoxShow=true
        for(let i in  this.tableData){
          if(this.tableData[i]){
              valueName.push({
                name: this.tableData[i].name,
                value: this.tableData[i].order_numb
              });
              namelist.push(this.tableData[i].name);
              selllist.push(this.tableData[i].order_numb);
          }
        }
        this.getEcharts('客户统计',namelist,selllist,valueName)// titleText, namelist,                 selllist,valueName
      }else{
        this.echartsBoxShow=false 
      }
    }, 
  }
}
</script> 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Echarts绘制饼图,需要按照以下步骤操作: 1. 下载Echarts库并在HTML文档中引入。 2. 在JavaScript文件中定义一个用于初始化饼图函数,例如: ```javascript function initPieChart() { // 定义饼图的配置项和数据 var option = { title: { text: '饼图示例', left: 'center', top: 20, textStyle: { color: '#333' } }, tooltip: { trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, legend: { orient: 'vertical', left: 10, top: 80, data: ['数据1', '数据2', '数据3', '数据4', '数据5'] }, series: [ { name: '访问来源', type: 'pie', radius: ['50%', '70%'], avoidLabelOverlap: false, label: { show: false, position: 'center' }, labelLine: { show: false }, data: [ {value: 335, name: '数据1'}, {value: 310, name: '数据2'}, {value: 234, name: '数据3'}, {value: 135, name: '数据4'}, {value: 1548, name: '数据5'} ] } ] }; // 获取容器元素 var container = document.getElementById('pie-chart'); // 初始化饼图 var chart = echarts.init(container); // 设置饼图的配置项和数据 chart.setOption(option); } ``` 3. 在HTML文档中使用一个容器元素来显示饼图,例如: ```html <div id="pie-chart" style="width: 600px; height: 400px;"></div> ``` 4. 在HTML文档中调用初始化函数,例如: ```html <script type="text/javascript"> initPieChart(); </script> ``` 这样就可以使用Echarts绘制饼图了。需要注意的是,上述代码仅是一个简单的示例,实际应用中需要根据具体需求对配置项和数据进行相应的调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值