refactor(ops): 从系统设置页面移除运维监控配置项

- 移除Ops Monitoring设置卡片及相关配置项
- 移除ops相关组件导入和展示逻辑
- 相关配置已迁移至运维监控页面统一管理
This commit is contained in:
IanShaw027
2026-01-11 23:03:21 +08:00
parent 73b62bb15c
commit d5c711d081

View File

@@ -685,78 +685,6 @@
</div>
</div>
<!-- Ops Monitoring -->
<div class="card">
<div class="border-b border-gray-100 px-6 py-4 dark:border-dark-700">
<h2 class="text-lg font-semibold text-gray-900 dark:text-white">
{{ t('admin.settings.opsMonitoring.title') }}
</h2>
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">
{{ t('admin.settings.opsMonitoring.description') }}
</p>
</div>
<div class="p-6">
<div class="flex items-center justify-between">
<div>
<label class="font-medium text-gray-900 dark:text-white">{{
t('admin.settings.opsMonitoring.enabled')
}}</label>
<p class="text-sm text-gray-500 dark:text-gray-400">
{{ t('admin.settings.opsMonitoring.enabledHint') }}
</p>
</div>
<Toggle v-model="form.ops_monitoring_enabled" />
</div>
<div v-if="form.ops_monitoring_enabled" class="mt-5 flex items-center justify-between">
<div>
<label class="font-medium text-gray-900 dark:text-white">{{
t('admin.settings.opsMonitoring.realtimeEnabled')
}}</label>
<p class="text-sm text-gray-500 dark:text-gray-400">
{{ t('admin.settings.opsMonitoring.realtimeEnabledHint') }}
</p>
</div>
<Toggle v-model="form.ops_realtime_monitoring_enabled" />
</div>
<div v-if="form.ops_monitoring_enabled" class="mt-5 flex items-center justify-between">
<div>
<label class="font-medium text-gray-900 dark:text-white">{{
t('admin.settings.opsMonitoring.queryMode')
}}</label>
<p class="text-sm text-gray-500 dark:text-gray-400">
{{ t('admin.settings.opsMonitoring.queryModeHint') }}
</p>
</div>
<Select
v-model="form.ops_query_mode_default"
:options="opsQueryModeOptions"
class="w-[220px]"
/>
</div>
<div v-if="form.ops_monitoring_enabled" class="mt-5 flex items-center justify-between">
<div>
<label class="font-medium text-gray-900 dark:text-white">{{
t('admin.settings.opsMonitoring.metricsInterval')
}}</label>
<p class="text-sm text-gray-500 dark:text-gray-400">
{{ t('admin.settings.opsMonitoring.metricsIntervalHint') }}
</p>
</div>
<input
v-model.number="form.ops_metrics_interval_seconds"
type="number"
min="60"
max="3600"
step="10"
class="w-[220px] rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm focus:border-primary-500 focus:outline-none focus:ring-1 focus:ring-primary-500 dark:border-dark-600 dark:bg-dark-800 dark:text-white"
/>
</div>
</div>
</div>
<!-- Save Button -->
<div class="flex justify-end">
<button type="submit" :disabled="saving" class="btn btn-primary">
@@ -779,13 +707,6 @@
</button>
</div>
</form>
<!-- Ops settings and management (only show when enabled) -->
<div v-if="showOpsSettings" class="space-y-6">
<OpsRuntimeSettingsCard />
<OpsEmailNotificationCard />
<OpsAlertRulesCard />
</div>
</div>
</AppLayout>
</template>
@@ -800,9 +721,6 @@ import Icon from '@/components/icons/Icon.vue'
import Toggle from '@/components/common/Toggle.vue'
import Select from '@/components/common/Select.vue'
import { useAdminSettingsStore, useAppStore } from '@/stores'
import OpsAlertRulesCard from '@/views/admin/ops/components/OpsAlertRulesCard.vue'
import OpsEmailNotificationCard from '@/views/admin/ops/components/OpsEmailNotificationCard.vue'
import OpsRuntimeSettingsCard from '@/views/admin/ops/components/OpsRuntimeSettingsCard.vue'
const { t } = useI18n()
const appStore = useAppStore()
@@ -860,22 +778,9 @@ const form = reactive<SettingsForm>({
fallback_model_antigravity: 'gemini-2.5-pro',
// Identity patch (Claude -> Gemini)
enable_identity_patch: true,
identity_patch_prompt: '',
// Ops Monitoring (vNext)
ops_monitoring_enabled: true,
ops_realtime_monitoring_enabled: true,
ops_query_mode_default: 'auto',
ops_metrics_interval_seconds: 60
identity_patch_prompt: ''
})
const opsQueryModeOptions = computed(() => [
{ value: 'auto', label: t('admin.settings.opsMonitoring.queryModeAuto') },
{ value: 'raw', label: t('admin.settings.opsMonitoring.queryModeRaw') },
{ value: 'preagg', label: t('admin.settings.opsMonitoring.queryModePreagg') }
])
const showOpsSettings = computed(() => !!form.ops_monitoring_enabled)
function handleLogoUpload(event: Event) {
const input = event.target as HTMLInputElement
const file = input.files?.[0]
@@ -961,19 +866,12 @@ async function saveSettings() {
fallback_model_gemini: form.fallback_model_gemini,
fallback_model_antigravity: form.fallback_model_antigravity,
enable_identity_patch: form.enable_identity_patch,
identity_patch_prompt: form.identity_patch_prompt,
ops_monitoring_enabled: form.ops_monitoring_enabled,
ops_realtime_monitoring_enabled: form.ops_realtime_monitoring_enabled,
ops_query_mode_default: form.ops_query_mode_default,
ops_metrics_interval_seconds: form.ops_metrics_interval_seconds
identity_patch_prompt: form.identity_patch_prompt
}
const updated = await adminAPI.settings.updateSettings(payload)
Object.assign(form, updated)
form.smtp_password = ''
form.turnstile_secret_key = ''
adminSettingsStore.setOpsMonitoringEnabledLocal(!!updated.ops_monitoring_enabled)
adminSettingsStore.setOpsRealtimeMonitoringEnabledLocal(!!updated.ops_realtime_monitoring_enabled)
adminSettingsStore.setOpsQueryModeDefaultLocal(updated.ops_query_mode_default || 'auto')
// Refresh cached public settings so sidebar/header update immediately
await appStore.fetchPublicSettings(true)
appStore.showSuccess(t('admin.settings.settingsSaved'))