f2 柱状图滚动 钉钉小程序_钉钉小程序图表刷新 antv-f2

公司有项目拟在钉钉小程序中实现部分功能,其中需要图表展示,经过与echart的比较,最终选择了阿里系的 F2,f2宣传的是“专注于移动,兼容多种环境(Node, 小程序,Weex)”,且有相关支持的文档,没有看到echart对阿里系的小程序支撑。

钉钉小程序引入F2

首先钉钉小程序如何引入F2图表,点击这里,参考支付宝的内容即可。

f2官方文档点这里

新手建议直接用 npm install @antv/my-f2 的方式引入,不要研究js引入,以及插件化的引入。

一个页面多个图表

我这个程序需要一个页面里有多个图表展示,那么就需要多个 canvas 进行渲染。

图表数据自动刷新

同时,还有需求是点击页签后,图表数据需要刷新,一开始想的是一个页签对应一套图表,页签变化,对应的图表就展示出来,越想这种方式越low,查了半天文档,发现f2 有 chart.changeData(data) 这个方法,马上就上手试一试。问题又来了,点击事件后,如何获取chart 对象,毕竟小程序不像 HTML那么容易通过document进行DOM操作。晚上睡了一觉,第二天突然就想到了全局变量的方式,页面图表init的时候,就把chart 对象赋值给全局对象,页签变动后,直接操作chart对象即可,而且官方API中 chart的所有方法都能用了。

下面直接上代码

页面代码

JS

import F2 from '@antv/my-f2';

let app = getApp();

let url = app.globalData.url;

// 图表的全局变量

let chart1 = null;

let chart2 = null;

let chart3 = null;

let data12 = [

{ year: '圣', sales: 100 },

{ year: '牌', sales: 10 },

];

let data11 = [

{ year: '圣', sales: 138 },

{ year: '牌', sales: 102 },

];

let data10 = [

{ year: '圣', sales: 238 },

{ year: '牌', sales: 152 },

];

let data20 = [

{ country: '明', population: 1314 },

{ country: '清', population: 2022 },

];

let data21 = [

{ country: '明', population: 1014 },

{ country: '清', population: 1022 },

];

let data22 = [

{ country: '明', population: 14 },

{ country: '清', population: 122 },

];

function drawChart11(canvas, width, height) {

chart1 =

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要安装 Taro 和 Vue.js。然后,你可以使用 F2 库来绘制基金净值走势图。 以下是一个基本的示例: 1. 在 Taro 项目中创建一个名为 Chart 的组件 ```jsx import Taro, { Component } from '@tarojs/taro' import { View } from '@tarojs/components' import F2 from '@antv/f2' import './chart.scss' class Chart extends Component { componentDidMount() { // 绘制图表 this.drawChart() } drawChart = () => { const chart = new F2.Chart({ el: this.refs.chart, width: Taro.pxTransform(750), height: Taro.pxTransform(300) }) const data = this.props.data // 传递基金净值数据 chart.source(data, { time: { type: 'timeCat', tickCount: 3, mask: 'MM-DD' } }) chart.axis('time', { label: function label(text, index, total) { const textCfg = {} if (index === 0) { textCfg.textAlign = 'left' } else if (index === total - 1) { textCfg.textAlign = 'right' } return textCfg } }) chart.line().position('time*value') chart.render() } render() { return ( <View className='chart'> <canvas ref='chart'></canvas> </View> ) } } export default Chart ``` 2. 在 Taro 页面中使用 Chart 组件 ```jsx import Taro, { Component } from '@tarojs/taro' import { View } from '@tarojs/components' import Chart from '../../components/Chart' class Fund extends Component { config = { navigationBarTitleText: '基金净值走势' } state = { data: [ { time: '2019-01-01', value: 1.0 }, { time: '2019-02-01', value: 1.2 }, { time: '2019-03-01', value: 1.5 }, { time: '2019-04-01', value: 1.8 }, { time: '2019-05-01', value: 1.7 }, { time: '2019-06-01', value: 1.9 } ] } render() { return ( <View className='fund'> <Chart data={this.state.data} /> </View> ) } } export default Fund ``` 3. 将 Taro 项目构建为原生 APP 和小程序 你可以使用 Taro 提供的命令将 Taro 项目构建为原生 APP 和小程序。例如,要将 Taro 项目构建为微信小程序,你可以运行以下命令: ``` npm run build:weapp ``` 这将生成一个 dist/weapp 目录,其中包含用于微信小程序的代码。 对于原生 APP,你需要使用 Taro 提供的其他命令和工具来构建和打包应用程序。具体细节请参考 Taro 的文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值