Feat(home): over time tag spending comparison

This commit is contained in:
2019-01-27 07:18:50 +01:00
parent cd313264af
commit 7fc1675052
5 changed files with 213 additions and 61 deletions

View File

@@ -3,7 +3,7 @@ import Vue from 'vue'
import path from 'path'
import Papa from 'papaparse'
import moment from 'moment'
import { appendTag, formatDate } from '../../libs/data_processing'
import { appendTag, formatDate, tag_filter } from '../../libs/data_processing'
export default {
namespaced: true,
@@ -57,27 +57,25 @@ export default {
return moment(x.Date).isSame(state.month, 'month')
})
},
tag_filter_rows: (state, getters) => (tags, invert) => {
// return rows filtered by date then by tags
if (tags) {
return getters.date_filter_rows.filter(row => {
if (invert) {
return tags.some(t => {
return row.tags.map(t => t.name.toLowerCase())
.indexOf(t.toLowerCase()) < 0
})
} else {
return tags.every(t => {
return row.tags.map(t => t.name.toLowerCase())
.indexOf(t.toLowerCase()) > -1
})
}
})
tag_filter_rows: (state, getters) => (tags, invert, dateFilter = true) => {
// return rows filtered by tags
// by default it filters rows by date
// to disable date filtering set date_filter to false
var rows
if (dateFilter) {
rows = getters.date_filter_rows
} else {
rows = getters.spending_rows
}
if (tags.length > 0) {
return tag_filter(rows, tags, invert)
} else {
if (invert) {
return []
return rows.filter(r => {
return r.tags.map(t => t.name.toLowerCase()).toString() === ["cb"].toString()
})
} else {
return getters.date_filter_rows
return rows
}
}
},
@@ -99,7 +97,12 @@ export default {
})
})
}
},
months: (state, getters) => {
// Set of month
return [... new Set(getters.rows.map(x => moment(x.Date).format('MMMM YYYY')))]
}
},
mutations: {
CLEAR_DATA: (state) => {