support filter by parent account in transaction list page

This commit is contained in:
MaysWind
2022-03-20 21:54:48 +08:00
parent b7fe70aba3
commit 7364380312
6 changed files with 107 additions and 24 deletions
+7 -1
View File
@@ -593,7 +593,13 @@ const stores = {
}
if ((state.transactionsFilter.categoryId && state.transactionsFilter.categoryId !== '0' && state.transactionsFilter.categoryId !== transaction.categoryId) ||
(state.transactionsFilter.accountId && state.transactionsFilter.accountId !== '0' && state.transactionsFilter.accountId !== transaction.sourceAccountId && state.transactionsFilter.accountId !== transaction.destinationAccountId)) {
(state.transactionsFilter.accountId && state.transactionsFilter.accountId !== '0' &&
state.transactionsFilter.accountId !== transaction.sourceAccountId &&
state.transactionsFilter.accountId !== transaction.destinationAccountId &&
(!transaction.sourceAccount || state.transactionsFilter.accountId !== transaction.sourceAccount.parentId) &&
(!transaction.destinationAccount || state.transactionsFilter.accountId !== transaction.destinationAccount.parentId)
)
) {
transactionMonthList.items.splice(j, 1);
} else {
transactionMonthList.items.splice(j, 1, transaction);
+8 -1
View File
@@ -320,7 +320,7 @@ export function calculateMonthTotalAmount(state, transactionMonthList, defaultCu
let amount = transaction.sourceAmount;
let account = transaction.sourceAccount;
if (accountId && transaction.destinationAccount && transaction.destinationAccount.id === accountId) {
if (accountId && transaction.destinationAccount && (transaction.destinationAccount.id === accountId || transaction.destinationAccount.parentId === accountId)) {
amount = transaction.destinationAmount;
account = transaction.destinationAccount;
}
@@ -354,6 +354,13 @@ export function calculateMonthTotalAmount(state, transactionMonthList, defaultCu
totalExpense += amount;
} else if (accountId === transaction.destinationAccountId) {
totalIncome += amount;
} else if (transaction.sourceAccount && accountId === transaction.sourceAccount.parentId &&
transaction.destinationAccount && accountId === transaction.destinationAccount.parentId) {
// Do Nothing
} else if (transaction.sourceAccount && accountId === transaction.sourceAccount.parentId) {
totalExpense += amount;
} else if (transaction.destinationAccount && accountId === transaction.destinationAccount.parentId) {
totalIncome += amount;
}
}
}