小程序`EChart`

可以与后台数据交互

一、 正常流程(抄Echart官方的)

1、index.json 配置如下:

{
  "usingComponents": {
    "ec-canvas": "../../ec-canvas/ec-canvas"
  }
}

2、index.wxml 中,创建了一个 <ec-canvas> 组件,内容如下:

<ec-canvas id="mychart-dom-line" canvas-id="mychart-line"  ec='{{ec}}'></ec-canvas>

3、其中 ec 是一个我们在 index.js 中定义的对象,它使得图表能够在页面加载后被初始化并设置。index.js 的结构如下:

import * as echarts from '../../ec-canvas/echarts';
function initChart(canvas, width, height) {
  const chart = echarts.init(canvas, null, {
    width: width,
    height: height
  });
  canvas.setChart(chart);

  var option = {
    ...
  };
  chart.setOption(option);
  return chart;
}

Page({
  data: {
    ec: {
      onInit: initChart
    }
  }
});

这对于所有 ECharts 图表都是通用的,用户只需要修改上面 option 的内容,即可改变图表。option 的使用方法参见 ECharts 配置项文档。对于不熟悉 ECharts 的用户,可以参见 5 分钟上手 ECharts 教程。

完整的例子请参见 ecomfe/echarts-for-weixin 项目。

二、通过后台数据进行渲染

1、初始化

import * as echarts from '../../ec-canvas/echarts';
// 初始化图表
var charto = null;
var weightCanvasone = null;
function initCharto(canvas, width, height) {
  charto = echarts.init(canvas, null, {
    width: width,
    height: height
  });
  canvas.setChart(charto);
  weightCanvasone = canvas;
  return charto;
}

Page({
    data:{
        eco: {
            onInit : initCharto
        },
    }
    onLoad:{
    }
})

2、获取数据,渲染

1530086019040.png
wx.request({
      //这是我们公司获取数据写法,不要盲目抄取
      url: '后台URL',
      method: 'POST',
      data: {
        interId: '30006',
        version: 1,
        authKey: wx.getStorageSync('authKey'),
        method: 'w-chart',
      },
      success: function (res) {
        console.info('====== w-chart ======')
        console.info(res)
        if (res.data.status == '00') {
          that.setData({
            lastWeight: res.data.lastWeight,
            wChart: res.data.chart
          })
            //数据处理,将数据分为X轴数据,和
            var x = [];
            var y = [];
            for (let i = 0; i < that.data.wChart.length; i++) {
            x[i] = that.data.wChart[i][0];
            y[i] = that.data.wChart[i][1];
            }
            var optionone = { 
                //图表在这里配置
            };
            that.data.chart1 = optionone;
            that.drawCharto = () => {
                    charto.setOption(that.data.chart1);
                    weightCanvasone.setChart(charto);
             }
        }
      }
})

三、 总结

1、希望大家先用官方配置一遍再尝试使用后台数据渲染,
2、「 option 」图表配置需要后台数据,所以需要将其独立出来处理。

对你有帮助的话,记得点赞收藏,你的支持是对我最大的鼓励~!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 最近工作涉及到某垂直类小众视频工具、社区类产品,于是找了几款综合或其他方向垂直类的产品来分析了下。没有参考什么所谓...
    进击的安酱阅读 2,320评论 3 8
  • 小朱今天真是中了乐透奖,虽不是真中,可比真中还管用。 想想!万龙商业大楼,何等有名的建筑?万龙公司又是多么有名的企...
    老炮佳盈阅读 499评论 0 0
  • 引群中文 老人要有好心情 人到老年,不被争权夺利所扰,不为金钱美色动心,不乞求鲜花掌声,不羡慕洋楼别墅,知...
    钝角阅读 822评论 1 52
  • 做起事情来,要经常想为什么?也许为了重拾被践踏的理想、或者为了一句承诺、或者为了替小伙伴出口气、或者为了获得别人的...
    黑伯阅读 510评论 0 2