我是一个前端小白刚刚接触工作,来分享一下我碰到的需求问题和自己的解决办法,希望能帮助到大家。
先给大家介绍一下需求(其实很简单):鼠标在2014-2024之间显示‘存量’和‘兆瓦’,到2025只显示‘十四五目标’。
但是大家肯定知道echarts的悬浮窗只要series中有这一项tooltip中就会显示出来。所以这个需求对我这个小白来说还挺头疼。在学习了官方文档后,我认知了formatter这个自定义项。formatter分为字符串和函数两个写法,如果想要真正意义上的自定义我觉得还是函数更好用。
下面说一下我的思路。
(1)根据formatter的params参数,通过判断x轴坐标轴的值来达到十四五在2025年前不显示,2025年只显示十四五。(这个效果很好实现,关键是自定义后之前悬浮窗的样式就都没了)
(3)return 这个模板字符串让tooltip达到最终效果。
先上代码
tooltip: {
trigger: "axis",
formatter: (item) => {
//将复用的模板字符串封装成函数,这里就相当于tooltip中显示的一行数据如下图
//通过输入val,就能判断这个是series的第几个数据,0 是存量,1是增量,2是十四五
//字符串中出入了三个数据分别用处是:小圆点颜色、数据名、数值,都是能在formatter的params中获取的,我这里命名为item
function str(val) {
return `
<div class='hang'>
<div style="display:flex;align-items: baseline;">
<div class="small" style='background-color:${item[val].color};'></div>
<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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。