migrate statistics store to composition API and typescript

This commit is contained in:
MaysWind
2025-01-24 23:16:57 +08:00
parent 986fab9cbf
commit 8207373a05
19 changed files with 1196 additions and 1028 deletions
+3 -3
View File
@@ -53,7 +53,7 @@ import type {
TransactionStatisticRequest,
TransactionStatisticResponse,
TransactionStatisticTrendsRequest,
TransactionStatisticTrendsItem,
TransactionStatisticTrendsResponseItem,
TransactionAmountsRequestParams,
TransactionAmountsResponse
} from '@/models/transaction.ts';
@@ -380,7 +380,7 @@ export default {
return axios.get<ApiResponse<TransactionStatisticResponse>>(`v1/transactions/statistics.json?use_transaction_timezone=${req.useTransactionTimezone}` + (queryParams.length ? '&' + queryParams.join('&') : ''));
},
getTransactionStatisticsTrends: (req: TransactionStatisticTrendsRequest): ApiResponsePromise<TransactionStatisticTrendsItem[]> => {
getTransactionStatisticsTrends: (req: TransactionStatisticTrendsRequest): ApiResponsePromise<TransactionStatisticTrendsResponseItem[]> => {
const queryParams = [];
if (req.startYearMonth) {
@@ -399,7 +399,7 @@ export default {
queryParams.push(`tag_filter_type=${req.tagFilterType}`);
}
return axios.get<ApiResponse<TransactionStatisticTrendsItem[]>>(`v1/transactions/statistics/trends.json?use_transaction_timezone=${req.useTransactionTimezone}` + (queryParams.length ? '&' + queryParams.join('&') : ''));
return axios.get<ApiResponse<TransactionStatisticTrendsResponseItem[]>>(`v1/transactions/statistics/trends.json?use_transaction_timezone=${req.useTransactionTimezone}` + (queryParams.length ? '&' + queryParams.join('&') : ''));
},
getTransactionAmounts: (params: TransactionAmountsRequestParams): ApiResponsePromise<TransactionAmountsResponse> => {
const req = TransactionAmountsRequest.of(params);
+2 -1
View File
@@ -1,5 +1,6 @@
import type { YearMonth, YearUnixTime, YearQuarterUnixTime, YearMonthUnixTime } from '@/core/datetime.ts';
import { ChartSortingType, ChartDateAggregationType } from '@/core/statistics.ts';
import type { TransactionStatisticDataItemBase } from '@/models/transaction.ts';
import {
getAllMonthsStartAndEndUnixTimes,
@@ -7,7 +8,7 @@ import {
getAllYearsStartAndEndUnixTimes
} from '@/lib/datetime.ts';
export function sortStatisticsItems(items: { name: string, totalAmount: number, displayOrders: number[] }[], sortingType: number): void {
export function sortStatisticsItems(items: TransactionStatisticDataItemBase[], sortingType: number): void {
if (sortingType === ChartSortingType.DisplayOrder.type) {
items.sort(function (data1, data2) {
for (let i = 0; i < Math.min(data1.displayOrders.length, data2.displayOrders.length); i++) {