e-charts 雷达图点击事件

e-charts 雷达图



前言

提示:雷达图的点击事件


提示:以下是本篇文章正文内容,下面案例可供参考

一、雷达图点击效果

1.html 部分

代码如下(示例):

  <ve-radar class="customer-rating" width="100%" height="240px" :data="chartData" :settings='chartSettings'
                :extend='chartExtend' :events="chartEvents"></ve-radar>

2.js部分

		indicator : [
		    {
		        name: '规范度', max: 100, color: 'rgb(64,145,176)', axisLabel: {
		            show: true,
		            margin: -10,
		            fontSize: 10,
		            align: 'left'
		        }
		    },
		    {name: '诚信度', max: 100, axisLabel: {show: false}},
		    {name: '成长度', max: 100, axisLabel: {show: false}},
		    {name: '配合度', max: 100, axisLabel: {show: false}},
		    {name: '预警度', max: 100, axisLabel: {show: false}}
		],
		 list:[
                {type:'规范度',rank:'A',score:78},
                {type:'诚信度',rank:'A',score:48},
                {type:'成长度',rank:'B',score:78},
                {type:'配合度',rank:'A',score:67},
                {type:'预警度',rank:'C',score:89}
            ],
		chartExtend: {
                color: ['rgba(121, 164, 222, 1)'],
                // 雷达图最大值配置
                radar: {
                    shape: 'polygon',
                    // axisLabel设置轴线上刻度值  color设置外部标签颜色
                    indicator:[
					    {
					        name: '规范度', max: 100, color: 'rgb(64,145,176)', axisLabel: {
					            show: true,
					            margin: -10,
					            fontSize: 10,
					            align: 'left'
					        }
					    },
					    {name: '诚信度', max: 100, axisLabel: {show: false}},
					    {name: '成长度', max: 100, axisLabel: {show: false}},
					    {name: '配合度', max: 100, axisLabel: {show: false}},
					    {name: '预警度', max: 100, axisLabel: {show: false}}
					],
                    name: {
                    // name  formatter外部标签自定义文字
                        formatter: (name) => {
                            const temp = this.list.filter(item => {
                                return item.type === name;
                            });
                            return `${name}:${temp[0].rank}`;
                        }
                    },
                    //  添加triggerEvent: true才能触发点击事件
                    triggerEvent: true
                },
                // legend不展示
                legend: {
                    show: false
                },
                tooltip: {
                    trigger: 'item',
                    formatter: (params) => {
                        return this.indicator[0].name;
                    }
                }
   			 },
            chartSettings: {
                // 线颜色配置
                lineStyle: {
                    color: 'rgba(121, 164, 222, 1)'
                },
                // 区域颜色配置
                areaStyle: {
                    color: 'rgba(121, 164, 222, 1)'
                }
            },
            chartEvents: { 
            //  点击事件触发
		            click: (e) => {
		                if (e.event.topTarget.__dimIdx !== undefined) {
		                //  点击的是图中拐点   e.event.topTarget.__dimIdx代表当前点击的是第几项
		                    const index = e.event.topTarget.__dimIdx;
		                    this.chartExtend = {
		                        ...this.chartExtend, tooltip: {
		                            trigger: 'item',
		                            formatter: (params) => {
		                                return `${this.indicator[index].name}<br/>评分:${this.chartData.rows[0][this.indicator[index].name]}`;
		                            }
		                        }
		                    };
		                } else {
		                  //  点击的是图中外部标签文字   通过 e.name可直接拿到标签文字
		                    const extend = {...this.chartExtend};
		                    const temp = this.list.filter(item => {
		                        return `${item.type}:${item.rank}` === e.name;
		                    });
		
		                    //  this.handleClickChart(temp[0].type);
							  extend.radar.indicator.forEach((item) => {
		                        if (`${item.name}:${temp[0].rank}` === e.name) {
		                            item.color = 'rgb(64,145,176)';
		                        } else {
		                            item.color = 'rgb(202,202,202)';
		                        }
		                    });
		                    this.chartExtend = extend;
		                }
		            }},
            chartData:
          {
              columns: ['规范度', '诚信度', '成长度', '配合度', '预警度'],
              rows: [
              {'规范度': 100, '诚信度': 93, '成长度': 32, '配合度': 48, '预警度': 60}
              ]
          }

3.实现效果

1、点击外部标签文字高亮显示 2、点击拐点自定义提示内容

在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了e-charts 雷达图的使用。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
qiun-data-charts 是一个基于 Vue.js 和 ECharts 的数据可视化组件库。它提供了丰富的图表类型和交互功能,可以帮助开发者快速构建各种数据可视化页面。 在 qiun-data-charts 中,点击事件是指当用户点击图表上的某个元素时触发的事件。通过监听点击事件,可以实现一些交互效果,比如展示详细信息、跳转到其他页面等。 要实现点击事件,首先需要在使用 qiun-data-charts 组件时设置相应的配置项。具体的配置项可以根据不同的图表类型而有所不同,但一般都会有一个名为 "click" 的属性,用来指定点击事件的回调函数。 在回调函数中,可以获取到点击事件的相关信息,比如点击的元素、坐标等。根据这些信息,可以进行相应的处理逻辑,比如展示详细信息、发送请求等。 下面是一个示例代码,演示了如何在 qiun-data-charts 中实现点击事件: ```javascript <template> <qiun-data-chart :options="chartOptions" @click="handleClick"></qiun-data-chart> </template> <script> export default { data() { return { chartOptions: { // 图表的配置项 // ... click: this.handleClick, // 设置点击事件的回调函数 }, }; }, methods: { handleClick(params) { // 处理点击事件 console.log(params); // 打印点击事件的信息 // 其他处理逻辑 }, }, }; </script> ``` 在上面的代码中,通过在 `qiun-data-chart` 组件上设置 `@click` 属性,将点击事件与 `handleClick` 方法进行绑定。当用户点击图表时,会触发 `handleClick` 方法,并将点击事件的信息作为参数传递给该方法。 通过这种方式,你可以根据具体需求来处理点击事件,实现各种交互效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值