vue-echarts 动态x轴字段,可选多个公司数据,根据选择的条件动态生成echarts柱形图(或者折线图)

需求:月份、 公司 、显示字段、柱形图(折线图),都为动态可选的。

(此例子:模拟数据都为随机数,所以每次截图值都会不同)

(Vue3 + echarts 5.4.2版本)

<template><div><div><label>公司:</label><a-select v-model:value="selectedCompany" style="width: 180px; margin-left: 8px" allow-clear mode="multiple" :maxTagCount="1"><a-select-option :value="v" v-for="(v, index) in companies" :key="index">{{ v }}</a-select-option></a-select></div><div><label>月份:</label><a-select v-model:value="selectedMonth" style="width: 180px; margin-left: 8px" allow-clear><a-select-option :value="v" v-for="(v, index) in months" :key="index">{{ v }}月份</a-select-option></a-select></div><div><label>显示字段:</label><a-select v-model:value="selectType" style="width: 180px; margin-left: 8px" allow-clear mode="multiple" :maxTagCount="1"><a-select-option :value="v" v-for="(v, index) in typeList" :key="index">{{ v }}</a-select-option></a-select></div><div><label>echarts图类型:</label><a-space direction="vertical"><a-radio-group v-model:value="selectEcharts" :options="plainOptions" /></a-space></div><button @click="btnSave">确定</button><div id="chart" ref="chart" style="width: 100%;height: 440px;"></div></div>
</template><script setup>
import { onMounted,ref,nextTick,watch } from 'vue';
import dayjs from 'dayjs';
import * as echarts from 'echarts';// 使用的版本:"echarts": "^5.4.2",const dataList = ref([]);
const chart = ref(null);
let chartInstance = null;
// 选择条件
const companies = ['A公司', 'B公司', 'C公司','D公司'];
const months = ['1','2','3','4','5','6','7','8','9','10','11','12'];
const typeList = ['铅笔','钢笔','毛笔','碳素笔'];
const plainOptions = [{label: '柱形图',value: '1',},{label: '折线图',value: '2',}
];// 选中的值
const selectedCompany = ref([]);
const selectedMonth = ref('');
const selectType = ref([]);
const selectEcharts = ref('1');// 组装后变量
const sourceList = ref([]);
const seriesList = ref([]);
const btnSave = ()=>{sourceList.value = [];seriesList.value = [];const arrCompany = ['product',...selectedCompany.value];sourceList.value.push(arrCompany)const arrType = selectType.value.map(item=>[item]);for (let index = 0; index < arrType.length; index++) {const element = arrType[index];let arr =[]for (let j = 0; j < selectedCompany.value.length; j++) {const num = Math.random()*100;arr.push(num.toFixed(2))}sourceList.value.push([...element,...arr])}console.log(sourceList.value);for (let i = 0; i < selectedCompany.value.length; i++) {if(selectEcharts.value === '1'){seriesList.value.push({ type: 'bar' });}else{seriesList.value.push({ type: 'line' });}}// 要把数据拼装成这样的// sourceList.value = [//   // ['product', 'A公司', 'B公司', 'C公司','D公司'],//   // ['铅笔', 43.3, 85.8, 93.7,11],//   // ['钢笔', 83.1, 73.4, 55.1,22],//   // ['毛笔', 86.4, 65.2, 82.5,33],//   // ['碳素笔', 72.4, 53.9, 39.1,44]// ];getData();
}
// 获得数据
// ecahrts
const getData = ()=>{if(!chartInstance){chartInstance = echarts.init(chart.value);const option = {legend: {},tooltip: {},dataset: {source: sourceList.value},xAxis: { type: 'category' },yAxis: {},series: seriesList.value};chartInstance.setOption(option);}else{chartInstance.setOption({series: seriesList.value,dataset: {source: sourceList.value},});}
}
onMounted(() => {// 获取数据// getData();
});
</script>

 

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

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

相关文章

