Vue.js ECharts使用

一、介绍

        ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。ECharts 提供了丰富的图表类型和交互能力,使用户能够通过简单的配置生成各种各样的图表,包括但不限于折线图、柱状图、散点图、饼图、雷达图、地图等。安装方式:

  • CDN: https://cdn.staticfile.net/echarts/4.3.0/echarts.min.js
  • NPM:npm install echarts --save

二、使用echarts展示每日网站访问量

        通过查询登录日志表展示为如下样式:

        前端vue代码,一共有两个分别是每日访问量的折线图和性别人数的柱状图。访问量请求后端数据,性别则使用了假数据。

<script lang="ts" setup>
import {onMounted, ref} from "vue";
import * as echarts from "echarts";
import api from "@/axios";const loginLogChartDiv = ref();
const genderChartDiv = ref();onMounted(() => {initLoginLogECharDiv(); // 网站访问量initGenderChart(); // 员工性别对比图
})function initLoginLogECharDiv() {const myChart = echarts.init(loginLogChartDiv.value);// 图标初始化let dateList = [];let countList = [];api({url: '/selLoginLogChart'}).then(resp => {dateList = resp.data.dateList;countList = resp.data.countList.map(Number);// 需要在后端获取数据之后绘制图表myChart.setOption({title: {text: '网站访问量'},tooltip: {},xAxis: {data: dateList},yAxis: {},series: [{name: '访问量',type: 'line',data: countList}]});});
}function initGenderChart() {const myChart = echarts.init(genderChartDiv.value);// 图标初始化
// 绘制图表myChart.setOption({title: {text: '员工性别对比图'},tooltip: {},xAxis: {data: ['男', '女']},yAxis: {},series: [{name: '人数',type: 'bar',data: [5, 20]}]});
}</script><template><el-row><el-col :span="24"><div ref="loginLogChartDiv" :style="{ float: 'left', width: '100%', height: '350px' }"></div></el-col></el-row><el-row><el-col :span="12"><div ref="genderChartDiv" :style="{ float: 'left', width: '100%', height: '350px' }"></div></el-col><el-col :span="12"></el-col></el-row></template><style scoped></style>

        业务层逻辑处理

