再谈Echarts

失踪了半年的前端实习生又回来了,想转行没转成重操老手艺~~~

今天组长新分了一个需求,以前只粗略了解Echarts,第一次在实际开发中使用。

1.Echarts介绍:

ECharts是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

官网链接  Apache Echarts

2.Echarts使用:
2.1  申明变量
onMounted(() => {
state.charts.validTasksTotal = echarts.init(document.getElementById('validTasksTotal'))
})
//

首先在组件挂载之前创建一个id,init方法初始化。

2.2 引入配置项

在初始化之后需要将配置项放进容器里,官网给的示例很简单,但在实际开发中需要考虑多种情况,如重叠显示,鼠标悬停浮窗显示,更改颜色等。并且,我们的数据并不是写死的,而是每次调接口。因此可以将数据封装成一个方法,将data拿到作为参数传给方法。

// 图标 有效任务
      state.charts.validTasksTotal = echarts.init(document.getElementById('validTasksTotal'))

//接上述代码,封装好的方法在onMounted中调用一次
onMounted(() => {
initMethods()
})

function initMethods() {
const option = {
}//涉及业务代码,不便展示
      };

option中想要鼠标悬停时展示详细数据,可以用到tooltip组件,tooltip中使用formatter方法,如下所示:

tooltip: {
         
          formatter: function (val) {
            return `
              console.log(111)
//做示范,鼠标悬停时控制台打印111,实际开发中可以再次封装函数调用
             `
          }
        },
2.3 传入配置项
state.charts.validTasksTotal.setOption(option)
2.4 封装函数

在步骤2.1中提到封装了一个函数,把数据放进函数中,首先声明变量,我们需要的横纵坐标

function initMethods () {
    const {X = [], Y = []} = getData()
    const option = {X,Y}// 这里是我们要进行配置的对象,数据来源自getData
}

const getData = (list = res) => {
    const X= []
    const Y = []
//横纵坐标为数组,这里最好用forEach而不是map循环

    list.forEach((item, index) => {
        X.push({
          value: item.filledInCount,
          total: item.validCount,
          
        })
        Y.push({
          value: item.unFilledInCount,
          total: item.validCount
        })
      })
//最后,需要将横纵坐标数据返回出去
      return {
        X,
        Y
      }

2.5 在div标签中使用

<div id="validTasksTotal" style="margin-left: 80px;"></div>
//用id选择器

如果遇到数据发生变化需要重新更新图标,这时候可以使用vue3中的监视属性,每次数据发生变化就会调用一次initMethod方法将新数据传进去

watch(() => data,() => {initMethod()}

补充:我在实际开发中想要每次鼠标移入时展示当前同类的所有数据,Echarts官方文档中有一个formatter函数,但想要关联两个表无法做到,我的解决办法是拿到申明的id,使用.on('mouseover',function (val){xxx}对图表进行操作,这样即可在鼠标悬停时实时显示数据,今天的分享就到这里~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值