diff --git a/src/components/Charts/BarChart.js b/src/components/Charts/BarChart.js index 62e0c6d..3a12c0c 100644 --- a/src/components/Charts/BarChart.js +++ b/src/components/Charts/BarChart.js @@ -21,37 +21,34 @@ export default { } } }, + data() { + return { + ctx: null + }; + }, methods: { - updateGradients() { - const ctx = document.getElementById(this.chartId).getContext('2d'); + updateGradients(chartData) { + if(!chartData) return; + const ctx = this.ctx || document.getElementById(this.chartId).getContext('2d'); const gradientStroke = ctx.createLinearGradient(0, 230, 0, 50); gradientStroke.addColorStop(this.gradientStops[0], this.gradientColors[0]); gradientStroke.addColorStop(this.gradientStops[1], this.gradientColors[1]); gradientStroke.addColorStop(this.gradientStops[2], this.gradientColors[2]); - if(this.chartData){ - this.chartData.datasets.forEach(set => { - set.backgroundColor = gradientStroke; - }); - } + chartData.datasets.forEach(set => { + set.backgroundColor = gradientStroke; + }); } }, mounted() { - this.updateGradients(); - this.renderChart( - this.chartData, - this.extraOptions - ); - }, - watch: { - chartData(newVal, oldVal) { - this.updateGradients(); - if(oldVal === null) { + this.$watch('chartData', (newVal, oldVal) => { + this.updateGradients(this.chartData); + if (oldVal === null) { this.renderChart( this.chartData, this.extraOptions ); } - } + }, { immediate: true }); } }; diff --git a/src/components/Charts/LineChart.js b/src/components/Charts/LineChart.js index 04761f6..d922ff7 100644 --- a/src/components/Charts/LineChart.js +++ b/src/components/Charts/LineChart.js @@ -9,49 +9,46 @@ export default { gradientColors: { type: Array, default: () => ['rgba(72,72,176,0.2)', 'rgba(72,72,176,0.0)', 'rgba(119,52,169,0)'], - validator: val =>{ + validator: val => { return val.length > 2; } }, gradientStops: { type: Array, default: () => [1, 0.4, 0], - validator: val =>{ + validator: val => { return val.length > 2; } } }, + data() { + return { + ctx: null + }; + }, methods: { - updateGradients() { - const ctx = document.getElementById(this.chartId).getContext('2d'); + updateGradients(chartData) { + if(!chartData) return; + const ctx = this.ctx || document.getElementById(this.chartId).getContext('2d'); const gradientStroke = ctx.createLinearGradient(0, 230, 0, 50); gradientStroke.addColorStop(this.gradientStops[0], this.gradientColors[0]); gradientStroke.addColorStop(this.gradientStops[1], this.gradientColors[1]); gradientStroke.addColorStop(this.gradientStops[2], this.gradientColors[2]); - if(this.chartData){ - this.chartData.datasets.forEach(set => { - set.backgroundColor = gradientStroke; - }); - } + chartData.datasets.forEach(set => { + set.backgroundColor = gradientStroke; + }); } }, mounted() { - this.updateGradients(); - this.renderChart( - this.chartData, - this.extraOptions - ); - }, - watch: { - chartData(newVal, oldVal) { - this.updateGradients(); - if(oldVal === null) { + this.$watch('chartData', (newVal, oldVal) => { + this.updateGradients(this.chartData); + if (oldVal === null) { this.renderChart( this.chartData, this.extraOptions ); } - } + }, { immediate: true }); } }; diff --git a/src/pages/Dashboard.vue b/src/pages/Dashboard.vue index f55d4bb..72b96a2 100644 --- a/src/pages/Dashboard.vue +++ b/src/pages/Dashboard.vue @@ -29,6 +29,7 @@