@Overridepublic Map<String, List<String>> selLoginLogChart(String s) {List<Map<String, Object>> list = logoMapper.selLoginLogChart(s);// 查询结果是Date类型,需要格式化SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Map<String, List<String>> resultMap = new HashMap<>();List<String> dateList = new ArrayList<>();List<String> countList = new ArrayList<>();for (Map<String, Object> map : list) {dateList.add(dateFormat.format(map.get("date")));countList.add(map.get("count") + "");}resultMap.put("dateList", dateList);resultMap.put("countList", countList);return resultMap;}

        sql语句,因为日期是年月日时分秒,所以需要使用DATE()提取出年月日进行分组查询。

<select id="selLoginLogChart" resultType="java.util.Map">select DATE(logintime) as date, count(*) as countfrom loginlogwhere logintime >= #{s}group by date</select>

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

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

相关文章

02Linux文件,目录,过滤,管道常用命令

Linux基础概述 Linux基础目录 Linux没有盘符这个概念, 只有一个顶级根目录 /, 所有文件都在它下面 在Windows系统中路径之间的层级关系使用/来表示在Linux系统中路径之间的层级关系使用/来表示,出现在开头的/表示根目录, /home/a.txt表示根目录下的home文件夹内有a.txt文件 …

2024年6月8日_第十五周_周六_分享技术:麻将技术

四人下午打麻将大纲 一、背景设定 时间&#xff1a;一个悠闲的下午地点&#xff1a;某人家中的麻将室或客厅人物&#xff1a; A先生&#xff1a;一个经验丰富的麻将老手&#xff0c;喜欢沉稳地分析牌局B女士&#xff1a;麻将新手&#xff0c;但好学不倦&#xff0c;喜欢尝试新…

微服务开发与实战Day03

一、导入黑马商城项目 资料文档&#xff1a;Docs 1. 安装MySQL ①删除root目录下的mysql rm -rf mysql/ ②把课前资料里的mysql目录上传到root目录下 ③创建一个通用网络 docker network create hm-net ④使用下面的命令安装MySQL docker run -d \--name mysql \-p 330…

自然资源-国土空间规划术语集合

自然资源-国土空间规划术语集合 国土空间&#xff1a; 国家主权与主权权利管辖下的地域空间&#xff0c;是人类生产生活的载体和场所&#xff0c;包括陆地国土空间和海洋国土空间。 国土空间规划&#xff1a; 对一定区域国土空间开发保护在空间和时间上作出的安排&#xff…

C++ OpenCV 图像分类魔法:探索神奇的模型与代码

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三连支…

TensorFlow2.x基础与mnist手写数字识别示例

文章目录 Github官网文档Playground安装声明张量常量变量 张量计算张量数据类型转换张量数据维度转换ReLU 函数Softmax 函数卷积神经网络训练模型测试模型数据集保存目录显示每层网络的结果 TensorFlow 是一个开源的深度学习框架&#xff0c;由 Google Brain 团队开发和维护。它…

IP纯净度是什么,对用户有多么重要?

在网络应用和数据采集等领域&#xff0c;代理IP被广泛使用&#xff0c;而代理IP的纯净度则直接影响其性能和可用性。代理IP的纯净度主要涉及到代理IP在网络传输过程中的稳定性、匿名性和安全性。今天就带大家一起了解代理IP纯净度对用户的重要性。 第一&#xff0c;保护用户的隐…

adb多设备多屏幕调试

开发中有一种场景&#xff0c;就是将不同的应用界面投到不同的设备上&#xff0c;那么我们可以用以下方法 adb 多屏幕调试 准备工作 1、获取设备ID&#xff0c;SN码2、查看目前有几块屏幕&#xff0c;获取display-id 通过以下命令查看device-id&#xff08;SN&#xff09; a…

springboot+vue前后端项目接口校验通信数据完整性

方案&#xff1a;使用国密SM3算法实现数字签名 服务端 maven的pom文件引用 <!-- 国密算法支持 --><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15to18</artifactId><version>1.69</version><…

Android Ble低功耗蓝牙开发

一、新建项目 在Android Studio中新建一个项目&#xff0c;如下图所示&#xff1a; 选择No Activity&#xff0c;然后点击Next 点击Finish&#xff0c;完成项目创建。 1、配置build.gradle 在android{}闭包中添加viewBinding&#xff0c;用于获取控件 buildFeatures {viewB…

关于Redis中事务

事务的四个特性 Redis到底有没有原子性 Redis中的原子性不同于MySQL&#xff0c;相比于MySQL&#xff0c;Redis中的原子性几乎不值一提。 MySQL中的原子性&#xff0c;不仅仅是“要么全都执行&#xff0c;要么全都不执行”&#xff0c;它还保证了“一旦执行&#xff0c;结果…

Docker面试整理-如何管理Docker容器的安全?

管理 Docker 容器的安全是确保整个应用和基础设施安全的关键部分。以下是一些重要的实践和策略,可帮助你提高 Docker 容器的安全性: 1. 使用官方和受信任的镜像: ● 仅从可信赖的源下载镜像,如 Docker Hub 上的官方镜像或已验证的发布者。 ● 定期检查和更新你的镜像以确保…

Flutter基础 -- Flutter容器布局

目录 1. MaterialApp 1.1 组件定义 1.2 主要功能和属性 1.3 示例 2. 脚手架 Scaffold 2.1 定义 2.2 Scaffold 的属性 2.3 示例 PS: 对于 Scaffold 和 MaterialApp 3. 线性布局 Column Row 3.1 Row 3.2 Column 4. 盒模型 Box Model 4.1 定义 4.2 示例 5. 容器 C…

dbus-cleanup-sockets`:Linux 中的 D-Bus 套接字清理工具

dbus-cleanup-sockets&#xff1a;Linux 中的 D-Bus 套接字清理工具 在 Linux 系统中&#xff0c;D-Bus 是一种消息总线系统&#xff0c;用于应用程序之间的通信。然而&#xff0c;在某些情况下&#xff0c;D-Bus 套接字文件可能会因为各种原因而残留&#xff0c;导致系统资源…

PHP-CGI Windows平台远程代码执行漏洞复现(CVE-2024-4577)

0x01 产品简介 PHP-CGI 是一种用于在 Web 服务器上运行 PHP 脚本的接口,通过 CGI(公共网关接口)将 PHP 解释器与 Web 服务器连接。 0x02 漏洞概述 2024年6月,PHP官方发布新版本,修复了 PHP-CGI 中一个远程代码执行漏洞。鉴于该漏洞无前置条件,易于利用,且默认情况下可…

使用JDBC连接MySQL完整步骤(实测可用)

目录 步骤一&#xff1a;准备MySQL JDBC驱动程序 步骤二&#xff1a;导入必要的类 步骤三&#xff1a;建立数据库连接 步骤四&#xff1a;关闭连接 完整示例 附加 要使用Java连接MySQL数据库&#xff0c;您可以使用Java Database Connectivity&#xff08;JDBC&#xff0…

【JavaScript脚本宇宙】构建Web美学:CSS预处理器和UI库

构建优秀用户界面的必备利器&#xff1a;六款前端框架解析与比较 前言 前端开发中&#xff0c;选择合适的框架对于提高工作效率和实现设计目标至关重要。本文将介绍一些流行的前端框架&#xff0c;它们各具特色&#xff0c;能够帮助开发人员快速构建优秀的用户界面。 欢迎订阅…

21.注入的概念

上一个内容&#xff1a;20.创建辅助模板 在 19.使用纯c代码实现调用hp减伤害 它里面的代码需要我们自己手动调用WriteProcessMemory函数把辅助代码放到游戏进程内存中然后还需要计算大小计算辅助函数的内存地址&#xff0c;这是很麻烦的一件事&#xff0c;Windows系统提供了一…

数据结构及研究

**数据结构是计算机存储、组织数据的方式&#xff0c;它是相互之间存在一种或多种特定关系的数据元素的集合**Θic-1ΘΘic-2ΘΘic-3ΘΘic-4ΘΘic-5Θ。 数据结构这一概念在计算机科学领域扮演着至关重要的角色&#xff0c;它不仅决定了数据在计算机内部的存储方式&#xf…

Block Transformer:通过全局到局部的语言建模加速LLM推理

在基于transformer的自回归语言模型&#xff08;LMs&#xff09;中&#xff0c;生成令牌的成本很高&#xff0c;这是因为自注意力机制需要关注所有之前的令牌&#xff0c;通常通过在自回归解码过程中缓存所有令牌的键值&#xff08;KV&#xff09;状态来解决这个问题。但是&…