display year-over-year and period-over-period growth rates in account balance trends chart in account reconciliation statements on desktop version

This commit is contained in:
MaysWind
2026-04-09 01:04:15 +08:00
parent cd59c4e6a5
commit fcedb3147d
5 changed files with 228 additions and 109 deletions
+6 -11
View File
@@ -64,6 +64,9 @@ import {
getDateTypeByDateRange,
getFiscalYearFromUnixTime
} from '@/lib/datetime.ts';
import {
getDateRangeKeyWithYearOffset
} from '@/lib/statistics.ts';
type AxisChartType = InstanceType<typeof AxisChart>;
@@ -297,19 +300,11 @@ function getSeriesId(item: Record<string, unknown>): string {
}
function getDateRangeKey(dateRange: YearUnixTime | FiscalYearUnixTime | YearQuarterUnixTime | YearMonthUnixTime | YearMonthDayUnixTime, yearOffset?: number): string | undefined {
if (props.dateAggregationType === ChartDateAggregationType.Year.type) {
return (dateRange.year + (yearOffset ?? 0)).toString();
} else if (props.dateAggregationType === ChartDateAggregationType.FiscalYear.type && 'year' in dateRange) {
return (dateRange.year + (yearOffset ?? 0)).toString();
} else if (props.dateAggregationType === ChartDateAggregationType.Quarter.type && 'quarter' in dateRange) {
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.quarter}`;
} else if (props.dateAggregationType === ChartDateAggregationType.Month.type && 'month0base' in dateRange) {
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.month0base + 1}`;
} else if (props.dateAggregationType === ChartDateAggregationType.Day.type && 'day' in dateRange && props.chartMode === 'daily') {
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.month}-${dateRange.day}`;
} else {
if (props.dateAggregationType === ChartDateAggregationType.Day.type && props.chartMode !== 'daily') {
return undefined;
}
return getDateRangeKeyWithYearOffset(dateRange, props.dateAggregationType, yearOffset);
}
function formatDisplayChangeRate(current: number, reference: number): string {