mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-16 07:57:33 +08:00
use pinia to replace vuex, code refactor
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
import categoryConstants from '@/consts/category.js';
|
||||
import transactionConstants from '@/consts/transaction.js';
|
||||
|
||||
export function transactionTypeToCategoryType(transactionType) {
|
||||
if (transactionType === transactionConstants.allTransactionTypes.Income) {
|
||||
return categoryConstants.allCategoryTypes.Income;
|
||||
} else if (transactionType === transactionConstants.allTransactionTypes.Expense) {
|
||||
return categoryConstants.allCategoryTypes.Expense;
|
||||
} else if (transactionType === transactionConstants.allTransactionTypes.Transfer) {
|
||||
return categoryConstants.allCategoryTypes.Transfer;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function categoryTypeToTransactionType(categoryType) {
|
||||
if (categoryType === categoryConstants.allCategoryTypes.Income) {
|
||||
return transactionConstants.allTransactionTypes.Income;
|
||||
} else if (categoryType === categoryConstants.allCategoryTypes.Expense) {
|
||||
return transactionConstants.allTransactionTypes.Expense;
|
||||
} else if (categoryType === categoryConstants.allCategoryTypes.Transfer) {
|
||||
return transactionConstants.allTransactionTypes.Transfer;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function getTransactionPrimaryCategoryName(categoryId, allCategories) {
|
||||
for (let i = 0; i < allCategories.length; i++) {
|
||||
for (let j = 0; j < allCategories[i].subCategories.length; j++) {
|
||||
const subCategory = allCategories[i].subCategories[j];
|
||||
if (subCategory.id === categoryId) {
|
||||
return allCategories[i].name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
export function getTransactionSecondaryCategoryName(categoryId, allCategories) {
|
||||
for (let i = 0; i < allCategories.length; i++) {
|
||||
for (let j = 0; j < allCategories[i].subCategories.length; j++) {
|
||||
const subCategory = allCategories[i].subCategories[j];
|
||||
if (subCategory.id === categoryId) {
|
||||
return subCategory.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
export function allVisibleTransactionCategories(allTransactionCategories) {
|
||||
const ret = {};
|
||||
|
||||
for (let key in transactionConstants.allTransactionTypes) {
|
||||
if (!Object.prototype.hasOwnProperty.call(transactionConstants.allTransactionTypes, key)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const transactionType = transactionConstants.allTransactionTypes[key];
|
||||
|
||||
if (!allTransactionCategories[transactionType]) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const allCategories = allTransactionCategories[transactionType];
|
||||
const visibleCategories = [];
|
||||
const allVisibleSubCategories = {};
|
||||
|
||||
for (let j = 0; j < allCategories.length; j++) {
|
||||
const category = allCategories[j];
|
||||
|
||||
if (category.hidden) {
|
||||
continue;
|
||||
}
|
||||
|
||||
visibleCategories.push(category);
|
||||
|
||||
if (category.subCategories) {
|
||||
const visibleSubCategories = [];
|
||||
|
||||
for (let k = 0; k < category.subCategories.length; k++) {
|
||||
const subCategory = category.subCategories[k];
|
||||
|
||||
if (!subCategory.hidden) {
|
||||
visibleSubCategories.push(subCategory);
|
||||
}
|
||||
}
|
||||
|
||||
if (visibleSubCategories.length > 0) {
|
||||
allVisibleSubCategories[category.id] = visibleSubCategories;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ret[transactionType.toString()] = {
|
||||
type: transactionType.toString(),
|
||||
visibleCategories: visibleCategories,
|
||||
visibleSubCategories: allVisibleSubCategories
|
||||
};
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
Reference in New Issue
Block a user