<template>
<div class="block">
<div class="title">展会实时人流里统计</div>
<div :class="className" :id="id" :style="{height:height,width:width}"></div>
</div>
</template>
<script>
import echarts from 'echarts'; export default {
props: {
className: {
type: String,
default: 'dynamic myEchart'
},
id: {
type: String,
default: 'dynamic'
},
width: {
type: String,
default: '100%'
},
height: {
type: String,
default: '400px'
}
},
data() {
return {
chart: null,
data: {},
people: '',
}
},
computed: {
option() {
var self = this;
return {
tooltip: {
trigger: 'axis'
}, dataZoom: {
show: false,
start: 0,
end: 100
},
xAxis: [{
type: 'category',
boundaryGap: true,
data: (function() {
var now = new Date();
var res = [];
var len = 10;
while (len--) {
res.unshift(now.toLocaleTimeString().replace(/^\D*/, ''));
now = new Date(now - 2000);
}
return res;
})()
}, {
type: 'category',
boundaryGap: true,
data: (function() {
var res = [];
var len = 10;
while (len--) {
res.push(self.people);
}
return res;
})()
}],
yAxis: [{
type: 'value',
scale: true,
name: '人数',
}],
series: [{
name: '人数',
type: 'line',
data: (function() {
var res = [];
var len = 10;
while (len--) {
res.push(self.people);
}
return res;
})()
}]
}
}
},
mounted() {
this.initChart();
},
beforeDestroy() {
if (!this.chart) {
return
}
this.chart.dispose();
this.chart = null;
},
methods: { initChart() {
var that = this;
this.chart = echarts.init(document.getElementById(this.id));
this.axios.post('url', {
id: 1
}).then((data) => {
// 初始化数据
this.data = data.data.data
this.people = this.data.expo_audience
this.chart.setOption(this.option) // 图表动态改变
setInterval(function() {
var axisData = (new Date()).toLocaleTimeString().replace(/^\D*/g, '');
var data0 = that.option.series[0].data;
data0.shift();
// 两秒请求一次数据
that.axios.post('/url', {
id: 1
}).then((data) => {
var people = data.data.data.expo_audience
data0.push(people);
that.option.xAxis[0].data.shift();
that.option.xAxis[0].data.push(axisData);
that.option.xAxis[1].data.shift();
that.option.xAxis[1].data.push(people); that.chart.setOption(that.option);
})
}, 2100);
}) }
}
} </script>

vue中使用动态echart图表的更多相关文章

  1. 如何在vue中修改动态标签中的样式和修改组件库样式

    vue中修改动态标签中的样式和修改组件库样式 因为vue中的标签在渲染的时候,都会给标签加上id 所以你想在<style lang="scss" scoped>直接修改 ...

  2. 在vue中如何动态修改title标签的值

    建议用vue-wechat-title插件为微信动态设置标题 1,首先安装插件 cnpm install vue-wechat-title --save 2,在main.js中引入 Vue.use(r ...

  3. vue中怎么动态生成form表单

    form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成组件.支持3个UI框架,并且支持生成任何 Vue 组件.内置20种常用表单组件和自定义组件,再复杂 ...

  4. vue中如何动态的绑定图片,vue中通过data返回图片路径

    在项目中遇到需要动态的改变图片路径,图片路径并非是从后台获取过来的数据. 因此在data中必须用require加载,否则会当成字符串来处理. 效果:

  5. vue中实现动态切换不同的值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. vue中v-model动态生成的实例详解

    每一行有一个input和一个select,其中行数是根据服务器返回的json数据动态变化的.那么问题来了,我们要怎样动态生成v-model? <template> <div> ...

  7. problem: vue中获取动态元素高度

    前言:始终要相信你能想到的解决方案,基本上都是可以用技术实现的... 解决方法就是在mounted中在this.$nextTick()去获取,如果没有获取到,不是写法错就是,元素没有绑定对地方,注意检 ...

  8. 如何在vue中使用动态使用本地图片路径

    不知道各位小伙伴有没有在开发遇到一个问题,就是在线上的项目使用后台返回本地图片路径,然后加载不上的情况呢? 我的解决方法就是:先在项目的data下定义好这样一个数组用于存放需要加载的路径 [ {nam ...

  9. vue中如何动态添加readonly属性

    动态绑定input的readonly属性 1 <inpu :readonly="status ? false : 'readonly'"> status 为 false ...

随机推荐

  1. 【oneday_onepage】——Ten Changes To Make A Difference In Your Life

    When you want to change something in your life, it can feel overwhelming. Whether it’s losing 50lbs ...

  2. 微信小程序——navigator无法跳转

    今天在做小程序的时候,发现用navigator无法进行跳转.url 路径也是对的. 后面发现是因为我需要跳转的页面定义在了tabBar里面的.如下图: 如果需要跳转到tabBar里面定义的这些页面,需 ...

  3. 我最喜欢的jQuery插件模板

    我使用jQuery已经有相当长的时间了,并且我会常常为它写一些插件(plugin).我尝试过用不同的方式去写,现在这个模板是我最喜欢的: 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...

  4. [spark] spark安装和基础使用

    [下载] 注意选择spark版本时,与hadoop的版本要搭配 http://spark.apache.org/downloads.html [安装]

  5. Some Parameter Interpretation On Using Mininet

    MiniNet使用很简单,下面以下面帮助界面截图为例,简单讲述常见的几个命令即可: sudo mn --topo single,3--mac --switch ovsk--controller rem ...

  6. 自然语言交流系统 phxnet团队 创新实训 项目博客 (六)

    从你进入软件开始,你就建立了和服务器的联系.这是一段和服务器的长连接,直到你退出此软件. 2D文字聊天界面大致实现了文字输入.发送消息.接收消息.你可以通过点击按钮让机器人开启聊天模式或者学习模式.又 ...

  7. linux mongodb数据库的安装

    折腾两天, 前领导留下的烂摊子,前天忽然挂掉了, 整个公司就我会linux, 奶奶的, 一言难尽. 下面记录下怎么安装mongodb, 前面是从菜鸟教程复制来的 1. 下载 MongoDB 提供了 l ...

  8. matlab中生成随机数的相关知识

    randperm()函数: 功能:用于生成从1到N的随机整数,并且没有重复,它本质上是一个随机排序的函数: 用法:1.  randperm(n)     随机生成从1到n的不重复的整数: 2. ran ...

  9. 第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目

    第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目 scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:h ...

  10. 查看 共享内存 的命令 ipcrm、ipcs

    ipcrm 命令 移除一个消息对象.或者共享内存段,或者一个信号集,同时会将与ipc对象相关链的数据也一起移除.当然,只有超级管理员,或者ipc对象的创建者才有这项权利啦 ipcrm用法 ipcrm ...