feat(web): 总览时间范围随日历推进,聚合与引擎状态周期刷新

This commit is contained in:
2026-10-07 21:17:22 +08:00
parent 3fb75ec699
commit 2446d3bf2c
5 changed files with 83 additions and 10 deletions
+16 -3
View File
@@ -11,12 +11,17 @@ import TimeRangePicker from "@/components/common/time-range-picker.vue";
import QuotaText from "@/components/common/quota-text.vue";
import SourceBar from "@/components/common/source-bar.vue";
import HealthBand from "@/components/admin/health-band.vue";
import {
useLiveTimeRange,
type RangeKind,
type RangeValue,
} from "@/composables/use-live-time-range.ts";
import { useAdminOverview, useEngine, usePayments } from "@/queries/admin.ts";
import { recentDaysRange, formatMinute } from "@/utils/time.ts";
import { formatMinute } from "@/utils/time.ts";
import { formatInt } from "@/utils/format.ts";
const router = useRouter();
const range = ref(recentDaysRange(30));
const { range, setRange } = useLiveTimeRange("recent-30");
const overviewQuery = useAdminOverview(() => range.value);
const engineQuery = useEngine();
@@ -60,6 +65,10 @@ function memberPercent(quota: number): number {
return total > 0 ? Math.round((quota / total) * 1000) / 10 : 0;
}
function onRangeChange(value: RangeValue, kind: RangeKind) {
setRange(value, kind);
}
function onMemberClick(memberId: number | null) {
void router.push({
path: "/admin/keys",
@@ -155,7 +164,11 @@ const keyColumns = [
>
<template #actions>
<span class="overview-range-label">时间范围</span>
<TimeRangePicker v-model="range" :extra-presets="extraPresets" />
<TimeRangePicker
:model-value="range"
:extra-presets="extraPresets"
@change="onRangeChange"
/>
</template>
</PageHeader>