钉钉小程序----使用阿里的F2图表

在钉钉小程序中使用F2的图表遇见很多问题

不能点击或者点击错乱的问题还没有解决,因为我解决不了。。。。。。。。。。。。。。。。。。。。。。。。。。。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

渲染问题:一个图表大一个图表小的问题,setData是异步机制,因此每次在渲染数据的时候先设置宽高,完了再setData的回调里面再去执行其他。

找到安装的模块下f2,改变源码,如下图。

 

2.图表使用的例子

在js中

Component({
  data:{
    chartDataNew1: [{
        title: '掘进',
        ring: '163',
        value: 16
      }, {
        title: '掘进',
        ring: '175',
        value: 26
      }, {
        title: '停机',
        ring: '163',
        value: 16
      }, {
        title: '停机',
        ring: '175',
        value: 26
      }, {
        title: '拼环',
        ring: '163',
        value: 36
      }, {
        title: '拼环',
        ring: '185',
        value: 25
      }, {
        title: '停机',
        ring: '185',
        value: 25
      }, {
        title: '停机',
        ring: '195',
        value: 25
      }, {
        title: '拼环',
        ring: '195',
        value: 25
      }, {
        title: '拼环',
        ring: '275',
        value: 25
      }, {
        title: '拼环',
        ring: '275',
        value: 25
      }, {
        title: '拼环',
        ring: '375',
        value: 25
      }, {
        title: '拼环',
        ring: '375',
        value: 25
      }, {
        title: '拼环',
        ring: '475',
        value: 25
      }, {
        title: '停机',
        ring: '475',
        value: 25
      }
    ],
    chartDataNew: [
      {
        name: '推进',
        percent: 0.6,
        a: '1'
      }, {
        name: '拼装',
        percent: 0.4,
        a: '1'
      }, {
        name: '辅助',
        percent: 0.1,
        a: '1'
      }, {
        name: '故障',
        percent: 0.3,
        a: '1'
      }, {
        name: '其他',
        percent: 0.2,
        a: '1'
      }
    ],
    map: {
      '推进': '60%',
      '拼装': '40%',
      '辅助': '10%',
      '故障': '30%',
      '其他': '20%',
    },
  },
  methods: {
    // 图表1
    onDraw(ddChart) {
      //dd-charts组件内部会回调此方法,返回图表实例ddChart
      //提示:可以把异步获取数据及渲染图表逻辑放onDraw回调里面
      ddChart.clear()
      let chartDataNew = this.data.chartDataNew
      let map = this.data.map
      ddChart.source(chartDataNew, {
        percent: {
          formatter: function formatter(val) {
            return val * 100 + '%';
          }
        }
      })
      ddChart.legend({
        position: 'top',
        align: 'center',
        itemFormatter: function itemFormatter(val) {
          return val + '  ' + map[val];
        }
      })
      ddChart.tooltip(false)
      ddChart.coord('polar', {
        transposed: true,
        radius: 1.9
      })
      ddChart.axis(false);
      ddChart.interval().position('a*percent').color('name', ['#61E2C4', '#52AAFE', '#A0AEFA', '#F38E68', '#868B96 ']).adjust('stack').style({
        lineWidth: 1,
        stroke: '#fff',
        lineJoin: 'round',
        lineCap: 'round'
      }).animate({
        appear: {
          duration: 1200,
          easing: 'bounceOut'
        }
      })
      ddChart.render();
    },
    // 图表2
    onDraw1(ddChart) {
      //dd-charts组件内部会回调此方法,返回图表实例ddChart
      //提示:可以把异步获取数据及渲染图表逻辑放onDraw回调里面
      ddChart.clear()
      let chartDataNew = this.data.chartDataNew1
      ddChart.scale({
        ring: {
          range: [0.05, 1]
        }
      })
      ddChart.source(chartDataNew, {
        title: {
          min: 0,
          formatter: function formatter(val) {
            return val;
          }
        }
      })
      ddChart.interval().position('ring*value').color('title').adjust('stack');
      ddChart.render();
    },
  }  
})

在axml中

<dd-charts canvasId="ddchart-dom-bar" onDraw="onDraw"></dd-charts>
<dd-charts canvasId="ddchart-dom-bar1" onDraw="onDraw1"></dd-charts>

 

posted @ 2019-09-17 16:40  小伍w  阅读(5050)  评论(5编辑  收藏  举报