diff --git a/ui/src/components/mileageChart.vue b/ui/src/components/mileageChart.vue index a917529..4b37f98 100644 --- a/ui/src/components/mileageChart.vue +++ b/ui/src/components/mileageChart.vue @@ -3,9 +3,20 @@ import { Line } from 'vue-chartjs' import axios from 'axios' import { mapState } from 'vuex' +import { string } from 'yargs' export default { extends: Line, - props: { vehicle: { type: Object, required: true }, since: { type: Date, default: '' }, user: { type: Object, required: true } }, + props: { + vehicle: { type: Object, required: true }, + since: { type: Date, default: '' }, + user: { type: Object, required: true }, + mileageOption: { type: string, default: 'litre_100km' }, + }, + data: function() { + return { + chartData: [], + } + }, computed: { ...mapState('utils', ['isMobile']), }, @@ -17,20 +28,28 @@ export default { this.fetchMileage() }, }, - data: function() { - return { - chartData: [], - } - }, mounted() { this.fetchMileage() }, methods: { showChart() { + let mileageLabel = '' + switch (this.mileageOption) { + case 'litre_100km': + mileageLabel = 'L/100km' + break + case 'km_litre': + mileageLabel = 'km/L' + break + case 'mpg': + mileageLabel = 'mpg' + break + } + var labels = this.chartData.map((x) => x.date.substr(0, 10)) var dataset = { steppedLine: true, - label: `Mileage (${this.user.distanceUnitDetail.short}/${this.vehicle.fuelUnitDetail.short})`, + label: `Mileage (${mileageLabel})`, fill: true, data: this.chartData.map((x) => x.mileage), } @@ -41,6 +60,7 @@ export default { .get(`/api/vehicles/${this.vehicle.id}/mileage`, { params: { since: this.since, + mileageOption: this.mileageOption, }, }) .then((response) => { diff --git a/ui/src/router/views/vehicle.vue b/ui/src/router/views/vehicle.vue index 101b2fc..f5ce51c 100644 --- a/ui/src/router/views/vehicle.vue +++ b/ui/src/router/views/vehicle.vue @@ -48,6 +48,12 @@ export default { { label: 'All Time', value: 'all_time' }, ], dateRangeOption: 'past_30_days', + mileageOptions: [ + { label: 'L/100km', value: 'litre_100km' }, + { label: 'km/L', value: 'km_litre' }, + { label: 'mpg', value: 'mpg' }, + ], + mileageOption: 'litre_100km', } }, computed: { @@ -529,14 +535,25 @@ export default {

Stats

- - -
+
+
+ + + +
+
+ + + +
+
+
- +