vue2动态横条图(横条图样式定时切换)

在这里插入图片描述

每次切换成新图后会清除定时器和图(重新加载,否则要么会重复加载定时器。清除定时器之后要先调用一次index为0的数据)
数据样例

acrossBarDatas:{data: ["80", "80"],sunffix: ['单位', "单位"],title: "标题",year: ["2025", "2030"]
}

调用代码 – 因为我同时调了4个 所以传了个id

<acrossBar
echartsId="acrossBar_echarts_1"
:echartsData="acrossBarDatas"
/>

组件代码 – 动态变化的柱子还可以用其他的img图去替换,修改makeOption(type, symbol, datas) symbol的值代表了图,注意type为bar设置symbol无效

<template><div><div class="acrossBar_echarts" :id="echartsId"></div></div>
</template>
<script>
export default {name: '',components: {},mixins: [],props: ['echartsId', 'echartsData'],data() {return {myChart: null,intervalId: null,options: [], // 缓存生成的图表选项optionIndex: 0, // 当前选项的索引};},computed: {},watch: {echartsData: {handler(to) {if (to) {this.getEcharts(to);}},},},mounted() {this.getEcharts();},methods: {getEcharts() {// 清除之前的定时器if (this.intervalId) {clearInterval(this.intervalId);this.intervalId = null;}// 销毁之前的图表实例if (this.myChart) {this.myChart.dispose();}var chartDom = document.getElementById(this.echartsId);this.myChart = this.$echarts5.init(chartDom);if (this.echartsData) {// 提前生成并缓存图表选项this.options = [this.makeOption('pictorialBar', 'circle', this.echartsData),this.makeOption('bar', 'triangle', this.echartsData),this.makeOption('pictorialBar','diamond',this.echartsData),];// 立即应用第一个选项this.myChart.setOption(this.options[this.optionIndex]);// 设置定时器切换图表选项this.intervalId = setInterval(() => {this.optionIndex =(this.optionIndex + 1) % this.options.length;// this.myChart.clear(); // 清除之前的图表this.myChart.setOption(this.options[this.optionIndex]);}, 2500);}},makeOption(type, symbol, datas) {// console.log(echartsData, 'echartsData');const labelSetting = {show: true,position: 'right',offset: [10, 0],fontSize: 16,};let echartsData = datas;return {title: {text: echartsData.title,left: 'center',top: 10,textStyle: {color: '#333333',fontWeight: 400,fontSize: '15px',},},tooltip: {trigger: 'axis',axisPointer: {type: 'shadow',},formatter: function(params, index) {let param = params[0];return `${param.axisValue}年<br/>${param.marker}${param.seriesName}:${param.value}%`;},},grid: {containLabel: true,left: 10,right: 60,top: 30,bottom: 15,},xAxis: {type: 'value',position: 'bottom',axisTick: { show: false },axisLine: { show: false },splitLine: {lineStyle: {type: 'dashed',},},},yAxis: {type: 'category',color: ['red'],axisLine: { show: false },axisLabel: { show: true },axisTick: { show: false },splitLine: { show: false },data: echartsData.year,},animationDurationUpdate: 500,series: [{name: echartsData.title,type: type,barGap: '10%',label: labelSetting,symbolRepeat: true,symbolSize: ['80%', '60%'],barWidth: '50%',label: {show: true,position: 'right',color: 'rgba(51, 51, 51, 1)',formatter: function(params, index) {return (params.value +(echartsData.sunffix[params.dataIndex] ==null? '': echartsData.sunffix[params.dataIndex]));},},universalTransition: {enabled: true,delay: function(idx, total) {return (idx / total) * 1000;},},data: [{value: echartsData.data[0],itemStyle: {color: 'rgba(195, 227, 138, 1)',},symbol: symbol,},{value: echartsData.data[1],itemStyle: {color: 'rgba(53, 163, 69, 1)',},symbol: symbol,},],},],};},},
};
</script>
<style lang="less" scoped>
.acrossBar_echarts {width: 416px;height: 195px;
}
</style>

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

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

相关文章

提取人脸——OpenCV

提取人脸 导入所需的库创建窗口显示原始图片显示检测到的人脸创建全局变量定义字体对象定义一个函数select_image定义了extract_faces函数设置按钮运行GUI主循环运行显示 导入所需的库 tkinter&#xff1a;用于创建图形用户界面。 filedialog&#xff1a;用于打开文件对话框。 …

链表OJ--超详细解析

链表OJ 文章目录 链表OJ1. 反转链表2. 返回K值3. 链表的中间节点4. 回文链表5. 相交链表6. 带环链表6.1 为什么一定会相遇&#xff0c;有没有可能会错过&#xff0c;或者出现永远追不上的情况&#xff0c;请证明6.2 slow一次走一步&#xff0c;fast如果一次走3步&#xff0c;走…

Jmeter如何进行分布式测试

使用Jmeter进行性能测试时&#xff0c;有些同学问我如果并发数比较大(比如最近项目需要支持1000并发)&#xff0c;单台电脑的配置(CPU和内存)可能无法支持&#xff0c;怎么办就需要使用分布式压测 1.分布式原理&#xff1a; 1、Jmeter分布式测试时&#xff0c;选择其中一台作…

Selenium IED-控制已打开的Chrome浏览器

本文已收录于专栏 《自动化测试》 目录 背景介绍优势特点操作步骤总结提升 背景介绍 在我们进行自动化测试的过程中有时候会遇见一个很棘手的问题那就是登录的过程中需要图片验证码&#xff0c;图片验证码设计的初衷其实就是为了防自动化&#xff0c;防止一些人利用自动工具恶意…

缓冲区设置

缓冲区设计 一、简介 在网络通讯中&#xff0c;用户态缓冲区和内核态缓冲区的大小设定对于优化网络性能和确保数据传输可靠性至关重要。下图是网路通讯的内核缓冲区使用情况&#xff1a; 数据的读写都需要进行系统调用&#xff0c;从用户态切换到内核态去接收数据&#xff0…

昂科烧录器支持TI德州仪器的超低功耗微控制器MSP430F2013IRSAR

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中TI德州仪器的超低功耗微控制器MSP430F2013IRSAR已经被昂科的通用烧录平台AP8000所支持。 MSP430F2013IRSAR超低功耗微控制器由多种设备组成&#xff0c;这些设备具有针对各种应…

Shellcode详解

Shellcode详解 一、Shellcode的特点二、Shellcode的类型三、Shellcode的工作原理四、防御措施五、常见的PHP Web Shell示例5.1 简单的命令执行5.2 更复杂的Web Shell5.3 防御措施5.4 实际案例 Shellcode是一种小巧、紧凑的机器代码&#xff0c;通常用于利用软件漏洞或注入攻击中…

集体爆雷!突发中科院2区(Top) 被标记!新增10本期刊被“On Hold“

本周投稿推荐 SSCI • 中科院2区&#xff0c;6.0-7.0&#xff08;录用友好&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; CNKI • 7天录用-检索&#xff08;急录友好&#xff09; SCI&EI • 4区生物医学类&#xff0c;0.5-1.0&#xff08;录用…

Nginx缓存之web缓存配置

Web 缓存可节约网络带宽&#xff0c;有效提高用户打开网站的速度。由于应用服务器被请求次数的降低&#xff0c;也相对使它的稳定性得到了提升。Web 缓存从数据内容传输的方向分为前向位置缓存和反向位置缓存两类。如下图所示。 前向位置缓存既可以是用户的客户端浏览器&#x…

处理耗时任务

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 namespace 处理耗时任务 {public partial class Form1 : Form{public Form1(){InitializeComponent();}bool IsRun false;private string path Directory.GetCurrentDirectory() "\\古诗词.txt";private…

Vite+Vue3安装且自动按需引入Element Plus组件库

一&#xff0c;安装Element Plus npm install element-plus //node环境16二&#xff0c;安装插件 npm install unplugin-auto-import unplugin-vue-components -D三&#xff0c;配置vite.config.ts文件 //按需引入element-plus组件 import AutoImport from unplugin-auto-i…

stm32 下载程序只能使用串口1

stm32单片机用串口下载程序时候&#xff0c; 默认只能用 UART1&#xff0c;其他几个USART是都不行的。 因为在固件中ISP自举程序用的是UASRT1&#xff0c;如果想用其他串口下载程序需要修改bootloader 在硬件设计时一定要注意&#xff01;切记。 自己买回来的stm32片子只能用…

Oracle基本语法

前言&#xff1a; 1.使用的数据库不同&#xff0c;所使用的语法也略有不同 2.SQL对大小写不敏感&#xff0c;无论大小写&#xff0c;sql自动转换为大写 3.用户名、表名、表空间名、文件路径......等需要用单引号将其包含 4.一般引号里面的内容需要大写 准备工作&#xff1a; &a…

0618_QT4

练习&#xff1a; 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和…

cpp混淆详解

cpp混淆详解 一、常见的代码混淆技术二、自动化混淆工具三、示例&#xff1a;使用宏定义进行混淆四、注意事项 C代码混淆是一种技术&#xff0c;旨在通过修改代码的结构和符号名称&#xff0c;使其难以被人类阅读和理解&#xff0c;同时保持代码的功能和性能不变。这种技术常用…

安装和配置JFrog Artifactory

1、安装JFrog Artifactory 下载安装包 : ubuntu系统: wget -O artifactory-pro.deb "https://releases.jfrog.io/artifactory/artifactory-pro-debs/pool/jfrog-artifactory-pro/jfrog-artifactory-pro-[RELEASE].deb" centos系统: wget -O artifactory-pro…

反弹shell

反弹shell&#xff1a; 简介; ​ 反弹shell&#xff0c;就是攻击机监听在某个TCP/UDP端口为服务端&#xff0c;目标机主动发起请求到攻击机监听的端口&#xff0c;并将其命令行的输入输出转到攻击机。 正向连接&#xff1a; ​ 假设我们攻击了一台机器&#xff0c;打开了该…

性能工具之 JMeter 常用组件介绍(八)

文章目录 一、Jmeter命令行启动二、Jmeter脚本录制 一、Jmeter命令行启动 Jmeter有两种运行&#xff1a; 一种是采用的界面模式(GUI&#xff09;启动&#xff0c;会占用不少系统资源&#xff1b;另一种是命令行模式&#xff08;non-GUI&#xff09;执行&#xff0c;这样节约资…

《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载

随着信息技术的飞速进步&#xff0c;企业面临着前所未有的系统复杂性和数据挑战。在此背景下&#xff0c;日志数据成为了企业洞察系统内部状态、监控网络安全以及分析业务动态的宝贵资源&#xff0c;构建高效的日志存储与分析平台至关重要。 作为基于 Apache Doris 打造的现代…

使用 AST语法树分析与修改Javascript 代码

1、AST语法树简介 当编写代码分析工具、代码美化工具、网站逆向分析等场景时&#xff0c;通常需要使用AST语法树技术。 比如项目开发过程中常遇到的场景&#xff1a;某个公共函数名需要更改&#xff0c;但被很多文件多处代码调用&#xff0c;手工修改非常容易漏改、改错等&…