From b98fb013ae6e2061583a58ef48c94d44007c9d8f Mon Sep 17 00:00:00 2001 From: IanShaw027 <131567472+IanShaw027@users.noreply.github.com> Date: Mon, 12 Jan 2026 16:50:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E6=B7=BB=E5=8A=A0=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=B7=E6=96=B0=E9=85=8D=E7=BD=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 功能特性: - 支持配置启用/禁用自动刷新 - 可配置刷新间隔(15秒/30秒/60秒) - 实时倒计时显示,用户可见下次刷新时间 - 手动刷新自动重置倒计时 - 页面卸载时自动清理定时器 用户体验: - 默认禁用,用户可根据需求开启 - 与现有 OpsConcurrencyCard 5秒刷新保持一致 - 倒计时带旋转动画,视觉反馈清晰 - 配置修改后立即生效,无需刷新页面 技术实现: - ops.ts: 添加 auto_refresh_enabled 和 auto_refresh_interval_seconds 配置 - OpsSettingsDialog.vue: 添加自动刷新配置界面 - OpsDashboard.vue: 实现主刷新逻辑和双定时器设计 - OpsDashboardHeader.vue: 倒计时显示组件 配置说明: - auto_refresh_enabled: 是否启用(默认 false) - auto_refresh_interval_seconds: 刷新间隔(默认 30 秒,范围 15-300 秒) --- frontend/src/api/admin/ops.ts | 3 + frontend/src/views/admin/ops/OpsDashboard.vue | 78 ++++++++++++++++++- .../ops/components/OpsDashboardHeader.vue | 13 ++++ .../ops/components/OpsSettingsDialog.vue | 42 ++++++++++ 4 files changed, 135 insertions(+), 1 deletion(-) diff --git a/frontend/src/api/admin/ops.ts b/frontend/src/api/admin/ops.ts index 3a5484df..ce0ab58d 100644 --- a/frontend/src/api/admin/ops.ts +++ b/frontend/src/api/admin/ops.ts @@ -734,6 +734,9 @@ export interface OpsAlertRuntimeSettings { export interface OpsAdvancedSettings { data_retention: OpsDataRetentionSettings aggregation: OpsAggregationSettings + ignore_count_tokens_errors: boolean + auto_refresh_enabled: boolean + auto_refresh_interval_seconds: number } export interface OpsDataRetentionSettings { diff --git a/frontend/src/views/admin/ops/OpsDashboard.vue b/frontend/src/views/admin/ops/OpsDashboard.vue index f6712352..b543c3fa 100644 --- a/frontend/src/views/admin/ops/OpsDashboard.vue +++ b/frontend/src/views/admin/ops/OpsDashboard.vue @@ -20,6 +20,8 @@ :loading="loading" :last-updated="lastUpdated" :thresholds="metricThresholds" + :auto-refresh-enabled="autoRefreshEnabled" + :auto-refresh-countdown="autoRefreshCountdown" @update:time-range="onTimeRangeChange" @update:platform="onPlatformChange" @update:group="onGroupChange" @@ -104,7 +106,7 @@ diff --git a/frontend/src/views/admin/ops/components/OpsDashboardHeader.vue b/frontend/src/views/admin/ops/components/OpsDashboardHeader.vue index e2002b34..1ac8627f 100644 --- a/frontend/src/views/admin/ops/components/OpsDashboardHeader.vue +++ b/frontend/src/views/admin/ops/components/OpsDashboardHeader.vue @@ -23,6 +23,8 @@ interface Props { loading: boolean lastUpdated: Date | null thresholds?: OpsMetricThresholds | null // 阈值配置 + autoRefreshEnabled?: boolean + autoRefreshCountdown?: number } interface Emits { @@ -839,6 +841,17 @@ function handleToolbarRefresh() { · {{ t('common.refresh') }}: {{ updatedAtLabel }} + + · + + + + + + 自动刷新: {{ props.autoRefreshCountdown }}s + + + · diff --git a/frontend/src/views/admin/ops/components/OpsSettingsDialog.vue b/frontend/src/views/admin/ops/components/OpsSettingsDialog.vue index 0c9c4f81..1f64f253 100644 --- a/frontend/src/views/admin/ops/components/OpsSettingsDialog.vue +++ b/frontend/src/views/admin/ops/components/OpsSettingsDialog.vue @@ -487,6 +487,48 @@ async function saveAllSettings() { + + + + 错误过滤 + + + + 忽略 count_tokens 错误 + + 启用后,count_tokens 请求的错误将不计入运维监控的统计和告警中(但仍会存储在数据库中) + + + + + + + + + 自动刷新 + + + + 启用自动刷新 + + 自动刷新仪表板数据,启用后会定期拉取最新数据 + + + + + + + 刷新间隔 + + +
+ 启用后,count_tokens 请求的错误将不计入运维监控的统计和告警中(但仍会存储在数据库中) +
+ 自动刷新仪表板数据,启用后会定期拉取最新数据 +