Я использую laravel для своего бэкэнда и vue для создания своего внешнего интерфейса.Моя цель состоит в том, чтобы собрать все данные из итоговой таблицы с типом: «подсказки» и сравнить мой текущий месяц записей с моим предыдущим месяцем записей и рассчитать процент, чтобы показать либо прибыль / убыток.У меня есть все, кроме фактического разделения данных по текущему и предыдущему месяцу.
Это код моего виджета итогов.Часть, на которой я застрял, - это сравнение месяцев, когда у меня есть консоль, которая регистрирует данные res (текущие данные были фиктивными данными для проверки моего процента)
name: "TotalsWidget",
props: ['type'],
data() {
return {
desc: 'Tips',
percentage: 0,
thisMonth: 100,
lastMonth: 500,
total: 5477,
state: null,
}
},
methods: {
getData(type){
axios.get('/api/totals/'+ type).then((res) => {
/* Adding totals together */
let total = [];
Object.entries(res.data).forEach(([key, val]) => {
total.push(val.value)
});
this.total = total.reduce((total, num) => {return total + num}, 0);
/* Compare Months */
let months = [];
console.log(res.data)
});
}
},
computed:{
getPercentage(thisMonth, lastMonth){
this.percentage = Math.floor((this.thisMonth - this.lastMonth) / this.lastMonth * 100);
if(Math.sign(this.percentage) == 1){
return this.state = 'mdi mdi-arrow-up-drop-circle text-success mr-1'
} else {
return this.state = 'mdi mdi-arrow-down-drop-circle mr-1 text-danger'
}
},
},
mounted(){
this.getData(this.type);
console.log('Tips Widget Loaded');
}
Вот что у меня в резе.data:
[{…}, {…}]
0: {id: 1, type: "tips", desc: "Tips", value: 740, created_at: "2019-05-22 03:46:25", …}
1: {id: 2, type: "tips", desc: "Tips", value: 1105, created_at: "2019-04-22 03:46:25", …}
Каждый понедельник будут записи, это всего лишь несколько фиктивных данных, чтобы попытаться заставить их работать.Я не уверен, как мне сравнить эти два и нужно ли мне использовать функцию Date в javascripts или стороннюю организацию, например moment.js, и как это сделать.