From 61c5f75006bd9f5aa7b76217c1a426466adf4192 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Mon, 3 Feb 2025 22:57:56 +0800 Subject: [PATCH] code refactor --- src/core/account.ts | 8 -------- src/core/statistics.ts | 18 ------------------ src/core/template.ts | 6 ------ .../desktop/statistics/TransactionPage.vue | 3 ++- .../mobile/statistics/TransactionPage.vue | 6 ++---- 5 files changed, 4 insertions(+), 37 deletions(-) diff --git a/src/core/account.ts b/src/core/account.ts index 28342c7b..a43f094e 100644 --- a/src/core/account.ts +++ b/src/core/account.ts @@ -4,7 +4,6 @@ type AccountTypeName = 'SingleAccount' | 'MultiSubAccounts'; export class AccountType implements TypeAndName { private static readonly allInstances: AccountType[] = []; - private static readonly allInstancesByTypeName: Record = {}; public static readonly SingleAccount = new AccountType(1, 'SingleAccount', 'Single Account'); public static readonly MultiSubAccounts = new AccountType(2, 'MultiSubAccounts', 'Multiple Sub-accounts'); @@ -19,16 +18,11 @@ export class AccountType implements TypeAndName { this.name = name; AccountType.allInstances.push(this); - AccountType.allInstancesByTypeName[typeName] = this; } public static values(): AccountType[] { return AccountType.allInstances; } - - public static all(): Record { - return AccountType.allInstancesByTypeName; - } } type AccountCategoryTypeName = 'Cash' | 'CheckingAccount' | 'SavingsAccount' | 'CreditCard' | 'VirtualAccount' | 'DebtAccount' | 'Receivables' | 'CertificateOfDeposit' | 'InvestmentAccount'; @@ -36,7 +30,6 @@ type AccountCategoryTypeName = 'Cash' | 'CheckingAccount' | 'SavingsAccount' | ' export class AccountCategory implements TypeAndName { private static readonly allInstances: AccountCategory[] = []; private static readonly allInstancesByType: Record = {}; - private static readonly allInstancesByTypeName: Record = {}; public static readonly Cash = new AccountCategory(1, 'Cash', 'Cash', '1'); public static readonly CheckingAccount = new AccountCategory(2, 'CheckingAccount', 'Checking Account', '100'); @@ -63,7 +56,6 @@ export class AccountCategory implements TypeAndName { AccountCategory.allInstances.push(this); AccountCategory.allInstancesByType[type] = this; - AccountCategory.allInstancesByTypeName[typeName] = this; } public static values(): AccountCategory[] { diff --git a/src/core/statistics.ts b/src/core/statistics.ts index 43511e0b..779e71da 100644 --- a/src/core/statistics.ts +++ b/src/core/statistics.ts @@ -10,7 +10,6 @@ type CategoricalChartTypeName = 'Pie' | 'Bar'; export class CategoricalChartType implements TypeAndName { private static readonly allInstances: CategoricalChartType[] = []; - private static readonly allInstancesByTypeName: Record = {}; public static readonly Pie = new CategoricalChartType(0, 'Pie', 'Pie Chart'); public static readonly Bar = new CategoricalChartType(1, 'Bar', 'Bar Chart'); @@ -27,23 +26,17 @@ export class CategoricalChartType implements TypeAndName { this.name = name; CategoricalChartType.allInstances.push(this); - CategoricalChartType.allInstancesByTypeName[typeName] = this; } public static values(): CategoricalChartType[] { return CategoricalChartType.allInstances; } - - public static all(): Record { - return CategoricalChartType.allInstancesByTypeName; - } } type TrendChartTypeName = 'Area' | 'Column'; export class TrendChartType implements TypeAndName { private static readonly allInstances: TrendChartType[] = []; - private static readonly allInstancesByTypeName: Record = {}; public static readonly Area = new TrendChartType(0, 'Area', 'Area Chart'); public static readonly Column = new TrendChartType(1, 'Column', 'Column Chart'); @@ -60,16 +53,11 @@ export class TrendChartType implements TypeAndName { this.name = name; TrendChartType.allInstances.push(this); - TrendChartType.allInstancesByTypeName[typeName] = this; } public static values(): TrendChartType[] { return TrendChartType.allInstances; } - - public static all(): Record { - return TrendChartType.allInstancesByTypeName; - } } type ChartDataTypeName = 'ExpenseByAccount' | 'ExpenseByPrimaryCategory' | 'ExpenseBySecondaryCategory' | 'IncomeByAccount' | 'IncomeByPrimaryCategory' | 'IncomeBySecondaryCategory' | 'AccountTotalAssets' | 'AccountTotalLiabilities' | 'TotalExpense' | 'TotalIncome' | 'TotalBalance'; @@ -77,7 +65,6 @@ type ChartDataTypeName = 'ExpenseByAccount' | 'ExpenseByPrimaryCategory' | 'Expe export class ChartDataType implements TypeAndName { private static readonly allInstances: ChartDataType[] = []; private static readonly allInstancesByType: Record = {}; - private static readonly allInstancesByTypeName: Record = {}; public static readonly ExpenseByAccount = new ChartDataType(0, 'ExpenseByAccount', 'Expense By Account', StatisticsAnalysisType.CategoricalAnalysis, StatisticsAnalysisType.TrendAnalysis); public static readonly ExpenseByPrimaryCategory = new ChartDataType(1, 'ExpenseByPrimaryCategory', 'Expense By Primary Category', StatisticsAnalysisType.CategoricalAnalysis, StatisticsAnalysisType.TrendAnalysis); @@ -112,7 +99,6 @@ export class ChartDataType implements TypeAndName { ChartDataType.allInstances.push(this); ChartDataType.allInstancesByType[type] = this; - ChartDataType.allInstancesByTypeName[typeName] = this; } public isAvailableAnalysisType(analysisType: StatisticsAnalysisType): boolean { @@ -135,10 +121,6 @@ export class ChartDataType implements TypeAndName { return ret; } - public static all(): Record { - return ChartDataType.allInstancesByTypeName; - } - public static valueOf(type: number): ChartDataType | undefined { return ChartDataType.allInstancesByType[type]; } diff --git a/src/core/template.ts b/src/core/template.ts index 54b306e8..b6b23e8e 100644 --- a/src/core/template.ts +++ b/src/core/template.ts @@ -40,7 +40,6 @@ type ScheduledTemplateFrequencyTypeName = 'Disabled' | 'Weekly' | 'Monthly'; export class ScheduledTemplateFrequencyType implements TypeAndName { private static readonly allInstances: ScheduledTemplateFrequencyType[] = []; private static readonly allInstancesByType: Record = {}; - private static readonly allInstancesByTypeName: Record = {}; public static readonly Disabled = new ScheduledTemplateFrequencyType(0, 'Disabled'); public static readonly Weekly = new ScheduledTemplateFrequencyType(1, 'Weekly'); @@ -55,17 +54,12 @@ export class ScheduledTemplateFrequencyType implements TypeAndName { ScheduledTemplateFrequencyType.allInstances.push(this); ScheduledTemplateFrequencyType.allInstancesByType[type] = this; - ScheduledTemplateFrequencyType.allInstancesByTypeName[name] = this; } public static values(): ScheduledTemplateFrequencyType[] { return ScheduledTemplateFrequencyType.allInstances; } - public static all(): Record { - return ScheduledTemplateFrequencyType.allInstancesByTypeName; - } - public static valueOf(type: number): ScheduledTemplateFrequencyType | undefined { return ScheduledTemplateFrequencyType.allInstancesByType[type]; } diff --git a/src/views/desktop/statistics/TransactionPage.vue b/src/views/desktop/statistics/TransactionPage.vue index 455876c3..28323004 100644 --- a/src/views/desktop/statistics/TransactionPage.vue +++ b/src/views/desktop/statistics/TransactionPage.vue @@ -38,7 +38,8 @@ + v-for="dataType in ChartDataType.values()" + v-show="dataType.isAvailableAnalysisType(queryAnalysisType)"> {{ tt(dataType.name) }} {{ tt(dataType.name) }} diff --git a/src/views/mobile/statistics/TransactionPage.vue b/src/views/mobile/statistics/TransactionPage.vue index 42ebbfb5..e6eb44ef 100644 --- a/src/views/mobile/statistics/TransactionPage.vue +++ b/src/views/mobile/statistics/TransactionPage.vue @@ -22,8 +22,7 @@