微信小程序使用echarts图表

该文章介绍了如何在微信小程序中集成并使用Echarts图表插件,特别是展示了树形图的配置和初始化过程。通过设置组件和导入Echarts库,然后在页面onReady时初始化图表,并提供了加载和释放图表的方法。
摘要由CSDN通过智能技术生成

微信小程序的图表插件,自认为echarts还是比较方便的

程序码

在这里插入图片描述

组件案例

在这里插入图片描述

安装使用
  1. 下载代码,链接

  2. ec-canvas 目录是需要的组件,pages里各案例代码

  3. ec-canvas 直接复制添加到小程序文件内
    在这里插入图片描述

  4. json文件

      "usingComponents": {
        "ec-canvas": "../../component/ec-canvas/ec-canvas",
        "van-popup": "/miniprogram_npm/@vant/weapp/popup/index"
      }
    }
    
  5. js 文件

    import * as echarts from '../../component/ec-canvas/echarts';
    
    const app = getApp();
    
    function setOption(chart) {
      var data1 = {"name":"1","children":[{"name":"2"},{"name":"3","children":[{"name":"44"},{"name":"5"},{"name":"6"},{"name":"7"},{"name":"8"}]}]};
    
      const option = {
        series: [{
          type: 'tree',
    
          initialTreeDepth: -1,
    
          name: 'tree1',
    
          data: [data1],
    
          top: '5%',
          left: '20%',
          bottom: '2%',
          right: '15%',
    
          symbolSize: 10,
          symbol: 'circle',
    
          label: {
            normal: {
              position: 'left',
              verticalAlign: 'middle',
              align: 'right',
              color: 'black'
            }
          }
    
        }]
      };
      chart.setOption(option);
    }
    
    Page({
    
      onReady: function () {
        // 获取组件
        this.ecComponent = this.selectComponent('#mychart-dom-bar');
      },
    
      data: {
        ec: {
          // 将 lazyLoad 设为 true 后,需要手动初始化图表
          lazyLoad: true
        },
        isLoaded: false,
        isDisposed: false
      },
    
      // 点击按钮后初始化图表
      init: function () {
        this.ecComponent.init((canvas, width, height, dpr) => {
          // 获取组件的 canvas、width、height 后的回调函数
          // 在这里初始化图表
          const chart = echarts.init(canvas, null, {
            width: width,
            height: height,
            devicePixelRatio: dpr // new
          });
          setOption(chart);
    
          // 将图表实例绑定到 this 上,可以在其他成员函数(如 dispose)中访问
          this.chart = chart;
    
          this.setData({
            isLoaded: true,
            isDisposed: false
          });
    
          // 注意这里一定要返回 chart 实例,否则会影响事件处理等
          return chart;
        });
      },
    
      dispose: function () {
        if (this.chart) {
          this.chart.dispose();
        }
    
        this.setData({
          isDisposed: true
        });
      }
    });
    
  6. wxml 文件

    <style>
     /**index.wxss**/
    .container{
      
      width: 100%;
      height: 90vh;
    
    }
    ec-canvas {
      position: absolute;
      top: 80px;
      bottom: 0;
      left: 0;
      right: 0;
    }
    
    button {
      margin: 10px;
    }
    </style>
    <view class="container">
      <button bindtap="init" wx:if="{{!isLoaded}}">加载图表</button>
      <button bindtap="dispose" wx:if="{{isLoaded && !isDisposed}}">释放图表</button>
      <ec-canvas wx:if="{{!isDisposed}}" id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
    </view>
    
  7. 注意事项
    包含echats的Dom要在页面加载时构建好,否则init会找不到dom生成
    canvas在小程序内层级非常高,会覆盖底层,失去交互
    需要在弹窗内出现时,可以在页面dom加载后先隐藏canvas容器,根据业务需要出现时再显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值