定制网站uni-app微信小程序使用echarts

uni-app定制网站微信小程序使用echarts图表

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

首先,下载组件。定制网站可以先随便建个文件夹,然后 npm init。接着下载依赖

npm install echarts mpvue-echarts
  • 1

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


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

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

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

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

1.增加代码
var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;
  • 1

如下图

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)        }    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
压缩的代码格式化后体积增加了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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
详细的图表配置参见

最后效果:

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发