add transaction tag filter to frontend

This commit is contained in:
MaysWind
2024-07-21 23:36:16 +08:00
parent 4f9ab9db75
commit 26d77de67a
15 changed files with 874 additions and 14 deletions
+17 -1
View File
@@ -22,7 +22,7 @@ function getDisplayAmount(amount, currency, hideAmount, formatAmountWithCurrency
return formatAmountWithCurrencyFunc(amount, currency);
}
export function setTransactionModelByTransaction(transaction, transaction2, allCategories, allCategoriesMap, allVisibleAccounts, allAccountsMap, defaultAccountId, options, setContextData, convertContextTime) {
export function setTransactionModelByTransaction(transaction, transaction2, allCategories, allCategoriesMap, allVisibleAccounts, allAccountsMap, allTagsMap, defaultAccountId, options, setContextData, convertContextTime) {
if ((!options.type || options.type === '0') && options.categoryId && options.categoryId !== '0' && allCategoriesMap[options.categoryId]) {
const category = allCategoriesMap[options.categoryId];
const type = categoryTypeToTransactionType(category.type);
@@ -105,6 +105,22 @@ export function setTransactionModelByTransaction(transaction, transaction2, allC
}
}
if (allTagsMap && options.tagIds) {
const tagIds = options.tagIds.split(',');
const finalTagIds = [];
for (let i = 0; i < tagIds.length; i++) {
const tagId = tagIds[i];
const tag = allTagsMap[tagId];
if (tag && !tag.hidden) {
finalTagIds.push(tag.id);
}
}
transaction.tagIds = finalTagIds;
}
if (transaction2) {
if (setContextData) {
transaction.id = transaction2.id;