code refactor

This commit is contained in:
MaysWind
2025-04-03 23:50:14 +08:00
parent b059055a93
commit 2c9bb12da9
4 changed files with 22 additions and 24 deletions
-20
View File
@@ -338,23 +338,3 @@ export function isAccountOrSubAccountsHasButNotAllChecked(account: Account, filt
return checkedCount > 0 && checkedCount < account.subAccounts.length; return checkedCount > 0 && checkedCount < account.subAccounts.length;
} }
export function setAccountSuitableIcon(account: Account, oldCategory: number, newCategory: number): void {
const allCategories = AccountCategory.values();
for (let i = 0; i < allCategories.length; i++) {
if (allCategories[i].type === oldCategory) {
if (account.icon !== allCategories[i].defaultAccountIconId) {
return;
} else {
break;
}
}
}
for (let i = 0; i < allCategories.length; i++) {
if (allCategories[i].type === newCategory) {
account.icon = allCategories[i].defaultAccountIconId;
}
}
}
+20
View File
@@ -133,6 +133,26 @@ export class Account implements AccountInfoResponse {
this.visible = other.visible; this.visible = other.visible;
} }
public setSuitableIcon(oldCategory: number, newCategory: number): void {
const allCategories = AccountCategory.values();
for (let i = 0; i < allCategories.length; i++) {
if (allCategories[i].type === oldCategory) {
if (this.icon !== allCategories[i].defaultAccountIconId) {
return;
} else {
break;
}
}
}
for (let i = 0; i < allCategories.length; i++) {
if (allCategories[i].type === newCategory) {
this.icon = allCategories[i].defaultAccountIconId;
}
}
}
public toCreateRequest(clientSessionId: string, subAccounts?: Account[], parentAccount?: Account): AccountCreateRequest { public toCreateRequest(clientSessionId: string, subAccounts?: Account[], parentAccount?: Account): AccountCreateRequest {
let subAccountCreateRequests: AccountCreateRequest[] | undefined = undefined; let subAccountCreateRequests: AccountCreateRequest[] | undefined = undefined;
@@ -10,7 +10,6 @@ import type { LocalizedAccountCategory } from '@/core/account.ts';
import { Account } from '@/models/account.ts'; import { Account } from '@/models/account.ts';
import { getCurrentUnixTime } from '@/lib/datetime.ts'; import { getCurrentUnixTime } from '@/lib/datetime.ts';
import { setAccountSuitableIcon } from '@/lib/account.ts';
export interface DayAndDisplayName { export interface DayAndDisplayName {
readonly day: number; readonly day: number;
@@ -153,7 +152,7 @@ export function useAccountEditPageBaseBase() {
} }
watch(() => account.value.category, (newValue, oldValue) => { watch(() => account.value.category, (newValue, oldValue) => {
setAccountSuitableIcon(account.value, oldValue, newValue); account.value.setSuitableIcon(oldValue, newValue);
}); });
return { return {
@@ -204,7 +204,6 @@ import { Account } from '@/models/account.ts';
import { isNumber } from '@/lib/common.ts'; import { isNumber } from '@/lib/common.ts';
import { getCurrentUnixTime } from '@/lib/datetime.ts'; import { getCurrentUnixTime } from '@/lib/datetime.ts';
import { generateRandomUUID } from '@/lib/misc.ts'; import { generateRandomUUID } from '@/lib/misc.ts';
import { setAccountSuitableIcon } from '@/lib/account.ts';
import { import {
mdiDotsVertical, mdiDotsVertical,
@@ -314,7 +313,7 @@ function open(options?: { id?: string, currentAccount?: Account, category?: numb
} else { } else {
if (options && isNumber(options.category)) { if (options && isNumber(options.category)) {
account.value.category = options.category; account.value.category = options.category;
setAccountSuitableIcon(account.value, 1, options.category); account.value.setSuitableIcon(1, options.category);
} }
editAccountId.value = null; editAccountId.value = null;