el-table中显示echarts的趋势折线图(燃尽图)

news2025/7/15 17:31:31

显示效果:右边的趋势图其实是查询当前行的30天数据量

 背景:为了模仿禅道上的燃尽图,但是查看其源码,发现是用php写的,我们想用vue实现

 实现步骤:1.先使用el-table画出表格来 

注意:此时数据是放在list中的,但是趋势图中的id又不能唯一,又需要根据id获取该dev改成echarts的折线图,所以使用d="'main_'+scope.row.rank"来替换。后面的style可以控制该趋势图的大小

<el-table
      :data="list"
      :height='570'
      @selection-change="setSelectRows"
    >
      <el-table-column prop="rank" label="排名" :style="{margin,left: '50px'}" show-overflow-tooltip ></el-table-column>
      <el-table-column prop="name" label="名称" show-overflow-tooltip ></el-table-column>
      <el-table-column prop="city" label="所属市" show-overflow-tooltip ></el-table-column>
      <el-table-column prop="province" label="所属省" show-overflow-tooltip ></el-table-column>
      <el-table-column prop="num" label="数量" show-overflow-tooltip ></el-table-column>
      <el-table-column label="趋势图" show-overflow-tooltip>
        <template #default="scope">
            <!--为echarts准备一个具备大小的容器dom-->
          <div :id="'main_'+scope.row.rank" style="width:70%;height:30px;margin: 0 auto;"></div>
        </template>
      </el-table-column>

2.趋势图中的数据赋值:后台获取数

注意:1 此处的精华在于initEcharts方法中的 Promise.then():Promise .then的用意就是使异步代码的执行过程可以按照指定的顺序从上到下依次执行,打破了异步代码的局限性。trendQuery方法是个异步方法,没有initEcharts方法,直接调用initData的同步方法,则会出现div还没渲染就要调用id,则会出现调用不到的报错:Uncaught Error: Initialize failed: invalid dom-------这是由于echarts在初始化化时是需要获取dom 2. 通过"main_" + state.list[i].rank) 来和上述html中的id对应获取对应行的字段

import * as echarts from 'echarts'



const fetchData = async () => {
      state.listLoading = true
      const {
        retCode, success, data, msg
      } = await trendQuery(state.queryForm)
      if (retCode == 0) {
        state.list = data.records;

        initEcharts();
      } else {
        proxy.$baseMessage(msg, 'error', 'vab-hey-message-error');
      }
    }

// 方法
const initEcharts = () => {
      // 新建一个promise对象
      let newPromise = new Promise((resolve) => {
        resolve()
      })
      //然后异步执行echarts的初始化函数
      newPromise.then(() => {
        //	此dom为echarts图标展示dom
        // echarts.init(DOm)
        initData();
      })
    }

const initData = () => {
      console.log(" initData 执行中 ")
      for (let i = 0; i < state.list.length; i++) {
        let myChart = echarts.init(document.getElementById("main_" + state.list[i].rank));
        // 绘制图表
        myChart.setOption({
          xAxis: {
            show: false, //取消显示坐标轴,坐标轴刻度,坐标值(如果是y轴,默认的网格线也会取消显示)
            type: 'category',
            boundaryGap: false,
            splitLine: {
              show:false
            },
            data: []
          },
          grid: {
            left: "0",
            top: "0",
            right: "0",
            bottom: "0",
            containLabel: true,
          },
          yAxis: {
            axisLabel: { // 取消显示坐标值
              show: false
            },
            splitLine: { //取消网格线
              show:false
            },
            type: 'value'
          },
          series: [
            {
              symbol: "none",
              smooth: true,//平滑
              type: "line",
              data: state.list[i].trend,
              areaStyle: {}
            }
          ]
        });
        window.onresize = function () { // 自适应大小
          myChart.resize();
        };
      }
    }

 3.绘制图像

