我是一个前端小白刚刚接触工作,来分享一下我碰到的需求问题自己解决办法,希望能帮助到大家。  

  先给大家介绍一下需求其实简单):鼠标在2014-2024之间显示‘存量’和‘兆瓦’,到2025只显示‘十四五目标’。

  但是大家肯定知道echarts悬浮窗只要series中有这一项tooltip中就会显示出来。所以这个需求对我这个小白来说还挺头疼。在学习官方文档后,我认知formatter这个自定义项。formatter分为字符串函数两个写法,如果想要真正意义上的自定义我觉得还是函数更好用

  下面说一下我的思路

(1)根据formatterparams参数通过判断x坐标轴的值来达到十四五在2025年前不显示,2025年只显示十四五。(这个效果很好实现关键自定义后之前悬浮窗的样式就都没了)

(2)通过模板字符串定义tooltip样式

(3)return 这个模板字符串tooltip达到最终效果

先上代码

tooltip: {
            trigger: "axis",
            formatter: (item) => {
              //将复用模板字符封装成函数,这里就相当于tooltip显示的一行数据如下图
              //通过输入val,就能判断这个series的第几个数据,0 是存量,1是增量,2是十四五
              //字符串中出入了三个数据分别用处是:小圆点颜色数据名、数值,都是能在formatterparams获取的,我这里名为item
              function str(val) {
                return `
               <div class='hang'>
                <div style="display:flex;align-items: baseline;">
                  <div class="small" style='background-color:${item[val].color};'&gt;</div&gt;
                  <div style:"float:left">${item[val].seriesName}</div>  
                </div>
                <div style='font-weight:700'>${item[val].value}</div>
               </div>
                `;
              }
              //这里判断如果不是2025年就显示 存量和增量
              if (item[0].name != "2025") {
                return `
              <div class='echarts-tooltip'>
              ${item[0].name}<br>
               ${str(0)}
               ${str(1)}
              `;
              } 
              else {  //如果是2025年就显示 十四五
                return `
              <div class='echarts-tooltip'>
              ${item[0].name}<br>
               ${str(2)}
              `;
              }
            },
          },

 

 大家能看到模板字符串中我用了许多类名,这里还有一个注意就是类名前一定要加::v-deep否则不生效

其实还是很简单的,希望自己的经验能够帮到大家看看我的代码没有优化空间。 

欢迎大家评论留言

 

原文地址:https://blog.csdn.net/zero00122/article/details/128116632

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_46816.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注