Feat: Use moment js to manage dates
This commit is contained in:
parent
fc3bf1eb50
commit
877c269ee4
@ -1,3 +1,4 @@
|
|||||||
|
import moment from 'moment'
|
||||||
export function appendTag (row, keywords, field = 'Libellé') {
|
export function appendTag (row, keywords, field = 'Libellé') {
|
||||||
// Append row.tag
|
// Append row.tag
|
||||||
// if row.libellé contains one of words and not invert it gets tagged
|
// if row.libellé contains one of words and not invert it gets tagged
|
||||||
@ -25,6 +26,10 @@ function strContains (string, words, invert) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function formatDate (row, field = 'Date') {
|
||||||
|
row[field] = moment(row[field], 'DD/MM/YYYY', true)
|
||||||
|
}
|
||||||
|
|
||||||
export function total (row, field = 'Montant') {
|
export function total (row, field = 'Montant') {
|
||||||
var sum = row.map(x => parseFloat(x[field]))
|
var sum = row.map(x => parseFloat(x[field]))
|
||||||
.reduce((sum, x) => sum + x, 0)
|
.reduce((sum, x) => sum + x, 0)
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
import { readdir, readFile } from 'fs'
|
import { readdir, readFile } from 'fs'
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
import Papa from 'papaparse'
|
import Papa from 'papaparse'
|
||||||
import { appendTag } from '../../libs/data_processing'
|
import moment from 'moment'
|
||||||
|
import { appendTag, formatDate } from '../../libs/data_processing'
|
||||||
var today = new Date()
|
|
||||||
var monthAgo = new Date()
|
|
||||||
monthAgo.setMonth(monthAgo.getMonth() - 1)
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
namespaced: true,
|
namespaced: true,
|
||||||
@ -17,8 +14,8 @@ export default {
|
|||||||
fields: []
|
fields: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
start: monthAgo.toISOString().split('T')[0],
|
start: moment().subtract(1, 'months'),
|
||||||
end: today.toISOString().split('T')[0]
|
end: moment()
|
||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
csvs: (state) => {
|
csvs: (state) => {
|
||||||
@ -34,16 +31,14 @@ export default {
|
|||||||
return getters.rows.filter(x => x.Montant < 0)
|
return getters.rows.filter(x => x.Montant < 0)
|
||||||
},
|
},
|
||||||
start: (state) => {
|
start: (state) => {
|
||||||
return state.start
|
return state.start.format(moment.HTML5_FMT.DATE)
|
||||||
},
|
},
|
||||||
end: (state) => {
|
end: (state) => {
|
||||||
return state.end
|
return state.end.format(moment.HTML5_FMT.DATE)
|
||||||
},
|
},
|
||||||
date_filter_rows: (state, getters) => {
|
date_filter_rows: (state, getters) => {
|
||||||
var start = new Date(state.start)
|
|
||||||
var end = new Date(state.end)
|
|
||||||
return getters.spending_rows.filter(x => {
|
return getters.spending_rows.filter(x => {
|
||||||
return (new Date(x.Date) >= start) & (new Date(x.Date) < end)
|
return (x.Date >= state.start) & (x.Date < state.end)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
tag_filter_rows: (state, getters) => (tags, invert) => {
|
tag_filter_rows: (state, getters) => (tags, invert) => {
|
||||||
@ -52,7 +47,7 @@ export default {
|
|||||||
if (invert) {
|
if (invert) {
|
||||||
return tags.some(t => {
|
return tags.some(t => {
|
||||||
return row.tags.map(t => t.name.toLowerCase())
|
return row.tags.map(t => t.name.toLowerCase())
|
||||||
.indexOf(t.toLowerCase()) < 0
|
.ÿEindexOf(t.toLowerCase()) < 0
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
return tags.every(t => {
|
return tags.every(t => {
|
||||||
@ -126,7 +121,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
load_csv (context, csv) {
|
load_csv (context, csv) {
|
||||||
//readFile(path.join(context.rootGetters['config/data_dir'], csv), 'utf8', (err, content) => {
|
|
||||||
readFile(path.join(context.rootGetters['config/data_dir'], csv), 'Latin1', (err, content) => {
|
readFile(path.join(context.rootGetters['config/data_dir'], csv), 'Latin1', (err, content) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
@ -144,15 +138,16 @@ export default {
|
|||||||
parsed.data = parsed.data.filter(x => x.Libellé !== undefined)
|
parsed.data = parsed.data.filter(x => x.Libellé !== undefined)
|
||||||
parsed.data.forEach(row => {
|
parsed.data.forEach(row => {
|
||||||
appendTag(row, tags, 'Libellé')
|
appendTag(row, tags, 'Libellé')
|
||||||
|
formatDate(row, 'Date')
|
||||||
})
|
})
|
||||||
|
|
||||||
context.commit('SET_DATA', { data: parsed })
|
context.commit('SET_DATA', { data: parsed })
|
||||||
},
|
},
|
||||||
set_start (context, start) {
|
set_start (context, start) {
|
||||||
context.commit('SET_START', { start })
|
context.commit('SET_START', { start: moment(start)})
|
||||||
},
|
},
|
||||||
set_end (context, end) {
|
set_end (context, end) {
|
||||||
context.commit('SET_END', { end })
|
context.commit('SET_END', { end: moment(end)})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<b-container fluid>
|
<b-container fluid>
|
||||||
<b-row class="date-selector">
|
<b-row class="date-selector">
|
||||||
<b-col sm="1"><label for="start"> Entre </label> </b-col>
|
<b-col sm="1"><label for="start"> Entre </label> </b-col>
|
||||||
<b-col sm="3">
|
<b-col sm="4">
|
||||||
<b-form-input id="start" type="date" :value="start" @input="set_start"></b-form-input>
|
<b-form-input id="start" type="date" :value="start" @input="set_start"></b-form-input>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col sm="1"><label for="end"> et </label></b-col>
|
<b-col sm="1"><label for="end"> et </label></b-col>
|
||||||
@ -66,7 +66,7 @@ export default {
|
|||||||
{
|
{
|
||||||
key: 'Date',
|
key: 'Date',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
formatter: this.table_date_format
|
formatter: d => d.format('DD/MM/YYYY')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'Montant',
|
key: 'Montant',
|
||||||
@ -113,9 +113,6 @@ export default {
|
|||||||
]),
|
]),
|
||||||
update_start (e) {
|
update_start (e) {
|
||||||
},
|
},
|
||||||
table_date_format (date) {
|
|
||||||
return date
|
|
||||||
},
|
|
||||||
set_tags_filter (tagnames) {
|
set_tags_filter (tagnames) {
|
||||||
this.tags_filter = tagnames
|
this.tags_filter = tagnames
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user