使用的是 myChart.setOption({ ......}) ,有兴趣的可以在echarts官网的案例中查看Documentation - Apache ECharts和练习

Examples - Apache ECharts

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

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

相关文章

ctfshow 萌新赛 给她

初识&#xff1a; 一开始看到这个题目以为是sql注入&#xff0c;尝试了各种sql注入转义次都注入不了 .git泄露&#xff1a;最后还是看了一下大佬的解题&#xff0c;发现方向就错了&#xff0c;“给她”——“git”&#xff0c;这题的入口是.git泄露。 我是纯小白&#xff0c;…

如何在React项目中使用TypeScript

本文主要记录我如何在React项目中优雅的使用TypeScript&#xff0c;来提高开发效率及项目的健壮性。 项目目录及ts文件划分 由于我在实际项目中大部分是使用umi来进行开发项目&#xff0c;所以使用umi生成的目录来做案例。 . ├── README.md ├── global.d.ts ├── mo…

SpringBoot SpringBoot 开发实用篇 1 热部署 1.2 自动启动热部署

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇1 热部署1.2 自动启动热部署1.2.1 问题引入1.2.2 自动启动热部署1.2.…

Nacos2.1.1集群和持久化配置以及Nginx负载均衡分发(重点)

Nacos集群和持久化配置&#xff08;重点&#xff09; 1、官网说明 官网文档地址&#xff1a;https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 对如上图片进行翻译如下 根据下图&#xff0c;需要配置MySQL作为持久化保存Nacos的信息 默认Nacos使用嵌入式数据库实现…

如何在 Visual Paradigm 中创建流程图丨使用教程

让我们看看如何在 Visual Paradigm 中绘制流程图。我们将在这里使用一个非常简单的流程图示例。完成本教程后&#xff0c;您可以扩展示例。 1.从主菜单中选择图表 > 新建。 2.在New Diagram窗口中&#xff0c;选择Flowchart并单击Next。 3.您可以从空图表开始&#xff0c;…

股价暴跌了74.5%后,乐信第三季度财报可能会低于市场预期

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 乐信2022年第三季度财报前瞻 此前&#xff0c;乐信(LX)曾在2022年11月10日宣布&#xff0c;公司将于2022年11月16日发布2022年第三季度财报。 猛兽财经认为&#xff0c;乐信2022年第三季度的实际财务业绩可能会令市场失望。…

最佳使用案例NO.1–干涉测量

为了营造今年的节日气氛&#xff0c;我们决定发布4份特别的新闻通讯展示我们的“2019最佳使用案例” 在VirtualLab Fusion中所实现的快速物理光学技术为著名的干涉仪的快速仿真提供了强有力的工具&#xff0c;从而使我们能够研究干涉图样中的相干和色散效应。 基于物理光学的Vi…

webpack5 Css 兼容性处理postcss-loader

postcss-loader | webpack 中文文档webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起&#xff0c;打包后的文件用于在浏览器中使用&#xff0c;但它也能够胜任转换&#xff08;transform&#xff09;、打包&#xff08;bundle&#xff09;或包裹&#xf…

震撼来袭,最具中国特色的微服务组件:新一代SpringCloud Alibaba

都说程序员工资高、待遇好&#xff0c; 2022 金九银十到了&#xff0c;你的小目标是 30K、40K&#xff0c;还是 16薪的 20K&#xff1f;作为一名 Java 开发工程师&#xff0c;当能力可以满足公司业务需求时&#xff0c;拿到超预期的 Offer 并不算难。然而&#xff0c;提升 Java…

【嵌入式 · 机器人】在 Linux 下安装 ROS2(机器人操作系统)

安装要求 安装 ROS2 需要保证 Linux 系统的发行版是 Ubuntu&#xff0c;并且不同版本的 Ubuntu 只能安装对应版本的 ROS2。 系统不是 Ubuntu 怎么办&#xff1f; 系统是 Mac OS 或 Windows&#xff1a;安装一个 Ubuntu 的虚拟机&#xff0c;在虚拟机里安装 ROS2。&#xff08;…

