npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@visactor/lark-vchart

v1.12.12

Published

VChart 飞书小程序组件

Downloads

1,633

Readme

@visactor/lark-vchart

@visactor/lark-vchart 是 VChart 为飞书小程序封装的图表组件库,用于支持飞书小程序上的图表渲染。支持通过 npm 方式引入。

该组件库只是做了环境的封装,配置项以及 API 同 VChart 完全一致,对应的文档详见 VChart

环境要求

飞书版本 >= 3.45。 飞书开发者工具

API

@visactor/lark-vchart 图表组件使用示例如下:

<chart
  canvas-id="chart"
  spec="{{ spec }}"
  styles="{{ styles }}"
  events="{{ events }}"
  bind:chartinit="onChartInit"
  bind:chartready="onChartReady"
/>
  • canvas-id 为图表 id,与 dom 的 id 一致,请确保 id 不重复。
  • spec 是 VChart 的核心概念,跨端组件的 spec 与 PC 端保持一致。图表配置例子可以参见 VChart 图表示例 。对于不熟悉 VChart 的用户,可以参见 快速开始 VChart 教程。
  • styles 为图表容器样式,可以用于控制图表宽高等样式。
  • events 是一个对象数组,用于注册一系列事件,其定义如下,具体的事件名称、事件筛选配置以及回调函数的参数详见 VChart 事件 API
interface IEvent {
  /**
   * 事件的名称
   */
  type: string;
  /**
   * 事件 API 中的事件筛选配置
   */
  query?: object;
  handler: (event) => void;
}
  • bind:chartinit 是一个回调函数,在图表初始化完成后调用。
  • bind:chartready 是一个回调函数,在图表完成渲染后调用。

如何使用

除了阅读下面的使用说明,也可以直接移步 lark-vchart-example

前提

在使用 VChart 飞书小程序组件库前,请确保你已经了解过飞书开放平台的相关文档介绍。

Step1: 开启 npm 能力

开启编辑器 > 详情 > 本地设置 > 使用 npm,具体操作可阅读开启 npm 能力

Image

务必注意:npm 包的 package.json 文件需要在 project.config.json 所定义的 miniprogramRoot 内。

Step2: 安装 @visactor/lark-vchart

$ npm install @visactor/lark-vchart

Step3: 创建 demo 页面

结构如下:

├── pages
│ └── demo
│ └── index.js # 页面 js
│ ├── index.json # 页面 json 配置
│ ├── index.ttml # 页面 xml 结构
│ ├── index.ttss # 页面样式

Step4: 引用组件

在 index.json 中配置如下内容即可,使用 chart 自定义组件。

{
  "usingComponents": {
    "chart": "@visactor/lark-vchart/index"
  }
}

Step5: 创建图表

  1. index.ttml 准备如下的 xml 结构:
<chart
  canvas-id="chart"
  spec="{{ spec }}"
  styles="{{ styles }}"
  events="{{ events }}"
  bind:chartinit="onChartInit"
  bind:chartready="onChartReady"
/>
  1. index.js 中准备图表的所需的配置
Page({
  data: {
    canvasId: 'chartId', // canvasId 图表唯一Id
    events: [], // events 自定义事件
    styles: `
      height: 50vh;
      width: 100%
    `, // 样式字符
    // 图表配置项
    spec: {
      type: 'pie',
      data: [
        {
          id: 'data1',
          values: [
            { value: 335, name: '直接访问' },
            { value: 310, name: '邮件营销' },
            { value: 274, name: '联盟广告' },
            { value: 123, name: '搜索引擎' },
            { value: 215, name: '视频广告' }
          ]
        }
      ],
      outerRadius: 0.6,
      categoryField: 'name',
      valueField: 'value'
    }
  },
  onLoad: function (options) {}
});

注意事项

  1. 飞书小程序现阶段由于序列化问题,还不支持在 setData 以及 triggerEvent 中传递复杂对象及函数,只支持可序列号的数据。因此 events 功能, chartinit 回调参数, chartready 回调参数暂不可用

针对一些需要使用到 chart 实例的功能,目前可以通过 selectComponent ,在给组件 <chart id="chart1"> 标明 id 属性后,通过 selectComponent 拿到图表实例,如下所示:

onChartReady() {
	console.log('chart 实例渲染完成');
	this.selectComponent("#chart1", res => {
		const chartInstance = res && res.chart; // 获取 chart 实例
    console.log('获取 VChart 实例', chartInstance);
	});
},

问题反馈

如果在使用过程中发现问题,欢迎在 GitHub issues 中向我们反馈,非常感谢!

如何开发

使用飞书开发者工具,选择【小程序】导入本项目即可。