文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

uni-app微信小程序使用echarts的详细图文教程

2022-11-13 18:20

关注

前言:

本来是使用的ucharts,但因为无法监听图例点击交互,满足不了需求,所以只能放弃。

首先,下载echart组件。

可以先随便建个文件夹,然后 npm init。接着下载依赖

npm install echarts mpvue-echarts

然后找到 node_modules\mpvue-echarts\下的文件,如图

只留下src,其他的删掉(没有用到)。然后复制 mpvue-echarts文件夹到你项目的components中。如图

接着需要echarts.min.js文件。

链接: ECharts 在线构建定制echarts的js文件,选择自己项目需要的图表及组件,可以选择进行代码压缩。
把下载下来的 echarts.min.js放到你的项目中。!!!还需要修改里面的代码,

!!!修改 echarts.min.js,否则会报错 t.addEventListener is not a function。

1.增加代码

var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;

如下图

2.修改 Le 和 Pe 函数(可通过ctrl+f搜索)如下

// An highlighted block
    function Pe(t, e, n, i) {
        if (isDomLevel2) {
            t.addEventListener(e, n, i)
        } else {
            t.attachEvent('on' + e, n)
        }
    }

    function Le(t, e, n, i) {
        if (isDomLevel2) {
            t.removeEventListener(e, n, i)
        } else {
            t.detachEvent('on' + e, n)
        }
    }

3.全文搜索 preventDefault() 修改当前的方法函数增加判断(我一开始没改这个,图表正常没啥问题,但是我用dataZoom滑动时会报错“t.preventDefault is not a function”,然后改为如下代码后就能正常滑动了)

如下

// An highlighted block
    if (isDomLevel2) {
         t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0
    } else {
         t.returnValue = false;
         t.cancelBubble = !0
    }

压缩的代码格式化后体积增加了1倍,所以我最后没有格式化,直接在压缩的代码里找到对应位置修改的。

需要准备的东西都已经好了,接下来正片开始!!

在页面中使用:

<template>
  <view class="echarts-wrap">
    <my-echarts
      id="main"
      ref="mapChart"
      :echarts="echarts"
      :onInit="initChart"
    />
  </view>
</template>
 
<script>
import * as echarts from "@/pages/data/static/js/echarts.min.js";  //这里根据自己存放的路径修改
import myEcharts from "@/pages/data/components/mpvue-echarts/src/echarts.vue"; //这里根据自己存放的路径修改

let chart = null;  //放外层方便拿到echart实例
export default {
  components: {
    myEcharts,
  },
  data() {
    return {
      echarts,
    };
  },
  onReady() {},
  mounted() {
    setTimeout(() => {
      chart.on("click", (params) => {  //监听图例点击事件(详细参见echart文档)
        this.$emit("chartClick", params);
      });
    }, 500);
    this.updateData() //模拟动态更新数据
  },
  methods: {
    initChart(canvas, width, height) {
      chart = echarts.init(canvas, null, {
        width: width,
        height: height,
      });
      canvas.setChart(chart);
      var option = {
        xAxis: {
          type: "category",
          data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
        },
        yAxis: {
          type: "value",
        },
        series: [
          {
            data: [120, 200, 150, 80, 70, 110, 130],
            type: "bar",
          },
        ]
      }; // ECharts 配置项(详细的图表配置参见 echart配置项)

      chart.setOption(option);

      return chart; // 返回 chart 后可以自动绑定触摸操作
    },
    updateData(){
        setTimeout(()=>{
            chart.setOption({
                series:[{
                    data:[30, 90, 111, 20, 70, 88, 11]
                }]
            })
        },1000)
    },
  },
};
</script>
 
<style>
.echarts-wrap {
  width: 100%;
  height: 300px;
}
</style>

详细的图表配置参见 echart配置项 最后效果:

总结 

到此这篇关于uni-app微信小程序使用echarts的文章就介绍到这了,更多相关uni-app微信小程序使用echarts内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