【深入浅出Spring6】第三期——作用域和工厂模式

一、Bean 的作用域 作用域以下用 scope 代替&#xff0c;在不同的应用情景下可以使用的参数值下是不同的我们以普通 Java 工程为例&#xff1a;可选的参数值有两个 singleton、prototype $ singleton 默认情况下&#xff0c;scope 的属性值就为 singleton,当然我们也可以显式…

一种清洁机器人设计及仿真

目 录 第1章 绪论 1 第2章 清洁机器人路径规划方法的分类及现状 5 2.1 基于事例的学习规划方法 5 2.2 基于环境模型的规划方法 6 2.3 基于行为的结构 7 第3章 清洁机器人的设计任务及方案分析 10 3.1 清洁机器人竞赛介绍 10 3.2 设计任务分解 11 3.3 清洁机器人任务分析及基于行…

Unity和UE4两大游戏引擎,你该如何选择?

目录 游戏引擎 2 ——> 难易区别 编程语言 3 ——> 游戏产品 UE4制作的游戏产品 Unity制作的游戏产品 产品类型 5 ——> 资源商店 6 ——> 人才需求 平均薪资 总结 游戏引擎 Unity和UE4都是游戏引擎&#xff0c;所谓游戏引擎就是集成了复杂功能的游戏…

短视频/直播+教育成为教育新常态

互联网时代&#xff0c;网络视听应用已经成为吸引新网民的主要力量&#xff0c;2020年&#xff0c;在新增的3625万网民中&#xff0c;有23.9%是为了使用网络视听应用而来。网络视听应用中&#xff0c;最受欢迎的当属短视频&#xff0c;已然成为新的国民级应用行业。 如今&…

Excel之数据透视NotePad之列编辑

在日常工作中&#xff0c;经常有数据处理的需求&#xff0c;要统计个数&#xff0c;这里就可以使用到工具的一些功能&#xff0c;如 Excel、Notepad&#xff0c;记录下来&#xff0c;分享功能。 一、Excel 软件 Excel 功能过于强大&#xff0c;下面只是简单分享下日常使用到的…

【附源码】计算机毕业设计JAVA大数据文章发布系统

【附源码】计算机毕业设计JAVA大数据文章发布系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA …

C++ Reference: Standard C++ Library reference: Containers: deque: deque: begin

C官网参考链接&#xff1a;https://cplusplus.com/reference/deque/deque/begin/ 公有成员函数 <deque> std::deque::begin C98 iterator begin(); const_iterator begin() const; C11 iterator begin() noexcept; const_iterator begin() const noexcept;返回指向开始…

基于五等均分法和Bob Stone法衡量RFM顾客价值

最近学习了衡量RFM模型的两种顾客价值的方法&#xff0c;即五等均分法和Bob Stone法。仅以此博客记录我的学习过程&#xff0c;后序学习到了其他方法再来补充。关于RFM实战案例可参考我的其他文章大数据分析案例-基于RFM模型对电商客户价值分析 大数据分析案例-用RFM模型对客户…

p53 与铁死亡有关?Nature 解锁新机制

众所周知&#xff0c;p53 是一种肿瘤抑制基因&#xff0c;被广泛称为“基因组的守护者”。自 1979 年被发现至今&#xff0c;p53 基因一直是分子生物学和肿瘤学的研究热门。据 Elie Dolgin 在 Nature 上发表的 “The most popular genes in the human genome” 统计&#xff0c…

wpf Viewport3D 学习

呈现 Viewport3D 元素的 2-D 布局范围内包含的 3-D 内容。就是3D画布&#xff0c; 继承 Object DispatcherObject DependencyObject Visual UIElement FrameworkElement Viewport3D 从FrameworkElement继承&#xff0c;FrameworkElement继承自UIElement&#xff1b; 该 V…