mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-19 01:04:25 +08:00
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 { 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 {
|
export function transactionTypeToCategoryType(transactionType: TransactionType): CategoryType | null {
|
||||||
if (transactionType === TransactionType.Income) {
|
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> {
|
export function getSecondaryTransactionMapByName(allCategories: TransactionCategory[]): Record<string, TransactionCategory> {
|
||||||
const ret: Record<string, TransactionCategory> = {};
|
const ret: Record<string, TransactionCategory> = {};
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { ColorValue } from '@/core/color.ts';
|
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_ICON_ID } from '@/consts/icon.ts';
|
||||||
import { DEFAULT_CATEGORY_COLOR } from '@/consts/color.ts';
|
import { DEFAULT_CATEGORY_COLOR } from '@/consts/color.ts';
|
||||||
|
|
||||||
@@ -137,7 +137,15 @@ export interface TransactionCategoryCreateRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface TransactionCategoryCreateBatchRequest {
|
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 {
|
export interface TransactionCategoryModifyRequest {
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ import { useTransactionCategoriesStore } from '@/stores/transactionCategory.ts';
|
|||||||
import type { PartialRecord } from '@/core/base.ts';
|
import type { PartialRecord } from '@/core/base.ts';
|
||||||
import { type LocalizedPresetCategory, CategoryType } from '@/core/category.ts';
|
import { type LocalizedPresetCategory, CategoryType } from '@/core/category.ts';
|
||||||
import { categorizedArrayToPlainArray } from '@/lib/common.ts';
|
import { categorizedArrayToPlainArray } from '@/lib/common.ts';
|
||||||
|
import { localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories } from '@/lib/category.ts';
|
||||||
|
|
||||||
type SnackBarType = InstanceType<typeof SnackBar>;
|
type SnackBarType = InstanceType<typeof SnackBar>;
|
||||||
|
|
||||||
@@ -113,7 +114,8 @@ function getCategoryTypeName(categoryType: CategoryType): string {
|
|||||||
function save(): void {
|
function save(): void {
|
||||||
submitting.value = true;
|
submitting.value = true;
|
||||||
|
|
||||||
const submitCategories = categorizedArrayToPlainArray(allPresetCategories.value);
|
const presetCategoriesArray = categorizedArrayToPlainArray(allPresetCategories.value);
|
||||||
|
const submitCategories = localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories(presetCategoriesArray);
|
||||||
|
|
||||||
transactionCategoriesStore.addCategories({
|
transactionCategoriesStore.addCategories({
|
||||||
categories: submitCategories
|
categories: submitCategories
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ import type { PartialRecord } from '@/core/base.ts';
|
|||||||
import type { LanguageOption } from '@/locales/index.ts';
|
import type { LanguageOption } from '@/locales/index.ts';
|
||||||
import { type LocalizedPresetCategory, CategoryType } from '@/core/category.ts';
|
import { type LocalizedPresetCategory, CategoryType } from '@/core/category.ts';
|
||||||
import { getObjectOwnFieldCount, categorizedArrayToPlainArray } from '@/lib/common.ts';
|
import { getObjectOwnFieldCount, categorizedArrayToPlainArray } from '@/lib/common.ts';
|
||||||
|
import { localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories } from '@/lib/category.ts';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
f7route: Router.Route;
|
f7route: Router.Route;
|
||||||
@@ -109,7 +110,8 @@ function save(): void {
|
|||||||
submitting.value = true;
|
submitting.value = true;
|
||||||
showLoading(() => submitting.value);
|
showLoading(() => submitting.value);
|
||||||
|
|
||||||
const submitCategories = categorizedArrayToPlainArray(allPresetCategories.value);
|
const presetCategoriesArray = categorizedArrayToPlainArray(allPresetCategories.value);
|
||||||
|
const submitCategories = localizedPresetCategoriesToTransactionCategoryCreateWithSubCategories(presetCategoriesArray);
|
||||||
|
|
||||||
transactionCategoriesStore.addCategories({
|
transactionCategoriesStore.addCategories({
|
||||||
categories: submitCategories
|
categories: submitCategories
|
||||||
|
|||||||
Reference in New Issue
Block a user