code refactor
This commit is contained in:
+48
-2
@@ -1,6 +1,11 @@
|
||||
import { CategoryType } from '@/core/category.ts';
|
||||
import { type LocalizedPresetCategory, CategoryType } from '@/core/category.ts';
|
||||
import { TransactionType } from '@/core/transaction.ts';
|
||||
import { type TransactionCategoriesWithVisibleCount, TransactionCategory } from '@/models/transaction_category.ts';
|
||||
import {
|
||||
type TransactionCategoriesWithVisibleCount,
|
||||
type TransactionCategoryCreateRequest,
|
||||
type TransactionCategoryCreateWithSubCategories,
|
||||
TransactionCategory
|
||||
} from '@/models/transaction_category.ts';
|
||||
|
||||
export function transactionTypeToCategoryType(transactionType: TransactionType): CategoryType | null {
|
||||
if (transactionType === TransactionType.Income) {
|
||||
@@ -26,6 +31,47 @@ export function categoryTypeToTransactionType(categoryType: CategoryType): Trans
|
||||
}
|
||||
}
|
||||
|
||||
export function localizedPresetCategoryToTransactionCategoryCreateWithSubCategorys(presetCategory: LocalizedPresetCategory): TransactionCategoryCreateWithSubCategories {
|
||||
const subCategories: TransactionCategoryCreateRequest[] = [];
|
||||
|
||||
for (let i = 0; i < presetCategory.subCategories.length; i++) {
|
||||
const subPresetCategory = presetCategory.subCategories[i];
|
||||
const subCategory: TransactionCategoryCreateRequest = {
|
||||
name: subPresetCategory.name,
|
||||
type: subPresetCategory.type,
|
||||
parentId: '',
|
||||
icon: subPresetCategory.icon,
|
||||
color: subPresetCategory.color,
|
||||
comment: '',
|
||||
clientSessionId: ''
|
||||
};
|
||||
|
||||
subCategories.push(subCategory);
|
||||
}
|
||||
|
||||
const categoryWithSubCategories: TransactionCategoryCreateWithSubCategories = {
|
||||
name: presetCategory.name,
|
||||
type: presetCategory.type,
|
||||
icon: presetCategory.icon,
|
||||
color: presetCategory.color,
|
||||
subCategories: subCategories
|
||||
};
|
||||
|
||||
return categoryWithSubCategories;
|
||||
}
|
||||
|
||||
export function localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories(presetCategories: LocalizedPresetCategory[]): TransactionCategoryCreateWithSubCategories[] {
|
||||
const categories: TransactionCategoryCreateWithSubCategories[] = [];
|
||||
|
||||
for (let i = 0; i < presetCategories.length; i++) {
|
||||
const presetCategory = presetCategories[i];
|
||||
const categoryWithSubCategories = localizedPresetCategoryToTransactionCategoryCreateWithSubCategorys(presetCategory);
|
||||
categories.push(categoryWithSubCategories);
|
||||
}
|
||||
|
||||
return categories;
|
||||
}
|
||||
|
||||
export function getSecondaryTransactionMapByName(allCategories: TransactionCategory[]): Record<string, TransactionCategory> {
|
||||
const ret: Record<string, TransactionCategory> = {};
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { ColorValue } from '@/core/color.ts';
|
||||
import { type LocalizedPresetCategory, CategoryType } from '@/core/category.ts';
|
||||
import { CategoryType } from '@/core/category.ts';
|
||||
import { DEFAULT_CATEGORY_ICON_ID } from '@/consts/icon.ts';
|
||||
import { DEFAULT_CATEGORY_COLOR } from '@/consts/color.ts';
|
||||
|
||||
@@ -137,7 +137,15 @@ export interface TransactionCategoryCreateRequest {
|
||||
}
|
||||
|
||||
export interface TransactionCategoryCreateBatchRequest {
|
||||
readonly categories: LocalizedPresetCategory[];
|
||||
readonly categories: TransactionCategoryCreateWithSubCategories[];
|
||||
}
|
||||
|
||||
export interface TransactionCategoryCreateWithSubCategories {
|
||||
readonly name: string;
|
||||
readonly type: CategoryType;
|
||||
readonly icon: string;
|
||||
readonly color: ColorValue;
|
||||
readonly subCategories: TransactionCategoryCreateRequest[];
|
||||
}
|
||||
|
||||
export interface TransactionCategoryModifyRequest {
|
||||
|
||||
@@ -67,6 +67,7 @@ import { useTransactionCategoriesStore } from '@/stores/transactionCategory.ts';
|
||||
import type { PartialRecord } from '@/core/base.ts';
|
||||
import { type LocalizedPresetCategory, CategoryType } from '@/core/category.ts';
|
||||
import { categorizedArrayToPlainArray } from '@/lib/common.ts';
|
||||
import { localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories } from '@/lib/category.ts';
|
||||
|
||||
type SnackBarType = InstanceType<typeof SnackBar>;
|
||||
|
||||
@@ -113,7 +114,8 @@ function getCategoryTypeName(categoryType: CategoryType): string {
|
||||
function save(): void {
|
||||
submitting.value = true;
|
||||
|
||||
const submitCategories = categorizedArrayToPlainArray(allPresetCategories.value);
|
||||
const presetCategoriesArray = categorizedArrayToPlainArray(allPresetCategories.value);
|
||||
const submitCategories = localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories(presetCategoriesArray);
|
||||
|
||||
transactionCategoriesStore.addCategories({
|
||||
categories: submitCategories
|
||||
|
||||
@@ -68,6 +68,7 @@ import type { PartialRecord } from '@/core/base.ts';
|
||||
import type { LanguageOption } from '@/locales/index.ts';
|
||||
import { type LocalizedPresetCategory, CategoryType } from '@/core/category.ts';
|
||||
import { getObjectOwnFieldCount, categorizedArrayToPlainArray } from '@/lib/common.ts';
|
||||
import { localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories } from '@/lib/category.ts';
|
||||
|
||||
const props = defineProps<{
|
||||
f7route: Router.Route;
|
||||
@@ -109,7 +110,8 @@ function save(): void {
|
||||
submitting.value = true;
|
||||
showLoading(() => submitting.value);
|
||||
|
||||
const submitCategories = categorizedArrayToPlainArray(allPresetCategories.value);
|
||||
const presetCategoriesArray = categorizedArrayToPlainArray(allPresetCategories.value);
|
||||
const submitCategories = localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories(presetCategoriesArray);
|
||||
|
||||
transactionCategoriesStore.addCategories({
|
||||
categories: submitCategories
|
||||
|
||||
Reference in New Issue
Block a user