折线图-line

业务组件调用代码

<template><lineCom :title="lineComProps.title" :legendDataList="lineComProps.legendDataList":FeatureList="lineComProps.FeatureList" :xAxisData="lineComProps.xAxisData":seriesMultipleFlag="lineComProps.seriesMultipleFlag":seriseMultipleName="lineComProps.seriseMultipleName":seriseMultipleData="lineComProps.seriseMultipleData":xAxisProps="lineComProps.xAxisProps"></lineCom>
</template>
<script lang="ts" setup>import { reactive } from "vue"import lineCom from "../../components/echartsCom/lineCom.vue"const lineComProps = reactive({title: "折线图",legendDataList: ["Email"],//, "Union Ads", "Video Ads", "Direct", "Search Engine"FeatureList: ["saveAsImage"],//['saveAsImage','restore','dataView',"dataZoom",'magicType','brush']    xAxisData: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],seriesMultipleFlag: true,seriseMultipleName: ["Email", "Union Ads", "Video Ads", "Direct", "Search Engine"],seriseMultipleData: [[120, 132, 101, 134, 90, 230, 210],[220, 182, 191, 234, 290, 330, 310],[150, 232, 201, 154, 190, 330, 410],[320, 332, 301, 334, 390, 330, 320],[820, 932, 901, 934, 1290, 1330, 1320]],seriseSingleName: 'Email',seriseSingleData: [220, 182, 191, 234, 290, 330, 310],xAxisProps: {type: "category",boundaryGap: false,name:'x轴'}})</script>

组件代码

<template><div style="width: 100%; height: 100%" id="lineEchartDom"></div>
</template><script setup lang='ts'>
import * as echarts from "echarts";
import { onMounted, defineProps } from "vue";
const propsVal = defineProps({title: {//标题type: String,default: '折线图'},legendDataList: {//图例组件的数据type: Array,default: []},legendProps: {//图例组件的基本配置type: Object,default: {right: 30,top: 30,itemHeight: 10,itemGap: 10,icon: "circle",//可选 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'textStyle: {//文字颜色color: "#333333"}}},grid: {//网格的配置type: Object,default: {top: "15%",//组件距离容器 上侧 的距离left: "3%",//组件距离容器 左侧 的距离right: "4%",//组件距离容器 右侧 的距离bottom: "3%",//组件距离容器 下侧 的距离containLabel: true,//组件距离容器 上侧 的距离}},FeatureList: {//工具配置项显示 type: Array,default: []//['saveAsImage','restore','dataView',"dataZoom",'magicType','brush']},xAxisData: {//x 坐标轴数据 type: Array,default: []//'value' 数值轴,适用于连续数据// 'category'// time 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度// 'log' 对数轴。适用于对数数据。},xAxisProps: {//x 坐标轴配置type: Object,defualt: {type: "category",boundaryGap: false,}},yAxisProps: {//y 坐标轴配置type: Object,default: {type: "value"}},seriesMultipleFlag: {//是否开启多组数据type: Boolean,defult: false},seriseSingleName: {//单组 的名称type: Array,default: ""},seriseSingleData: {//单组的 数据type: Array,default: []},seriseMultipleName: {//多组的名称type: Array,default: []},seriseMultipleData: {//多组的数据type: Array,default: []},color: {type: Array,default: ['#80FFA5','#00DDFF','#37A2FF','#FF0087','#FFBF00']}
})
let myChart: any = nullonMounted(() => {const lineEchartDomEl = document.getElementById("lineEchartDom");myChart = echarts.init(lineEchartDomEl);console.log("mychart", myChart)myChart.setOption(option);})
const handleSeriesData = () => {const seriesData: any = []if (!propsVal.seriesMultipleFlag) {seriesData.push({type: 'line',stack: 'Total',name: propsVal.seriseSingleName,data: propsVal.seriseSingleData})} else {propsVal.seriseMultipleName.forEach((ele, index) => {const item = {type: 'line',stack: 'Total',name: ele,data: propsVal.seriseMultipleData[index]}seriesData.push(item)})}console.log("seriesData: ", seriesData)return seriesData
}
const option = {title: {text: propsVal.title,},tooltip: {trigger: "axis",},legend: {data: propsVal.legendDataList,...propsVal.legendProps},grid: propsVal.grid,toolbox: {feature: {saveAsImage: propsVal.FeatureList.includes("saveAsImage") ? {} : null,restore: propsVal.FeatureList.includes("restore") ? {} : null,dataView: propsVal.FeatureList.includes("dataView") ? {} : null,magicType: propsVal.FeatureList.includes("magicType") ? {} : null,brush: propsVal.FeatureList.includes("brush") ? {} : null},},xAxis: {data: propsVal.xAxisData,...propsVal.xAxisProps},yAxis: {type: "value",},series: handleSeriesData(),color:propsVal.color
};
</script><style></style>

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

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

相关文章

【后端】数据字典自动生成枚举

前言 随着我老板给我灌溉的思想,逐渐开始利用代码来完成一些重复性且没有创造性的工作(我变懒啦),当我发现数据字典可以生成枚举从而大大减少开发时间的时候,我意识到事情的重要性。 数据字典 我一开始在网上找各种代码生成器的框架,然后突然意识到,这个不就是简单的…

2022年MathorCup大数据竞赛B题北京移动用户体验影响因素研究求解全过程文档及程序

2022年MathorCup高校数学建模挑战赛—大数据竞赛 B题 北京移动用户体验影响因素研究 原题再现&#xff1a; 移动通信技术飞速发展&#xff0c;给人们带来了极大便利&#xff0c;人们也越来越离不开移动通信技术带来的各种便捷。随着网络不断的建设&#xff0c;网络覆盖越来越…

XIAO ESP32S3之套件简绍

很高兴收到柴火创客空间寄来的XIAO ESP32S3开发套件。 一、套件介绍 1、电路板部分 一块XIAO ESP32S3主板、一块摄像头接口板&#xff08;可接SD卡&#xff09;&#xff0c;一根2.4G天线。 2、配件部分 一根USB-A转TypeC数据线、一个USB3.0转TypeC转接头、一个SD卡读卡器&am…

vue中keep-alive的使用

什么是keep-alive&#xff1f; keep-alive是一个内置组件&#xff0c;用于缓存和管理组件的状态。 当 keep-alive包裹一个组件时&#xff0c;这个组件的状态将会被缓存起来&#xff0c;而不是每次重新渲染。这在多个视图之间切换时特别有用&#xff0c;可以避免重复的创建和销…

vue项目通过HBuilder打包成apk,实现apk自动更新下载

vue 项目通过 HBuilder 打包成 apk&#xff0c;实现 apk 自动更新下载 1、vue 项目通过 HBuilder 打包成 apk vue 项目在终端执行 npm run build 打包成 dist 文件&#xff0c;生成的 dist 文件在 项目根目录下 在 HBuilder 中 新建一个项目 默认选择 5APP 的默认模板项目…

springboot+vue智能企业设备管理系统05k50

智能设备管理系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户&#xff0c;更好存储所有数据信息及快速方便的检索功能&#xff0c;对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性&#xff0c;遵循开发的系统优化的原则&#xf…

linux 命令 sudo、su 命令

sudo命令详解 1、初识sudo sudo是linux下常用的允许普通用户使用超级用户权限的工具&#xff0c;sudo 用来执行需要提升权限&#xff08;通常是作为 root 用户&#xff09;的命令&#xff0c;允许系统管理员让普通用户执行一些或者全部的root命令&#xff0c;如halt&#xff…

spring boot的redis连接数过多导致redis服务器压力过大的一次问题排查

一、背景 在今天上午的时候&#xff0c;突然收到大量的sentry报错&#xff0c;都是关于redis连接超时的警告。 首先想到的是去查看redis的监控&#xff0c;发现那个时间段&#xff0c;redis的请求数剧增&#xff0c;cpu使用率和带宽都陡增双倍。 下面的是redis监控的cpu情况 …

无代码未来:智能、可视化、自动化的融合

无代码是一个相对较新的概念&#xff0c;不同的人群对其界定可能存在一定的差异。 对于IT专业人士和开发人员而言&#xff0c;无代码通常是指使用可视化界面和拖拽操作来构建应用程序的工具和平台。 无代码平台通过提供预先构建的组件和模块&#xff0c;使得开发人员可以通过简…

基于CW32F030单片机的便携式多功能测试笔

一、产品背景 在日常的硬件调试工作中&#xff0c;我们最常使用的仪器仪表可能就是万用表了&#xff0c;虽然万用表号称“万用”&#xff0c;但大部分时候&#xff0c;我们需要使用到的功能无非是电压测量和通断测量。 作为调试的“得力干将”&#xff0c;万用表有时候也会存…

Windows bat批处理zip打包排除bat文件自身不打包

功能&#xff1a;遍历文件&#xff0c;把文件打包成zip文件&#xff08;不打包 bat 自身文件&#xff09; 文件名&#xff1a; 文件打包成7z-zip包.bat echo off:: 来源&#xff1a;https://www.cnblogs.com/wutou/p/17348784.html :: Date: 2023/04/24 :: :: 使用说明&#…

歌手荆涛演唱的《春节回家》,一种情感的表达和文化的传承

歌手荆涛演唱的《春节回家》&#xff0c;一种情感的表达和文化的传承 春节回家&#xff0c;是中国传统文化中最为重要的传统节日之一&#xff0c;也是亿万华夏儿女最为期待的日子。每当春节临近&#xff0c;无论身在何处&#xff0c;人们都会收拾行囊&#xff0c;踏上归途&…

【5G PHY】5G SS/PBCH块介绍(四)

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

策略算法与Actor-Critic网络

策略算法 教程链接 DataWhale强化学习课程JoyRL https://johnjim0816.com/joyrl-book/#/ch7/main 策略梯度 与前面的基于价值的算法不同&#xff0c;这类算法直接对策略本身进行近似优化。 在这种情况下&#xff0c;我们可以将策略描述成一个带有参数 θ θ θ的连续函数…

基于python的职位推荐系统的设计与实现

点我完整下载&#xff1a;基于python的职位推荐系统的设计与实现.docx 基于python的职位推荐系统的设计与实现 Design and implementation of a job recommendation system based on Python 目录 目录 2 摘要 3 关键词 4 第一章 绪论 4 1.1 研究背景 4 1.2 研究目的与意义 5 1.…

HarmonyOS—ArkTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化【鸿蒙应用开发】

文章目录 ARKTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化@Observed 类装饰器说明装饰器参数类装饰器的使用@ObjectLink 变量装饰器说明装饰器参数同步类型允许装饰的变量类型被装饰变量的初始值举例装饰器的限制条件观察变化和行为表现观察的变化框架行为使用场景1.…

WebUI自动化学习(Selenium+Python+Pytest框架)002

新建项目 New Project 新建一个python代码文件 file-new-python file 会自动创建一个.py后缀的代码文件 注意:命名规则,包含字母、数字、下划线&#xff0c;不能以数字开头&#xff0c;不能跟python关键字或包名重复。 ********************华丽分割线********************…

【算法】20231128

这里写目录标题 一、55. 跳跃游戏二、274. H 指数三、125. 验证回文串 一、55. 跳跃游戏 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&am…

【MATLAB源码-第91期】基于matlab的4QAM和4FSK在瑞利(rayleigh)信道下误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 正交幅度调制&#xff08;QAM&#xff0c;Quadrature Amplitude Modulation&#xff09;是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度&#xff08;π/2&#xff09;的正弦波&#xff0c;因此…

C语言第三十四弹--矩形逆置

C语言实现矩阵逆置 逆置结果如图 思路&#xff1a;通过观察逆置结果&#xff0c;首先发现行数和列数都发生了调换。其次观察逆置前后数字对应的下标&#xff0c;逆置前数字对应下标为:[x][j] 逆置后数字对应下标为&#xff1a;[y][x]。综上&#xff0c;就可以实现矩阵逆置。 …