第十四章 章节练习echarts饼图渲染

目录

一、引言

二、完整代码 

三、总结


一、引言

通过前面几个章节的学习,再结合日常项目中经常会使用到的echarts图,来完整以下功能需求,增强对知识点的巩固:

1. 基本渲染

2. 添加功能

3. 删除功能

4. 饼图渲染

运行效果图如下: 

二、完整代码 

代码中的后端接口为我本地机子部署的服务,大家可根据自身情况,在本地创建一个简单的SpringBoot或者传统的JavaWeb工程服务,涉及到简单的增删改查接口,字段主要有creator、name、price:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><!-- CSS only --><linkrel="stylesheet"href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"/><style>.red {color: red!important;}.search {width: 300px;margin: 20px 0;}.my-form {display: flex;margin: 20px 0;}.my-form input {flex: 1;margin-right: 20px;}.table > :not(:first-child) {border-top: none;}.contain {display: flex;padding: 10px;}.list-box {flex: 1;padding: 0 30px;}.list-box  a {text-decoration: none;}.echarts-box {width: 600px;height: 400px;padding: 30px;margin: 0 auto;border: 1px solid #ccc;}tfoot {font-weight: bold;}@media screen and (max-width: 1000px) {.contain {flex-wrap: wrap;}.list-box {width: 100%;}.echarts-box {margin-top: 30px;}}</style></head><body><div id="app"><div class="contain"><!-- 左侧列表 --><div class="list-box"><!-- 添加资产 --><form class="my-form"><input v-model.trim="name" type="text" class="form-control" placeholder="消费名称" /><input v-model="price" type="text" class="form-control" placeholder="消费价格" /><button @click="add" type="button" class="btn btn-primary">添加账单</button></form><table class="table table-hover"><thead><tr><th>编号</th><th>消费名称</th><th>消费价格</th><th>操作</th></tr></thead><tbody><tr v-for="(item, index) in list" :key="item.id"><td>{{ index + 1 }}</td><td>{{ item.name }}</td><td :class="{ red: item.price > 500 }">{{ item.price.toFixed(2) }}</td><td><a @click="del(item.id)" href="javascript:;">删除</a></td></tr></tbody><tfoot><tr><td colspan="4">消费总计: {{ totalPrice.toFixed(2) }} </td></tr></tfoot></table></div><!-- 右侧图表 --><div class="echarts-box" id="main"></div></div></div><script src="echarts.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script>/*** * 功能需求:* 1. 基本渲染*  (1)立刻发送请求获取数据 created*  (2)拿到数据,存到data的响应式数据中*  (3)结合数据,进行渲染 v-for*  (4)消费统计 => 计算属性* 2. 添加功能*   (1) 收集表单数据 v-model*   (2) 给添加按钮注册点击事件,发送添加请求*   (3) 需要重新渲染* 3. 删除功能*   (1) 注册点击事件 传入参数id*   (2) 根据id发送删除请求*   (3) 需要重新渲染* 4. 饼图渲染*   (1) 初始化饼图 echarts.init(dom) mounted钩子函数实现*   (2) 根据数据实时更新饼图 echarts.setOption({ ...})*/const app = new Vue({el: '#app',data: {list: [],name: '',price: ''},computed: {totalPrice () {return this.list.reduce((sum, item) => sum + item.price, 0)}},async created () {// const res = await axios.get('https://localhost:8080/bill', {//   params: {//   }// })// this.list = res.data.datathis.getList()},mounted () {this.myChart = echarts.init(document.querySelector('#main'))this.myChart.setOption({// 大标题title: {text: '消费账单列表',left: 'center'},// 提示框tooltip: {trigger: 'item'},// 图例legend: {orient: 'vertical',left: 'left'},series: [{name: '消费账单',// 饼图type: 'pie',// 半径大小radius: '50%',data: [],emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]}) },methods: {async getList() {const res = await axios.get('https://localhost:8080/wzx/bill/list', {params: {}})this.list = res.data.data// 更新饼图this.myChart.setOption({series: [{data: this.list.map(item => ({value: item.price, name: item.name}))}]})},async add () {if (!this.name) {alert('请输入消费名称')return}if (typeof this.price !== 'number') {alert('请输入')}// 发送添加请求const res = await axios.post('https://localhost:8080/wzx/bill/save', {creator: '小黑',name: this.name,price: this.price})// 重新渲染一次this.getList()this.name = ''this.price = ''},async del (id) {// 根据id发送删除请求const res = await axios.delete('https://localhost:8080/wzx/bill/delete/${id}')// 重新渲染this.getList()}}})</script></body>
</html>

三、总结

 

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

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

相关文章

深入探讨全流量回溯分析与网络性能监控系统

AnaTraf 网络性能监控系统NPM | 全流量回溯分析 | 网络故障排除工具 随着数据量的急剧增加&#xff0c;传统的网络监控手段面临诸多挑战。在此背景下&#xff0c;全流量回溯分析和网络性能监控系统成为了保障网络正常运作的重要工具。本文将围绕这两个关键词&#xff0c;探讨它…

Python 深度学习简单介绍

文章目录 常用的深度学习框架1. TensorFlow2. PyTorch3. Keras4. MXNet 安装深度学习框架深度学习基础示例深度学习资源注意事项 Python 是一种高级编程语言&#xff0c;因其简洁的语法、丰富的库和社区支持&#xff0c;成为深度学习领域的主流编程语言。深度学习是一种机器学习…

厨艺爱好者的在线互动平台:Spring Boot实现

摘 要 使用旧方法对厨艺交流信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在厨艺交流信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次开发的厨艺交流平台功能…

WUP-MY-POS-PRINTER 旻佑热敏打印机票据打印uniapp插件使用说明

插件地址&#xff1a;WUP-MY-POS-PRINTER 旻佑热敏打印机票据打印安卓库 简介 本插件主要用于旻佑热敏打印机打印票据&#xff0c;不支持标签打印。适用于旻佑的各型支持票据打印的热敏打印机。本插件开发时使用的打印机型号为MY-805嵌入式面板打印机&#xff0c;其他型号请先…

2006-2023年各地级市债务余额数据

2006-2023年各地级市债务余额数据 1、时间&#xff1a;2006-2023年 2、来源&#xff1a;整理自wind 3、指标&#xff1a;地区、地方政府债-债券数量(只)、地方政府债-债券余额(亿)、地方政府债-债券余额占比(%)、城投债-债券数量(只)、城投债-债券余额(亿)、城投债-债券余额…

CentOS7安装Docker-2024

CentOS7安装Docker-2024 安装 更新yum仓库&#xff1a; yum -y update安装yum-utils并配置阿里云的docker仓库和相关插件&#xff1a; sudo yum install -y yum-utilsyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum i…

121.WEB渗透测试-信息收集-ARL(12)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;120.WEB渗透测试-信息收集-ARL&#xff08;11&#xff09; 点击管理控制台 连接成功&…

Java | Leetcode Java题解之第513题找树左下角的值

题目&#xff1a; 题解&#xff1a; class Solution {public int findBottomLeftValue(TreeNode root) {int ret 0;Queue<TreeNode> queue new ArrayDeque<TreeNode>();queue.offer(root);while (!queue.isEmpty()) {TreeNode p queue.poll();if (p.right ! nu…

w005基于Springboot学生心理咨询评估系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

NOIP-2022 题解

T1 一眼是计数类的题目&#xff0c;那就要思考怎么计数了 这道题目还是很简单的 类似于动态规划&#xff0c;只要找到转移的方法就行了&#xff0c;从哪里可以做出来 首先 , 先考虑 C 因为 F 是 C 下边随便加一个点 , 所以只要求出 C 就求出了 F 。 首先, 先考虑 C 因为 F 是…

SpringCloud接入nacos配置中心

这里写自定义目录标题 版本选择项目搭建pom.xml本地的 application.ymlchenfu-miniapp-dev.yml 中的配置项接收配置的实体类 版本选择 spring-cloud-Alibaba版本依赖关系 本文章&#xff0c;采用的 springboot 版本是 2.6.13&#xff0c;spring-cloud-alibaba 版本是 2021.0.5…

Reduce函数

Reduce函数&#xff1a; 概念表述&#xff1a; reduce()方法是一个迭代方法对数组中的每个元素按序执行一个提供的 reducer 函数&#xff0c;每一次运行 reducer函数体会将先前元素的计算结果作为参数传入&#xff0c;最后将其结果汇总为单个返回值。用于累积运算。 执行机制&…

(二十二)、k8s 中的关键概念

文章目录 1、总体概览2、第一层&#xff1a;物理机、集群、Node、Pod 之间的关系2、第二层&#xff1a;命名空间 Namespace3、定义4、控制平面&#xff08;Control Plane&#xff09;5、特别的概念 Service6、Deployment 经过 之前几篇文章对 k8s 的实践&#xff0c;结合实践&…

QT 中彻底解决中文乱码问题的指南

在使用 QT 进行开发时&#xff0c;中文乱码问题是许多开发者常遇到的困扰。这不仅影响用户体验&#xff0c;还可能导致数据处理错误。本文将详细介绍在 QT 中彻底解决中文乱码问题的方法&#xff0c;帮助开发者创建更友好的应用程序。 一、中文乱码问题的原因 在 QT 中出现中文…

appium文本输入的多种形式

目录 一、send_keys方法 二、press_keycode方法 三、subprocess方法直接通过adb命令输入 一、send_keys方法 这个是最常用的方法&#xff0c;不过通常使用时要使用聚焦&#xff0c;也就是先点击后等待&#xff1a; element wait.until(EC.presence_of_element_located((By…

AI模型库 : 下一个大型供应链攻击目标

像 Hugging Face 这样的AI模型平台&#xff0c;很容易受到攻击者多年来通过 npm、PyPI 和其他开源存储库成功执行的同类攻击的影响 Hugging Face 等AI模型存储库为攻击者提供了与 npm 和 PyPI 等开源公共存储库相同的将恶意代码植入开发环境的机会。 在今年 4 月即将举行的 Bl…

元学习-学习笔记

学习视频&#xff1a;火炉课堂 | 元学习(meta-learning)到底是什么鬼&#xff1f;_哔哩哔哩_bilibili 一、从传统机器学习到元学习 我们传统的机器学习&#xff0c;是手工设计一个模型&#xff0c;然后将训练数据投进模型中进行训练&#xff0c;得到一个最优的模型参数&#x…

bytetrack训练日志解读和相应源码分析

文章目录 日志结构训练过程概述评估结果对应代码80个周期665次迭代概念说明损失值日志结构 2024-10-12 09:04:25 | INFO | yolox.core.trainer:179 - Training start.

文件inode

磁盘结构&#xff1a; 众所周知扇面是磁盘存储数据的地方&#xff0c;而一个磁盘有个6个磁盘面&#xff0c;而磁头指向都是相同半径的扇面&#xff0c;所以我们可以抽象出来一个三维指针&#xff1b; 这样我们就抽象出来了一个磁盘&#xff0c;而我们的每个磁盘面都有相同名字…

微信小游戏function signature mismatch,RuntimeError: function signature mismatch

我看网上很多人再搜&#xff0c;没有解决方案。开一下尘封多年的博客&#xff0c;希望能帮到有缘人。 除了其他人发的插件版本问题&#xff0c;缓存问题&#xff0c;华佗问题。 我遇到还有个情况是 Task语法和 Enable Exceptions to Full Without Stacktrace 组合的问题。 如…