From eb384e8eef1a72d42b5d2083cf915d539d6c22e6 Mon Sep 17 00:00:00 2001 From: yexb <553699424@qq.com> Date: Wed, 22 Apr 2026 22:17:18 +0800 Subject: [PATCH] feat: scaffold disk monitor page state --- .../components/DiskMonitorPolicyForm.vue | 149 ++++++++++++++++ .../components/DiskMonitorSummary.vue | 85 +++++++++ .../views/systemMonitor/diskMonitor/index.vue | 161 +++++++++++++++++- .../systemMonitor/diskMonitor/utils/form.ts | 54 ++++++ 4 files changed, 448 insertions(+), 1 deletion(-) create mode 100644 frontend/src/views/systemMonitor/diskMonitor/components/DiskMonitorPolicyForm.vue create mode 100644 frontend/src/views/systemMonitor/diskMonitor/components/DiskMonitorSummary.vue create mode 100644 frontend/src/views/systemMonitor/diskMonitor/utils/form.ts diff --git a/frontend/src/views/systemMonitor/diskMonitor/components/DiskMonitorPolicyForm.vue b/frontend/src/views/systemMonitor/diskMonitor/components/DiskMonitorPolicyForm.vue new file mode 100644 index 0000000..b787d8d --- /dev/null +++ b/frontend/src/views/systemMonitor/diskMonitor/components/DiskMonitorPolicyForm.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/frontend/src/views/systemMonitor/diskMonitor/components/DiskMonitorSummary.vue b/frontend/src/views/systemMonitor/diskMonitor/components/DiskMonitorSummary.vue new file mode 100644 index 0000000..9c956f3 --- /dev/null +++ b/frontend/src/views/systemMonitor/diskMonitor/components/DiskMonitorSummary.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/frontend/src/views/systemMonitor/diskMonitor/index.vue b/frontend/src/views/systemMonitor/diskMonitor/index.vue index b8bd0af..714d312 100644 --- a/frontend/src/views/systemMonitor/diskMonitor/index.vue +++ b/frontend/src/views/systemMonitor/diskMonitor/index.vue @@ -1,9 +1,168 @@ + + diff --git a/frontend/src/views/systemMonitor/diskMonitor/utils/form.ts b/frontend/src/views/systemMonitor/diskMonitor/utils/form.ts new file mode 100644 index 0000000..44fb03f --- /dev/null +++ b/frontend/src/views/systemMonitor/diskMonitor/utils/form.ts @@ -0,0 +1,54 @@ +import type { DiskMonitor } from '@/api/system/diskMonitor/interface' + +export const createDefaultPolicy = (): DiskMonitor.PolicyItem => ({ + policyName: '默认磁盘监控策略', + monitorEnabled: true, + runOnAppStart: true, + dailyRunTime: '08:30:00', + warningNotifyMode: 'STATUS_CHANGE', + alarmNotifyMode: 'EVERY_TIME', + remark: '' +}) + +export const createEmptyPathTarget = (): DiskMonitor.NotifyPathTarget => ({ + path: '', + name: '', + enabled: true +}) + +export const createEmptyHttpTarget = (): DiskMonitor.NotifyHttpTarget => ({ + url: '', + name: '', + method: 'POST', + timeoutMs: 5000, + enabled: true +}) + +export const createEmptyTarget = (): DiskMonitor.TargetItem => ({ + driveLetter: '', + monitorEnabled: true, + warningUsagePercent: 80, + alarmUsagePercent: 90, + notifyPathEnabled: false, + notifyPathList: [], + notifyHttpEnabled: false, + notifyHttpList: [], + lastStatus: 'UNKNOWN', + lastScanTime: null, + lastUsedPercent: null, + remark: '' +}) + +export const validatePolicy = (policy: DiskMonitor.PolicyItem) => { + if (!policy.dailyRunTime) return '每日统一执行时间不能为空' + return '' +} + +export const validateTarget = (target: DiskMonitor.TargetItem, exists: string[]) => { + if (!target.driveLetter) return '盘符不能为空' + if (exists.includes(target.driveLetter)) return '盘符不能重复' + if (target.warningUsagePercent < 1 || target.warningUsagePercent > 100) return '预警使用率必须在 1-100 之间' + if (target.alarmUsagePercent < 1 || target.alarmUsagePercent > 100) return '告警使用率必须在 1-100 之间' + if (target.alarmUsagePercent < target.warningUsagePercent) return '告警使用率不能小于预警使用率' + return '' +}