diff --git a/src/components/analytics/AnalyticsView.vue b/src/components/analytics/AnalyticsView.vue index 0143869..ea6cf49 100644 --- a/src/components/analytics/AnalyticsView.vue +++ b/src/components/analytics/AnalyticsView.vue @@ -1,261 +1,62 @@ - - \ No newline at end of file diff --git a/src/components/transactions/TransactionFormContent.vue b/src/components/transactions/TransactionFormContent.vue index 3517b22..fcb9090 100644 --- a/src/components/transactions/TransactionFormContent.vue +++ b/src/components/transactions/TransactionFormContent.vue @@ -23,7 +23,7 @@ import BudgetTransactionView from "@/components/budgets/BudgetTransactionView.vu import {useUserStore} from "@/stores/userStore"; -import { EventBus } from '@/utils/EventBus'; +import {EventBus} from '@/utils/EventBus'; const props = defineProps({ @@ -162,16 +162,22 @@ const amountInput = ref(null); const createTransaction = async () => { if (checkForm()) { try { - loading.value = true; + // loading.value = true; if (editedTransaction.value.type.code === 'INSTANT') { editedTransaction.value.isDone = true; } - await createTransactionRequest(editedTransaction.value); - - - setTimeout(async () => { + await createTransactionRequest(editedTransaction.value).then + { + loading.value = false; amountInput.value.$el.querySelector('input').focus() - }, 10) + } + + + + // setTimeout(async () => { + // + // amountInput.value.$el.querySelector('input').focus() + // }, 0) emit('create-transaction', editedTransaction.value); @@ -197,9 +203,7 @@ const createTransaction = async () => { const transactionsUpdatedEmit = async () => { await getTransactions('INSTANT', 'EXPENSE', null, user.value.id, false, 3).then(transactionsResponse => transactions.value = transactionsResponse.data); - EventBus.emit('transactions-updated', { - id: Date.now(), - }); + EventBus.emit('transactions-updated', true) } // Обновление транзакции @@ -212,7 +216,7 @@ const updateTransaction = async () => { // toast.add({severity: 'success', summary: 'Transaction updated!', detail: 'Транзакция обновлена!', life: 3000}); emit('update-transaction', editedTransaction.value); emit('transaction-updated'); - await transactionsUpdatedEmit() + await transactionsUpdatedEmit() toast.add({severity: 'success', summary: 'Успешно!', detail: 'Транзакция создана!', life: 3000}); } catch (error) { toast.add({severity: 'error', summary: 'Ошибка!', detail: error.response.data["message"], life: 3000}); @@ -383,6 +387,7 @@ onMounted(async () => { { -
- +
diff --git a/src/components/transactions/TransactionList.vue b/src/components/transactions/TransactionList.vue index 34b5b97..49cd339 100644 --- a/src/components/transactions/TransactionList.vue +++ b/src/components/transactions/TransactionList.vue @@ -21,13 +21,12 @@ const allLoaded = ref(false); // Флаг для отслеживания око // Функция для получения транзакций с параметрами limit и offset const fetchTransactions = async (reload) => { - console.log("here") - console.log(allLoaded.value) + console.log(reload); // if (loading.value || allLoaded.value) return; // Останавливаем загрузку, если уже загружается или данные загружены полностью loading.value = true; try { - console.log(reload); + const response = await getTransactions('INSTANT', null, null, selectedUserId.value ? selectedUserId.value : null, null, reload ? offset.value : limit, reload ? 0 : offset.value); const newTransactions = response.data; @@ -39,7 +38,7 @@ const fetchTransactions = async (reload) => { // Добавляем новые транзакции к текущему списку reload ? transactions.value = newTransactions : transactions.value.push(...newTransactions) - offset.value += limit; // Обновляем смещение для следующей загрузки + !reload ? offset.value += limit : offset.value } catch (error) { console.error("Error fetching transactions:", error); } @@ -110,7 +109,7 @@ const fetchUsers = async () => { const selectedTransactionType = ref(null) const types = ref([]) onMounted(async () => { - EventBus.on('transactions-updated', fetchTransactions); + EventBus.on('transactions-updated', fetchTransactions,true); await fetchTransactions(); // Первоначальная загрузка данных await fetchUsers(); await getTransactionTypes().then( it => types.value = it.data); diff --git a/src/services/categoryService.ts b/src/services/categoryService.ts index be055fa..014b9a3 100644 --- a/src/services/categoryService.ts +++ b/src/services/categoryService.ts @@ -23,3 +23,8 @@ export const updateCategory = async (id: number, category: any) => { export const deleteCategory = async (id: number) => { return await apiClient.delete(`/categories/${id}`); }; + +export const getCategoriesSumsRequest = async () => { + return await apiClient.get('/categories/by-month'); + +}