diff --git a/src/components/analytics/AnalyticsView.vue b/src/components/analytics/AnalyticsView.vue index 55caa76..7aae1c8 100644 --- a/src/components/analytics/AnalyticsView.vue +++ b/src/components/analytics/AnalyticsView.vue @@ -27,7 +27,7 @@ const dataTableCategories = ref([]); const tableColumns = ref([]); const chartData = ref(null) const selectedCategory = ref() -const formatter = ref(new Intl.NumberFormat('ru-RU', {style: 'currency', currency: 'RUB', minimumFractionDigits: 0})) +const formatter = ref(new Intl.NumberFormat('ru-RU', {style: 'currency', currency: 'RUB', minimumFractionDigits: 0, maximumFractionDigits:0})) const isChartOpen = ref(false) const closeChart = () => { @@ -133,6 +133,7 @@ const prepareTableData = (categories) => { tableColumns.value = [ {field: "category", header: "Категория"}, ...allDates.map((dateStr) => ({field: dateStr, header: dateStr})), + {field: "avg", header: "Среднее"}, ]; console.log(tableColumns.value[0].field); const sums = {} @@ -140,10 +141,11 @@ const prepareTableData = (categories) => { const rows = categories.map((category) => { // Начинаем со строки, где есть поле с именем категории const row = {category: category.categoryIcon + " " + category.categoryName}; - + let categorySum = 0 // Для каждой даты проверяем, есть ли в monthlySums соответствующая запись allDates.forEach((dateStr) => { const found = category.monthlySums.find((m) => m.date === dateStr); + if (found.difference != 0) { if (found.difference > 0) { row[dateStr] = found ? formatter.value.format(found.total) + "
(+ " + found.difference + "%)
" : 0; @@ -157,7 +159,9 @@ const prepareTableData = (categories) => { sums[dateStr] = 0 } sums[dateStr] += found.total + categorySum += found.total }); + row["avg"] = formatter.value.format(categorySum/allDates.length); return row; }); @@ -176,7 +180,6 @@ const prepareTableData = (categories) => { color = "text-red-500" } else color = "text-green-600" sums[key] = formatter.value.format(sums[key]) + `(` + difference.toFixed(0) + "%)
"; - });