From 26dd9c5202d270e903ba09ed7ef3c8fe7a87db25 Mon Sep 17 00:00:00 2001 From: Vladimir Voronin Date: Fri, 24 Jan 2025 15:25:43 +0300 Subject: [PATCH] +analytics update --- src/components/ToolBar.vue | 2 +- src/components/analytics/AnalyticsView.vue | 101 +++++++++++++++------ src/services/categoryService.ts | 10 +- 3 files changed, 81 insertions(+), 32 deletions(-) diff --git a/src/components/ToolBar.vue b/src/components/ToolBar.vue index 91d6034..ad86dd6 100644 --- a/src/components/ToolBar.vue +++ b/src/components/ToolBar.vue @@ -7,7 +7,7 @@
- +

Аналитика

diff --git a/src/components/analytics/AnalyticsView.vue b/src/components/analytics/AnalyticsView.vue index 7aae1c8..82c2700 100644 --- a/src/components/analytics/AnalyticsView.vue +++ b/src/components/analytics/AnalyticsView.vue @@ -7,6 +7,9 @@ import Column from "primevue/column"; import Chart from "primevue/chart"; import Listbox from "primevue/listbox"; import Select from "primevue/select"; +import InputText from "primevue/inputtext"; +import IconField from "primevue/iconfield" +import InputIcon from "primevue/inputicon"; import Accordion from "primevue/accordion"; import AccordionPanel from "primevue/accordionpanel"; import AccordionHeader from "primevue/accordionheader"; @@ -27,8 +30,15 @@ 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, maximumFractionDigits:0})) +const formatter = ref(new Intl.NumberFormat('ru-RU', { + style: 'currency', + currency: 'RUB', + minimumFractionDigits: 0, + maximumFractionDigits: 0 +})) const isChartOpen = ref(false) +const filterText = ref(null) + const closeChart = () => { setTimeout(() => { @@ -148,12 +158,12 @@ const prepareTableData = (categories) => { if (found.difference != 0) { if (found.difference > 0) { - row[dateStr] = found ? formatter.value.format(found.total) + "

(+ " + found.difference + "%)

" : 0; + row[dateStr] = found ? "

" + formatter.value.format(found.total) + "

(+ " + found.difference + "%)

" : 0; } else { - row[dateStr] = found ? formatter.value.format(found.total) + "

(" + found.difference + "%)

" : 0; + row[dateStr] = found ? "

" + formatter.value.format(found.total) + "

(" + found.difference + "%)

" : 0; } } else { - row[dateStr] = found ? formatter.value.format(found.total) : 0; + row[dateStr] = found ? "

" + formatter.value.format(found.total) + "

" : 0; } if (!sums[dateStr]) { sums[dateStr] = 0 @@ -161,7 +171,7 @@ const prepareTableData = (categories) => { sums[dateStr] += found.total categorySum += found.total }); - row["avg"] = formatter.value.format(categorySum/allDates.length); + row["avg"] = "

" + formatter.value.format(categorySum / allDates.length) + "

"; return row; }); @@ -179,7 +189,7 @@ const prepareTableData = (categories) => { if (difference > 0) { color = "text-red-500" } else color = "text-green-600" - sums[key] = formatter.value.format(sums[key]) + `

(` + difference.toFixed(0) + "%)

"; + sums[key] = "

" + formatter.value.format(sums[key]) + `

(` + difference.toFixed(0) + "%)

"; }); @@ -221,32 +231,54 @@ onMounted(async () => {