vue2使用echarts自定义tooltip内容

先上最终效果图
#在这里插入图片描述

实现过程:

一、下载引入echarts

  1. 下载
npm install echarts --save
  1. 在main.js中引入
import * as echarts from "echarts";
Vue.prototype.$echarts = echarts;

二、使用

<template><div id="myechart" style="width: 100%;height: 350px;"></div>
</template><script>export default {data() {return {powerEchartData: [{ "thisPower": 220, "voltage": 227.30, "current": 2.00, "temperature": "6", "portTemperature": "7", "state": "1", "port": "00", "occupyTime": "", "chargeTime": "0小时0分钟10秒", "chargeAmount": 0.00, "createTime": "2024-02-02 15: 49:58" },{ "thisPower": 230, "voltage": 233, "current": 2.00, "temperature": "6", "portTemperature": "7", "state": "1", "port": "00", "occupyTime": "", "chargeTime": "0小时0分钟10秒", "chargeAmount": 0.00, "createTime": "2024-02-02 15: 59:58" },{ "thisPower": 240, "voltage": 223, "current": 2.00, "temperature": "6", "portTemperature": "7", "state": "1", "port": "00", "occupyTime": "", "chargeTime": "0小时0分钟10秒", "chargeAmount": 0.00, "createTime": "2024-02-02 16: 09:58" },],}},mounted() {this.$nextTick(() => {this.renderChart();})},methods: {renderChart() {// 基于准备好的dom,初始化echarts实例let myChart = this.$echarts.init(document.getElementById("myechart"));let xAxisData = this.powerEchartData.map(ele => ele.createTime);// 绘制图表var option = {color: ['#F1072C', '#62A0ED'], // 设置折线图颜色tooltip: {trigger: 'axis',show: true,backgroundColor: 'rgba(0,0,0,0.6)', // 设置背景色,textStyle: {color: 'white', // 设置字体颜色},// 注意,这里是formatter 不是valueFormatterformatter: (params) => {// 获取到的数据不需要做复杂处理// let str = '';// let unit = ['', 'W', 'V', 'A', '度', '度', '', '', '', '', '', '度']// params.forEach((ele, idx) => {//   str += ele.seriesName + ele.value + unit[idx] + '<br />'// });// return str;// 获取到的数据需要处理return `${params[10].value} <br />${params[0].seriesName}: ${params[0].value}W <br />${params[1].seriesName}: ${params[1].value}V <br />${params[2].seriesName}: ${params[2].value}A <br />${params[3].seriesName}: ${params[3].value}度 <br />${params[4].seriesName}: ${params[4].value}度 <br />${params[5].seriesName}: ${params[5].value == 1 ? '充电中' : params[5].value == 2 ? '浮充' : ''} <br />${params[6].seriesName}: ${params[6].value < 10 ? '0' + (Number(params[6].value) + 1).toString() : params[6].value} <br />${params[7].seriesName}: ${params[7].value}分 <br />${params[8].seriesName}: ${params[8].value} <br />${params[9].seriesName}: ${params[9].value}度 <br />`;}},xAxis: {type: 'category',alignTicks: false,data: xAxisData,axisTick: {show: true,},},yAxis: [{type: 'value',name: '功率',axisLine: {show: true},// min: 0, // 最小值// max: 300, // 最大值// interval: 50, // 间隔值axisLabel: { // Y轴标签的相关设置formatter: function (value) {return value + 'W'},color: '#f1072c'},}, {type: 'value',name: '电压',axisLine: {show: true},min: 0,// max: 300,interval: 50,axisLabel: {formatter: function (value) {return value + 'V'},color: '#3e8ae9'},}],series: [{name: '功率',type: 'line',yAxisIndex: 0,data: this.powerEchartData.map(ele => ele.thisPower)},{name: '电压',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.voltage),},// 以下数据在tooltip中展示 但不在图表中展示{name: '电流',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.current),symbolSize: 0, // symbol的大小设置为0让线的小圆点不显示showSymbol: false, // 不显示symbol不显示lineStyle: {width: 0, // 线宽是0不显示线color: 'rgba(0, 0, 0, 0)' // 线的颜色是透明的}},{name: '环境温度',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.temperature),symbolSize: 0,showSymbol: false,lineStyle: {width: 0,color: 'rgba(0, 0, 0, 0)'}},{name: '端口温度',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.portTemperature),symbolSize: 0,showSymbol: false,lineStyle: {width: 0,color: 'rgba(0, 0, 0, 0)'}},{name: '端口状态',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.state),symbolSize: 0,showSymbol: false,lineStyle: {width: 0,color: 'rgba(0, 0, 0, 0)'}},{name: '端口',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.port),symbolSize: 0,showSymbol: false,lineStyle: {width: 0,color: 'rgba(0, 0, 0, 0)'}},{name: '充电总时长',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.occupyTime),symbolSize: 0,showSymbol: false,lineStyle: {width: 0,color: 'rgba(0, 0, 0, 0)'}},{name: '已充时长',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.chargeTime),symbolSize: 0,showSymbol: false,lineStyle: {width: 0,color: 'rgba(0, 0, 0, 0)'}},{name: '累积电量',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.chargeAmount),symbolSize: 0,showSymbol: false,lineStyle: {width: 0,color: 'rgba(0, 0, 0, 0)'}},{name: '',type: 'line',yAxisIndex: 1,data: this.powerEchartData.map(ele => ele.createTime),symbolSize: 0,showSymbol: false,lineStyle: {width: 0,color: 'rgba(0, 0, 0, 0)'}},]};myChart.setOption(option);}}}
</script>

三、其他
若报错:[Vue warn]: Error in v-on handler: "Error: Initialize failed: invalid dom."
原因:在渲染前就执行这个方法
解决方案:等元素被初始化成功后执行,使用 this.$nextTick(() => {})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/453727.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络激活函数到底是什么?

激活函数 其实不是很难啦&#xff0c;归结一下就是大概这样几个分类&#xff0c;详情请参考【神经网络】大白话直观理解&#xff01;_哔哩哔哩_bilibili神经网络就是干这个事的~ 如果队伍不长&#xff0c;一个ykxb就可以了&#xff0c;如果 如果 队伍太长 就加一个激活函数也…

前端开发之deepmerge的使用和示例(对象的深度合并)

前端开发之deepmerge的使用和示例 前言使用场景链接效果图vue中简单案例1、安装插件2、示例结果 前言 在平时的项目中经常会涉及到对象除了第一层以及下层进行深度合并&#xff0c;本问讲解的是深度合并的插件deepmerge&#xff0c;使用此插件避免通过递归实现一些深度合并所带…

新手指南:Postman 旧版本(历史版本)下载

随着技术的不断发展&#xff0c;有时候我们发现自己需要退回到使用 Postman 某个以往的版本。这篇文章旨在指导你如何安全地移除当前版本的 Postman、查找并获取旧版本。 从你的系统中移除 Postman 为了确保旧版本的 Postman 可以无障碍地安装&#xff0c;首先得从你的系统中…

LlamaIndex 入门实战

文章目录 LlamaIndex 入门实战1. 基本概念2. 优劣势分析3. 简单代码示例4. Index持久化5. 使用场景6. 总结 LlamaIndex 入门实战 LlamaIndex是一个连接大型语言模型&#xff08;LLMs&#xff09;与外部数据的工具&#xff0c;它通过构建索引和提供查询接口&#xff0c;使得大模…

超低价搭建cyberpanel+LiteSpeed企业版web服务器

注意&#xff0c;这里的企业版使用的是官方提供的免费密钥&#xff0c;在密钥激活后有一个月的有效时间&#xff0c;到期后官方会自动续期你的密钥 教学用配置&#xff1a; image1097698 126 KB 优惠链接&#xff1a;雨云 - 新一代云服务提供商 3 这是LiteSpeed&#xff08;以…

迷你洗衣机什么牌子好?口碑好的迷你洗衣机

在日常生活中&#xff0c;内衣洗涤是大多人都比较头疼的问题&#xff0c;看似一件小小的衣物&#xff0c;可是程序繁杂&#xff0c;洗涤、消毒一样不能少&#xff0c;每天都要占用我们大量的时间&#xff0c;而传统的大型洗衣机又无法满足对内衣洗护的特殊需求&#xff0c;所以…

k8s学习-Kubernetes的网络

Kubernetes作为编排引擎管理着分布在不同节点上的容器和Pod。Pod、Service、外部组件之间需要⼀种可靠的方找到彼此并进行通信&#xff0c;Kubernetes网络则负责提供这个保障。 1.1 Kubernetes网络模型 Container-to-Container的网络 当Pod被调度到某个节点&#xff0c;Pod中…

Windows Server 2019 DNS服务器搭建

系列文章目录 目录 系列文章目录 文章目录 前言 一、DNS服务器是什么&#xff1f; 二、配置服务器 1.实验环境搭建 1)实验服务器配置和客户端 2)实验环境 2.服务器配置 正向解析配置 反向解析 实验验证 文章目录 Windows Server 2003 Web服务器搭建Windows Server…

Python算法题集_相交链表

Python算法题集_相交链表 题41&#xff1a;相交链表1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【双层循环】2) 改进版一【双指针】3) 改进版二【哈希检索-集合】4) 改进版三【哈希检索-字典】 本文为Python算法题集之一的代码示例 题41&am…

跳过CSDN关注博主即可阅读全文的脚本

跳过CSDN关注博主即可阅读全文的脚本 以下脚本可以跳过关注阅读全文&#xff1a; var article_contentdocument.getElementById("article_content"); article_content.removeAttribute("style");var follow_textdocument.getElementsByClassName(follow-t…

Adobe Camera Raw for Mac v16.1.0中文激活版

Adobe Camera Raw for Mac是一款强大的RAW格式图像编辑工具&#xff0c;它能够处理和编辑来自各种数码相机的原始图像。以下是关于Adobe Camera Raw for Mac的一些主要特点和功能&#xff1a; 软件下载&#xff1a;Adobe Camera Raw for Mac v16.1.0中文激活版 RAW格式支持&…

docker重建镜像

DockerFile如下&#xff1a; FROM k8s-registry.qhtx.local/base/centos7-jdk8-haitong0704RUN yum -y update && yum install -y python3-devel && yum install -y python36 RUN mv /usr/bin/python /usr/bin/python_old RUN ln -s /usr/bin/python3 /usr/bi…