echarts自定义tooltip中的内容

原本的默认样式长这样:

也就是有几个图例,就显示几个再加上数字。

默认代码是这样的:

javascript 复制代码
tooltip: {
    trigger: 'axis',
    axisPointer: {            // 坐标轴指示器,坐标轴触发有效
        type: 'cross',        // 默认为直线,可选为:'line' | 'shadow' 'cross'
                        
    },
    confine:true, // 限制tooltip在图标区域内显示                
},

但我需要的是这样的:

代码如下:

需要加一个formatter函数

javascript 复制代码
tooltip: {
    trigger: 'axis',
    axisPointer: {            // 坐标轴指示器,坐标轴触发有效
        type: 'cross',        // 默认为直线,可选为:'line' | 'shadow' 'cross'
    },
    
    confine:true,             //限制tooltip在图表区域内显示
    formatter:function(params) {
        console.log(params);
        let content = '<div style="text-align: left;width:250px;margin-left:20px">'; // 创建一个中心对齐的容器
        content += '<table style="border-bottom:1px solid #COCOCO">';
    
        content += '<tr><td>${params[0].name?.split(' ')[1][1]}</td></p>'; // 显示时间戳
        content += '<td style="text-indent:5px">平均</td>';
        content += '<td style="text-indent:5px">峰值</td>';
        content += '<td style="text-indent:5px">最高</td></tr>';

        for (let i = 0; i < params.length; i++) {
            const param = params[i];
        const seriesName = param.seriesName; // 获取系列名称
        const value = param.data; // 获取数据值
        const color = param.color; // 获取颜色
        
        content += '<tr><td style="text-indent:5px;border-left:2px solid ${color}">${seriesName}</td>';
        content += '<td style="text-indent:5px">${value.toFixed(2)}</td>'; // 格式化为百分比
        if (seriesName === "CPU占用率") {
            content += '<td style="text-indent:5px">${dataRow.cpu_total_grad_list[param.dataIndex]}</td>'; // 格式化为百分比
            content += '<td style="text-indent:5px">${dataRow.cpu_total_max_list[param.dataIndex]}</td></tr>';
        } else if (seriesName === "sys占用率") {
            content += '<td style="text-indent:5px">${dataRow.cpu_sys_grad_list[param.dataIndex]}</td>';
            content += '<td style="text-indent:5px">${dataRow.cpu_sys_max_list[param.dataIndex]}</td></tr>';
        } else if (seriesName === "用户占用率") {
            content += '<td style="text-indent:5px">${dataRow.cpu_user_grad_list[param.dataIndex]}</td>';
            content += '<td style="text-indent:5px">${dataRow.cpu_user_max_list[param.dataIndex]}</td></tr>';
        } 
    }

    content += '</table>';
    
    content += '<tr><td>最大值所在主机 ${dataRow.cpu_max_host[params[0]?.dataIndex]}</td></tr>';
   
    return content;
}
}

完成🦌

相关推荐
To_OC2 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
不好听6132 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端
恒拓高科WorkPlus2 小时前
企业级内网即时通讯建设模型:BeeWorks内网IM四层架构
前端
前端小李子3 小时前
前端环境变量裸奔?我用 EnvShield 给它穿了件防弹衣
前端
youtootech3 小时前
HarmonyOS《柚兔学伴》项目实战25-我的页面、Web 嵌入与项目总结
前端·华为·harmonyos
小林ixn4 小时前
从零到一理解 React 父子组件通信:手写一个 Todo 应用带你彻底搞懂单向数据流
前端·javascript·react.js
醇氧5 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
窝子面6 小时前
手搓最简前后端协作-node
javascript·数据库
qetfw6 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具