vue+echarts实现数据实时更新

 更新时间:2022年04月11日 08:46:29   作者:深圳最菜的前端  
这篇文章主要为大家详细介绍了vue+echarts实现数据实时更新,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了vue+echarts实现数据实时更新的具体代码,供大家参考,具体内容如下

今天在管理后台新增一个图表,用了echarts,记录一下

根据数据实时更新

安装

npm install echarts --save

然后在main.js中配置一下

import echarts from 'echarts'
Vue.prototype.$echarts = echarts

可以了,接下来就是在你需要用的页面写了

// html 宽高还是尽量固定吧,不然会出现一些奇奇怪怪的问题
<div id="previewChart" :style="{width: '600px', height: '600px'}"></div>
data () {
    return {
        echartUser: '',
        echartRegistered: '',
        echartOnline: '',
    }
}
// js
// 这个是一个漏斗图
 drawLine () {
       let previewChart = this.$echarts.init(document.getElementById('previewChart'))
       previewChart.setOption({
           color: ['#4f8f98', '#233541', '#b32124'],
           title: { text: '漏斗图' },
           tooltip: {
               trigger: 'item',
               formatter: "{a} <br/>{b} : {c}人"
           },
           toolbox: {
               feature: {
                   dataView: {readOnly: false},
                   restore: {},
                   saveAsImage: {}
               }
           },
           series: [
               {
                   name:'数据统计',
                   type:'funnel',
                   left: '10%',
                   top: 60,
                   //x2: 80,
                   bottom: 60,
                   width: '80%',
                   // height: {totalHeight} - y - y2,
                   min: 0,
                   max: 100,
                   minSize: '0%',
                   maxSize: '100%',
                   sort: 'descending',
                   gap: 2,
                   label: {
                       show: true,
                       position: 'inside'
                   },
                   labelLine: {
                       length: 10,
                       lineStyle: {
                           width: 1,
                           type: 'solid'
                       }
                   },
                   itemStyle: {
                       borderColor: '#fff',
                       borderWidth: 1
                   },
                   emphasis: {
                       label: {
                           fontSize: 18
                       }
                   },
                   // 更新数据的时候,更新的是这个位置的数据
                   data: [
                       {value: this.echartUser, name: '用户人数'},
                       {value: this.echartRegistered, name: '注册人数'},
                       {value: this.echartOnline, name: '在线听力测试人数'},
                   ]
               }
           ]
     })
},
// 获取数据
getTable () {
    let startTime = this.searchMsg.startTime
    let endTime = this.searchMsg.endTime
    let channel = ''
    previewList(startTime, endTime, channel).then(resp =>{
        if (resp.errCode == 0) {
            // 在这个位置使用nextTick
            // 漏斗图数据
            this.$nextTick( ()=>{
                this.echartRegistered = resp.data.previewCount.phoneCount
                this.echartUser = resp.data.previewCount.createCount
                this.echartOnline = resp.data.previewCount.testCount
                // 方法一,直接调用前面定义的drawLine()方法,然后给这个方法传参,然后在方法里面吧需要动态改变的地方替换成传参的这个变量达到动态改变数据的目的
                this.drawLine(this.echartRegistered , this.echartUser, this.echartOnline)
                // 方法二 ,最笨的办法,重新写一遍实例化echarts的方法咯 
                let previewChart = this.$echarts.init(document.getElementById('previewChart'))
                previewChart.setOption({
                     series: [{
                        data: [
                           {value: resp.data.previewCount.createCount, name: '用户人数'},
                           {value: resp.data.previewCount.phoneCount, name: '注册人数'},
                           {value: resp.data.previewCount.testCount, name: '在线听力测试人数'},
                        ]
                     }]
                 })
            })
        }else {
            this.$message.error(resp.msg)
        }
    })
},

搞定,这样子就不用在去定义watch方法了,简单粗暴的完成了vue + echrats的数据实时更新。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • vue.js实现数据库的JSON数据输出渲染到html页面功能示例

    vue.js实现数据库的JSON数据输出渲染到html页面功能示例

    这篇文章主要介绍了vue.js实现数据库的JSON数据输出渲染到html页面功能,结合实例形式分析了vue.js针对本地json数据的读取、遍历输出相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • Vue.js每天必学之内部响应式原理探究

    Vue.js每天必学之内部响应式原理探究

    Vue.js每天必学之内部响应式原理探究,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • vue实现input输入模糊查询的三种方式

    vue实现input输入模糊查询的三种方式

    本文主要介绍了vue实现input输入模糊查询的三种方式吗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 在Vue3中创建和使用全局组件的实现方式

    在Vue3中创建和使用全局组件的实现方式

    在前端开发中,Vue.js 是一个广泛使用的框架,因其灵活性和强大的功能,得到许多开发者的喜爱,Vue 3 的发布为这一框架带来了很多新的特性和改进,在本文中,我们将详细讨论如何在 Vue 3 中创建和使用全局组件,并通过示例代码展示具体实现方式,需要的朋友可以参考下
    2024-07-07
  • VuePress 中如何增加用户登录功能

    VuePress 中如何增加用户登录功能

    VuePress 由两部分组成:一个以 Vue 驱动的主题系统的简约静态网站生成工具,和一个为编写技术文档而优化的默认主题。它是为了支持 Vue 子项目的文档需求而创建的
    2019-11-11
  • vue中使用v-model完成组件间的通信

    vue中使用v-model完成组件间的通信

    vue中有一个很神奇的东西叫v-model,它可以完成我们的需求。,本文重点给大家介绍vue中使用v-model完成组件间的通信,需要的朋友可以参考下
    2019-08-08
  • Vue3新增时自动获取当前时间的操作方法

    Vue3新增时自动获取当前时间的操作方法

    这篇文章主要介绍了Vue3新增时自动获取当前时间的操作方法,本文通过实例代码图文相结合给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • 记录--使用el-time-picker默认值遇到的问题

    记录--使用el-time-picker默认值遇到的问题

    这篇文章主要介绍了记录--使用el-time-picker默认值遇到的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue3中Element Plus Table(表格)点击获取对应id方式

    Vue3中Element Plus Table(表格)点击获取对应id方式

    这篇文章主要介绍了Vue3中Element Plus Table(表格)点击获取对应id方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue实现全选功能

    vue实现全选功能

    这篇文章主要为大家详细介绍了vue实现全选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论