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
+42
View File
@@ -425,6 +425,48 @@ export function categorizedArrayToPlainArray(object) {
return ret;
}
export function selectAll(filterItemIds, allItemsMap) {
for (let itemId in filterItemIds) {
if (!Object.prototype.hasOwnProperty.call(filterItemIds, itemId)) {
continue;
}
const item = allItemsMap[itemId];
if (item) {
filterItemIds[item.id] = false;
}
}
}
export function selectNone(filterItemIds, allItemsMap) {
for (let itemId in filterItemIds) {
if (!Object.prototype.hasOwnProperty.call(filterItemIds, itemId)) {
continue;
}
const item = allItemsMap[itemId];
if (item) {
filterItemIds[item.id] = true;
}
}
}
export function selectInvert(filterItemIds, allItemsMap) {
for (let itemId in filterItemIds) {
if (!Object.prototype.hasOwnProperty.call(filterItemIds, itemId)) {
continue;
}
const item = allItemsMap[itemId];
if (item) {
filterItemIds[item.id] = !filterItemIds[item.id];
}
}
}
export function isPrimaryItemHasSecondaryValue(primaryItem, primarySubItemsField, secondaryValueField, secondaryValue) {
for (let i = 0; i < primaryItem[primarySubItemsField].length; i++) {
const secondaryItem = primaryItem[primarySubItemsField][i];