Newer
Older
<div class="barchart-container">
<apexchart width="300" type="bar" :series="series" :options="chartOptions"/>
</div>
</template>
<script>
export default {
data() {
return {
chartOptions: {
chart: {
id: 'week-averages-chart',
toolbar: false,
fontFamily: 'Bungee',
foreColor: 'white',
dropShadow: {
enabled: true,
}
},
plotOptions: {
bar: {
categories: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
axisBorder: {
height: 3
},
axisTicks: {
show: false
}
},
yaxis: {
labels: {
formatter(value) {
return value + ' ml'
}
}
fontFamily: 'Bungee',
fontSize: 15
},
dropShadow: {
enabled: true,
},
formatter(value) {
return value === 0 ? '' : value
weekConsumption: [],
}
},
async fetch() {
const weekDataResponse = await this.$axios.get('/api/consumption/average-graph' +
'?precision=week')
this.weekData = weekDataResponse.data
this.weekConsumption = this.weekData.moments.map(moment => moment.average)
this.weekConsumption.push(this.weekConsumption.shift())
const days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
let max = 0
for (let i = 0; i < 7; i++) {
if ((this.weekConsumption[i]) > max) {
max = this.weekConsumption[i]
this.bestDay = days[i]
}
}
this.$store.commit('setBestWeekDay', this.bestDay)
},
computed: {
series() {
if (!Object.prototype.hasOwnProperty.call(this.weekData, 'moments')) {
return undefined
}
return [{
data: this.weekConsumption
<style lang="scss">
#apexchartsweekxaveragesxchart {
.apexcharts-xaxis-label,
.apexcharts-yaxis-label {
text-shadow: #555 1px 1px 5px;
}
.apexcharts-tooltip {
color: #333;
}
.apexcharts-tooltip-text-y-value,
.apexcharts-tooltip-text-goals-value,
.apexcharts-tooltip-text-z-value {
font-weight: unset;
}
}