首页 > 其他分享 >ECharts 饼状图,圆心文字提示,默认显示第一个;点击外部数据高亮放大echarts饼图,点击饼状图,关联外部数据

ECharts 饼状图,圆心文字提示,默认显示第一个;点击外部数据高亮放大echarts饼图,点击饼状图,关联外部数据

时间:2024-10-25 16:22:10浏览次数:1  
标签:高亮 name 外部 value 点击 chartInstance 状图

描述得乱七八糟的,其实就是外面有个列表,类似于图列,但是他特别复杂我就把图里给写在外面了

差不多长这样需求是这样的,点击饼状图,外面的列表高亮;点击外面的列表,饼状图高亮

 来吧,上代码  eChart是图标,ul是列表

<div ref="chart" ></div>
<ul class="List">
    <li v-for="(item,index) in list" :key="index" @click="tabCon(index)" :class="index == active ? 'cur' : ''">
       <span>{{item?.name}} </span> <span>{{item?.value}}</span>    
   </li> 
</ul>
 data() {         return {              chartInstance: null,               active:0,             list:[                  {                     name:"电子",                     value:"20.51%"                 },                 {                     name:"电子2",                     value:"14.72%"                 },                 {                     name:"电子3",                     value:"11.16%"                 },                 {                     name:"电子4",                     value:"6.63%"                 },                 {                     name:"电子5",                     value:"3.04%"                 },                              ]         }     }, mounted(){        //数据渲染之后,默认高亮第一个数据         setTimeout(() => {             this.tabCon()         }, 3000);     }, methods: {  //点击列表数据,高亮扇形区域,圆心数据提示     tabCon(index = 0) {              this.active = index              // // 如果还需要进一步取消高亮效果(例如,移除鼠标悬停时的样式)               this.chartInstance.dispatchAction({                   type: 'downplay',                   seriesIndex: 0               });               // 高亮指定扇区               this.chartInstance.dispatchAction({                   type: 'highlight',                   seriesIndex: 0,                   dataIndex: index               });           },     initEchart(){              this.chartInstance = echarts.init(this.$refs.chart);               let arr = [] //数据渲染             this.list.forEach((item, index) => {                 let param = {                     name: item?.name,                      value: item.value                 }                  arr.push(param)             })              var options = {                  color: ['#f00', '#f0f', '#ff0', '#00f', '#0f0'],                  series: [                     {                     type: 'pie',                     center: ['50%', '50%'],                      radius: ['45%', '72%'],                     avoidLabelOverlap: false,                      label: {                         show: false,                         position: 'center'                     },                      labelLine: {                         show: false                     },                     emphasis: {                         scaleSize: 2,                         label: {                              show: true,                             fontSize: '12',                              overflow : 'truncate',                    // 圆心数据提示,每隔4个字换行 rich是自定义样式                             formatter: function (val) { // 这是回调函数,参数是label中的文字                                 var charArr = val.name.split('');                                 var str = ''                                 for (let i = 0; i < charArr.length; i++) {                                     str += charArr[i];
                                    if (i != 0 && i % 4 == 0) str += '\n'; //每隔4个字换行                                 }                                 // return str + val.data.value + '%'                                 return `{a|${str}}\n{c|${val.data.value}%}`;  
                            },                             rich: {                                 b: {                                     color: '#251717',                                     fontSize: 14,                                     fontWeight: "bold",                                      overflow : 'truncate',                                 },                                  c: {                                     fontSize: 12,                                     color: '#7F8389',                                     padding: [5, 0, 0, 0],                                                                       },                              },                         }                     },                     minAngle: 5, //最小的扇区角度(0 ~ 360),用于防止某个值过小导致扇区太小影响交互。                     padAngle: 10,                     data: arr                      }                 ],                 selectedMode: true             };             this.chartInstance.setOption(options);                this.chartInstance.on('click', (params) => {         //点击扇形区域 取消之前的数据显示和,高亮外面列表区域                 if(params.dataIndex != this.active){                     this.chartInstance.dispatchAction({                           type: 'downplay',                           seriesIndex: 0,                           dataIndex: this.active                      });                 }                 this.active = params.dataIndex;                                 });          }, }

 

标签:高亮,name,外部,value,点击,chartInstance,状图
From: https://www.cnblogs.com/xbxxf/p/18502798

相关文章

  • Jquery 元素点击显示隐藏,手风琴效果
    记录一下:jquery常用的手风琴效果<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Docu......
  • 【HarmonyOS】View点击穿透,层叠View点击事件控制
    【HarmonyOS】View点击穿透,层叠View点击事件控制问题背景:在HarmonyOS中,经常会有层叠的View的布局,当碰到需要穿透的布局需求。就需要能控制View对点击事件的处理。方案一,使用touchable:目前虽然函数已提示过时,会有斜线,但是改方法比较简单。在view节点设置:touchable(true)可接受点......
  • 点击左右箭头,中间内容切换
    <divclass="carousel-container"><divclass="carousel"><divclass="carousel-itemactive">Item1</div><divclass="carousel-item">Item2</div>......
  • 点击触发事件
    <%--CreatedbyIntelliJIDEA.User:26945Date:2024/10/23Time:16:57TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><html......
  • EAS_WEB如何查找点击前台按钮后,调用的后台方法,
    第一种方法:正常有说明的可以直接从后台实现找到第二种方法,找不到的,类似如下,我们可以通过debugger的方式,找到对应的实现,具体路径org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#registerHandlerMethod,没有registerHandlerMethod方法的话,可......
  • PbootCMS系统管理员点击文章评论的状态按钮提示权限不足
    1.开启后台菜单登录后台:打开浏览器,输入你的PbootCMS后台地址,登录后台管理系统。进入系统设置:在后台管理界面,进入“系统设置”->“菜单管理”。开启后台菜单:如果你还没有开启后台菜单,可以参考这篇教程:如何开启PbootCMS后台菜单。2.修改会员中心的文章评论......
  • 如何实现企业薪酬管理的内部公平和外部公平?
    如何实现企业薪酬管理的内部公平和外部公平?薪酬体系,作为企业管理中不可或缺的核心议题,直接触及每位员工的切身利益与心理感知,其公正性构建更是企业稳健发展的基石。在人力资源管理的广阔图景中,薪酬制度不仅是员工感知组织公平性的晴雨表,更是激发潜能、促进团队和谐的关键杠杆......
  • 如何在C语言中使用外部库
    在C语言中使用外部库,首先,你需要找到你需要的库,这可以在网上或者在本地机器上,并获取库的路径。其次,你需要用预处理指令#include<库名.h>将库包含到你的程序中。最后,你需要在链接阶段,用-l库名将库链接到你的程序中。使用外部库可以方便地使用库中预定义的函数、变量和数据类型,这对......
  • pbootcms程序做的网站 点击页面上的所有链接打开都是首页是什么原因?
    如果您的PBootCMS网站突然出现所有链接都无法正常跳转,点击任何链接都打开的是网站首页,这可能是由多种原因引起的。虽然“网站被黑”是一个可能的原因,但也有可能是其他技术问题导致的。以下是一些常见的排查步骤和解决方案:1.检查伪静态规则Apache服务器检查 .htaccess 文......
  • DELPHI 隐藏程序窗口,以及TListView控件,点击标题进行排序
    设置视图: 运行效果:    unitHideWindown;interfaceusesWindows,Messages,SysUtils,Classes,Forms,StdCtrls,ActiveX,ComObj,ShellAPI,Tlhelp32,Vcl.Controls,Vcl.ComCtrls,psapi,Vcl.ExtCtrls;typeTForm1=class(TForm)GetWList......