Files
vue-chartjs/src/examples/ReactiveExample.js
2018-01-12 13:52:45 +01:00

45 lines
1.1 KiB
JavaScript

import Bar from '../BaseCharts/Bar'
import reactiveData from '../mixins/reactiveData'
export default {
extends: Bar,
mixins: [reactiveData],
data: () => ({
chartData: '',
options: {
responsive: true,
maintainAspectRatio: false
}
}),
created () {
this.fillData()
},
mounted () {
this.renderChart(this.chartData, this.options)
setInterval(() => {
this.fillData()
}, 5000)
},
methods: {
fillData () {
this.chartData = {
labels: ['January' + this.getRandomInt(), 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
datasets: [
{
label: 'Data One',
backgroundColor: '#f87979',
data: [this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt(), this.getRandomInt()]
}
]
}
},
getRandomInt () {
return Math.floor(Math.random() * (50 - 5 + 1)) + 5
}
}
}