feat: 为统计图表添加默认时间范围本地存储功能

- 在 StatsView 和 AnalyticsVisitView 中新增本地存储功能
- 默认时间范围从 30 天改为 7 天
- 加载页面时从 localStorage 读取保存的选项
- 切换时间范围时自动保存到 localStorage
This commit is contained in:
anghunk
2026-01-27 15:42:16 +08:00
parent 221a50b262
commit e5ffc48139
2 changed files with 54 additions and 2 deletions

View File

@@ -125,7 +125,8 @@ const statsSummary = ref({
});
const domainStats = ref<DomainStat[]>([]);
const last7Days = ref<{ date: string; total: number }[]>([]);
const chartRange = ref<"7" | "30">("30");
const chartRange = ref<"7" | "30">("7");
const chartRangeStorageKey = "cwd-stats-chart-range";
const injectedDomainFilter = inject<Ref<string> | null>("domainFilter", null);
const domainFilter = injectedDomainFilter ?? ref("");
@@ -137,6 +138,29 @@ const toastVisible = ref(false);
const chartEl = ref<HTMLDivElement | null>(null);
let chartInstance: echarts.ECharts | null = null;
function loadChartRangeFromStorage() {
if (typeof window === "undefined") {
return;
}
try {
const value = window.localStorage.getItem(chartRangeStorageKey);
if (value === "7" || value === "30") {
chartRange.value = value;
}
} catch {
}
}
function saveChartRangeToStorage(value: "7" | "30") {
if (typeof window === "undefined") {
return;
}
try {
window.localStorage.setItem(chartRangeStorageKey, value);
} catch {
}
}
function showToast(msg: string, type: "success" | "error" = "success") {
toastMessage.value = msg;
toastType.value = type;
@@ -235,6 +259,7 @@ function changeChartRange(range: "7" | "30") {
return;
}
chartRange.value = range;
saveChartRangeToStorage(range);
renderChart();
}
@@ -245,6 +270,7 @@ function handleResize() {
}
onMounted(() => {
loadChartRangeFromStorage();
loadStats();
window.addEventListener("resize", handleResize);
});