计算机网络之会话层

一、会话层的核心功能 会话层作为OSI模型的第五层&#xff0c;不仅承担着建立、管理和终止通信会话的基本任务&#xff0c;还隐含着许多复杂且关键的功能&#xff0c;这些功能共同确保了网络通信的高效、有序和安全。 1. 会话建立与连接管理&#xff1a; 身份验证与授权&…

c/c++--struct对比

目录 C struct的使用&#xff1a; 1.1 默认访问控制&#xff08;Access Control&#xff09;&#xff1a; 1.2. 继承权限&#xff08;Inheritance Access&#xff09;&#xff1a; 1.3. 构造函数、析构函数、成员函数&#xff1a; 2. 与c语言的对比 C语言中的区别&#x…

Linux7 线程(一)

线程 1. 概念2. 库函数线程库创建线程线程ID线程终止线程等待线程分离 3. 线程的互斥相关概念临界资源互斥量 - mutex初始化互斥量静态分配动态分配 销毁互斥量互斥量加锁互斥量解锁死锁概念死锁的四个必要条件避免死锁避免死锁算法 4. 线程的同步条件变量初始化条件变量静态分…

html的week控件 获取周(星期)的第一天(周一)和最后一天(周日)

html的week控件 获取周(星期)的第一天(周一)和最后一天(周日) <input type"week" id"week" class"my-css" value"ViewBag.DefaultWeek" /><script> function PageList() { var dateStrin…

MFC中Picture Control控件显示照片的几种方式

目前使用CImage和CBitmap两个类&#xff0c;还有是将CImage转CBitmap显示。 MFC界面拖拽一个button按钮和一个Picture Control控件。 1.CImage显示。这种方式显示图片会有颜色不对的情况 void Cpicture_test_controlDlg::OnBnClickedButton1() {// TODO: 在此添加控件通知处…

【拥抱AI】我们该如何集成大模型?

集成大模型到你的项目中涉及多个步骤&#xff0c;包括选择合适的模型、设置开发环境、调用模型的 API、处理响应数据等。本文将详细介绍如何集成大模型&#xff0c;并提供具体的示例代码和最佳实践。 1. 选择合适的模型 在集成大模型之前&#xff0c;首先需要选择一个合适的模…

github和Visual Studio

1、代码下载和提交 GitHubDesktopSetup-x64.exe 使用很简单&#xff0c;自己稍微琢磨下就明白了。 2、Visual Studio 2022 2.1 安装组件及学习内容 Visual Studio 中的 CMake 项目 | Microsoft Learn 2.2 打开 CMakeLists.txt 文件 定位并选择 CMakeLists.txt 文件 …

计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议

文章目录 一、TCP/IP五层模型&#xff08;重要&#xff09;二、应用层常见的协议三、TCP与UDP3.1 TCP、UDP的区别&#xff08;重要&#xff09;3.2 运行于TCP、UDP上的协议3.3 TCP的三次握手、四次挥手3.3.1 TCP的三次握手3.3.2 TCP的四次挥手3.3.3 随机生成序列号的原因 四、T…

vue 中读取docx文件中的文本

1. 引用t mammoth&#xff08;先install&#xff09; import mammoth from "mammoth"; 2.上传文件后&#xff0c;处理文件 getReferenceContent(result) {let text result.value;// 将解析出部分文本const number text.indexOf(xxx&#xff1a;");if(number…

Mybatis查询ORACLE数据库相近字段名称的值在映射出来的对象中被覆盖

背景 oracle数据库 oracle数据库中有一个表&#xff0c;一个字段的名叫做HEA_MUR&#xff0c;一个字段的名叫HEAMUR&#xff0c;两个字段都是字符串类型。 HEA_MURHEAMUR1001有点问题 java对象 在java对象中分别对应的字段如下&#xff1a; TableFile("HEA_MUR"…

达梦数据库迁移j脚本

国产环境使用达梦数据库的越来越多&#xff0c;除了使用管理工具&#xff0c;还是可以使用脚本。 下面简单记录下&#xff0c;我在迁移中遇到的问题&#xff1a; 备份脚本 使用此脚本可以一次备份一个数据 backup_one_db.sh #!/bin/bashexport DB$1 export PASS<your_p…

Go语言 HTTP 服务模糊测试教程

写在前面&#xff1a; 此博客内容已经同步到我的博客网站&#xff0c;如需要获得更优的阅读体验请前往https://blog.mainjay.cloudns.ch/blog/go/fuzzing-test 作为开发人员&#xff0c;我们并不总能预见到程序或函数可能接收到的所有可能输入。 即使我们可以定义主要的边界情…

学习笔记——PLCT汪辰:开发RISC-V上的操作系统(持续更新)

目录 第0章 下载源码 运行环境 构建和使用说明 第1章 记录一个本人没听说过的架构 第2章~第4章 第0章 下载源码 git clone https://gitee.com/unicornx/riscv-operating-system-mooc.git 运行环境 推荐使用 Ubuntu 20.04&#xff0c;Ubuntu 20.04 是目前最新的 Ubun…

Redis集群模式之Redis Sentinel vs. Redis Cluster

在分布式系统环境中&#xff0c;Redis以其高性能、低延迟和丰富的数据结构而广受青睐。随着数据量的增长和访问需求的增加&#xff0c;单一Redis实例往往难以满足高可用性和扩展性的要求。为此&#xff0c;Redis提供了两种主要的集群模式&#xff1a;Redis Sentinel和Redis Clu…

python opencv3

三、图像预处理2 1、图像滤波 为图像滤波通过滤波器得到另一个图像。也就是加深图像之间的间隙&#xff0c;增强视觉效果&#xff1b;也可以模糊化间隙&#xff0c;造成图像的噪点被抹平。 2、卷积核 在深度学习中&#xff0c;卷积核越大&#xff0c;看到的信息越多&#xff0…

JAVA后端生成图片滑块验证码 springboot+js完整案例

前言 现在大部分网部都是图片滑块验证码&#xff0c;这个得要与后端联动起来才是确保接口安全性 通过我们系统在发送手机短息时都会选进行滑块验证&#xff0c;但是我们要保证发送短息接口的全安&#xff0c;具体路思如下 那么这个滑块的必须是与后端交互才能保证安全性&…

【因果分析方法】MATLAB计算Liang-Kleeman信息流

【因果分析方法】MATLAB计算Liang-Kleeman信息流 1 Liang-Kleeman信息流2 MATLAB代码2.1 函数代码2.2 案例参考Liang-Kleeman 信息流(Liang-Kleeman Information Flow)是由 Liang 和 Kleeman 提出的基于信息论的因果分析方法。该方法用于量化变量之间的因果关系,通过计算信息…

6. ARM_ARM指令寻址

概念 什么是寻址方式&#xff1a; 寻址方式就是CPU去寻找一个操作数的方式。 ARM指令寻址的种类&#xff1a; ARM指令寻址有立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址加变址寻址、等。 种类 1、立即寻址 立即寻址就是操作数直接包含在指令中&#…

在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5

在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5 1. 安装 Oracle Database 23ai2. 连接 Oracle Database 23c3. 重启启动后&#xff0c;手动启动数据库4. 重启启动后&#xff0c;手动启动 Listener5. 手动启动 Pluggable Database6. 自动启动 Pluggable Database7. 设置开…

【debug记录】MATLAB内置reshape与Python NumPy库reshape的差异

【debug记录】MATLAB内置reshape与Python NumPy库reshape的差异 背景函数原型MATLAB内置reshapeNumPy库reshape 差异分析解决方法 背景 最近在编程时遇到一个需求&#xff0c;需要将MATLAB工具箱中的函数用Python NumPy库进行实现&#xff0c;在对实现进行验证的过程中&#x…