echarts 大屏可视化 仪表盘自定义点击事件

需求说明:

点击“欠款金额”或者“86000元” 都能触发点击事件,且鼠标移上“欠款金额”和“86000元” 鼠标为手指效果,但myChart.on('click')只能点击86000元才会触发函数

使用场景:

echarts常用的myChart.on('click')是点击数据时触发的函数,但需要点击非数据时的触发函数就需要使用另外的方法

说明:

1. myChart.on('click')这个方法是获取图标数据的点击

2.myChart.getZr().on('click')这个方法是获取全部画布的点击

完整代码:

<template>
  <div ref="debt" class="debt"> </div>
</template>

<script setup lang="ts">
import { onMounted, ref } from 'vue';
import * as echarts from 'echarts';
import { reqDebtData } from '/@/api/echarts/echarts';
import { useRouter, useRoute } from 'vue-router';

import mittBus from '/@/evenbus';
const router = useRouter();
const route = useRoute();
const debt = ref();
const debtData = ref();
const operating = ref();

onMounted(async () => {
  await mittBus.on('operating', (val) => {
    console.log('operating', val);
    operating.value = val.operating;
    console.log('operating', operating.value);
  });
  await getDebtData();
  await init();
});

const getDebtData = async () => {
  let result = await reqDebtData();
  debtData.value = result;

  console.log(debtData.value / operating.value, 'debtData.value / operating.value');
  console.log(operating.value, 'debtData.value / operating.value');
};
const transformFontSize = (fontsize) => {
  // 获取屏幕可视区宽度
  const width = document.body.clientWidth;
  const ratio = width / 1920;

  // 取下整
  return fontsize * ratio;
};
const init = () => {
  var myChart = echarts.init(debt.value);
  let option = {
    series: [
      {
        type: 'gauge',
        radius: '95%',
        startAngle: 180,
        endAngle: 0,
        min: 0,
        max: 400,
        // splitNumber: 5,
        axisLine: {
          lineStyle: {
            width: transformFontSize(9),
            color: [
              [0.25, '#7CFFB2'],
              [0.5, '#58D9F9'],
              [0.75, '#FDDD60'],
              [1, '#FF6E76'],
            ],
          },
        },
        pointer: {
          icon: 'path://M12.8,0.7l12,40.1H0.7L12.8,0.7z',
          length: '12%',
          width: transformFontSize(20),
          offsetCenter: [0, '-60%'],
          itemStyle: {
            color: 'auto',
          },
        },
        axisLabel: {
          color: '#464646',
          fontSize: transformFontSize(20),
          distance: -60,
          formatter: function (value) {
            if (value === 0.875) {
              return 'A';
            } else if (value === 0.625) {
              return 'B';
            } else if (value === 0.375) {
              return 'C';
            } else if (value === 0.125) {
              return 'D';
            }
            return '';
          },
        },
        title: {
          offsetCenter: [0, '-30%'],
          color: '#fff',
          fontSize: transformFontSize(20),
          cursor: 'pointer',
        },
        detail: {
          fontSize: transformFontSize(20),
          offsetCenter: [0, '0%'],
          valueAnimation: true,
          formatter: function (value) {
            return Math.round(value) + '元';
          },
          color: 'auto',
        },
        data: [
          {
            value: debtData.value,
            name: '欠款金额',
          },
        ],
      },
    ],
  };
  window.onresize = function () {
    myChart.resize();
  };
  myChart.setOption(option);
  myChart.getZr().on('click', (event) => {
    // console.log(event, '2222222222222222222222222222222222222222');
    if (event.topTarget.style.text) {
      router.push('/echarts/debtList');
    }
  });
  myChart.getZr().on('mousemove', (param) => {
    if (param.topTarget.style.text) {
      myChart.getZr().setCursorStyle('pointer');
    }
  });
};
</script>

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解决方案 ECharts 是一个基于 JavaScript 的开源可视化库,可用于创建交互式图表和地图。通过使用 ECharts,您可以轻松地从大量数据中提取信息,并通过可视化展示数据,使其更直观地理解。ECharts 提供了多种类型的图表,包括柱状图、折线图、散点图、饼图、K 线图等,还支持地图和 3D 的图表类型。 如果您想使用 ECharts 创建大屏可视化应用程序,可以考虑使用以下步骤: 1. 确定需求和数据:首先,您需要明确您的业务需求和数据来源。了解您要展示的数据类型,以及数据的规模和格式。 2. 选择合适的图表类型:根据您的数据类型和需求,选择合适的 ECharts 图表类型。例如,如果您要展示各个城市的销售额数据,可以选择地图或热力图类型的图表。 3. 自定义样式和交互:根据您的需求,自定义图表的样式和交互。ECharts 提供了丰富的配置项,您可以根据自己的需要调整图表的样式和交互。 4. 集成到您的应用程序中:将 ECharts 图表嵌入到您的应用程序中。ECharts 提供了多种集成方式,包括通过 JavaScript API、Vue 组件和 React 组件等方式集成。 5. 优化和调试:最后,对您的大屏可视化应用程序进行优化和调试。可以使用 ECharts 提供的性能分析工具和调试工具来对应用程序进行调试和优化。 总之,使用 ECharts 创建大屏可视化应用程序可以帮助您更好地展示数据,提高数据的可读性和可理解性,从而更好地支持您的业务决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值