更新记录

1.3.0(2020-08-24)

增加渐变色例子; 增加this.$el初始化组件的例子,可避免App渲染失败,请根据需要使用

1.2.0(2020-07-21)

增加点击事件

1.1.5(2020-04-29)

修复上个版本echarts.min.js的问题,详情见echarts.min.js文件

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

echarts-renderjs

参考

本示例参考了 renderjs-echarts-demo 插件

注意事项

  • 仅支持 app-vue、h5 端
  • 要求 uni-app 2.5.5+ 以上版本
  • APP端要求使用v3编译器
  • 本例使用的echarts版本为4.2.1;经测试,4.7.0及以下版本均本会导致h5移动端不能与图形交互
  • 如等到renderjs可与业务层方便的通信时,请自行优化

解决的问题

  • 以组件形式使用echarts
  • 使用变通的方法解决echarts相关格式化函数不能使用的问题

回调方法不生效的解决办法

  • 前提:HBuilderX版本2.7.14,app端
  • 当前版本传入的回调方法到renderjs中就消失了。故目前解决方案是外部传入参数、标识,在renderjs中添加相应方法

点击事件

  • 前提:HBuilderX版本2.7.14,app端
  • 经测试,使用this.$el初始化组件时,点击事件不能触发,需设置id。这样的话,同一页面多个组件使用同一个option会导致只能显示一个
  • 点击事件的event对象直接传递到renderjs外时会报序列化错误,需要单独传递指定参数
  • echarts的点击事件数据需通过原生点击事件传递出去,详见代码注释说明

地图等其他js引入

  • 引入echarts相关的js时,最好串联着引入,即在上一个js的onload方法内引入下一个js,在最后一个onload方法内进行图表的初始化,防止因js未完全加载导致的图表显示异常
mounted() {
    if (typeof window.echarts === 'object') {
        this.init()
    } else {
        // 动态引入类库
        const script = document.createElement('script')
        script.src = './static/echarts.min.js'
        script.onload = this.init
        document.head。appendChild(script)
    }
},
methods: {
    /**
     * echarts.min.js的onload事件
     */
    init() {
      const script = document.createElement('script')
      script.src = './static/china.js' // 此文件没有提供,请自行下载
      script.onload = this.init2
      document.head。appendChild(script)
    },
    /**
     * china.js的onload事件
     */
    init2() {
      // 初始化图表
      this.chart = echarts.init(document.getElementById(this.option.id))
      this.update(this.option)
    }
}

App端加载图表失败的问题

  • 请尝试使用 echarts-el 组件,使用$el进行初始化,不支持点击事件
  • 如需要点击事件但App报错,请尝试首次赋值option时,延时1秒

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问