From 9580d57b6b5f175f8d6525387ae9c5fac739b910 Mon Sep 17 00:00:00 2001 From: chengkai3 Date: Sun, 28 Jun 2026 17:28:02 +0800 Subject: [PATCH] =?UTF-8?q?[fix]:[FL-217][=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E4=BC=98=E5=8C=96?= =?UTF-8?q?]=E5=8E=BB=E6=8E=89=E6=96=B0=E5=BB=BA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=E7=BC=96=E8=BE=91=E5=8F=AA=E5=85=81=E8=AE=B8=E6=94=B9?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=92=8C=E9=A2=91=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: multica-agent --- web/src/app/admin/scheduled-tasks/page.tsx | 86 ++++++---------------- 1 file changed, 22 insertions(+), 64 deletions(-) diff --git a/web/src/app/admin/scheduled-tasks/page.tsx b/web/src/app/admin/scheduled-tasks/page.tsx index 05d6816..b79b667 100644 --- a/web/src/app/admin/scheduled-tasks/page.tsx +++ b/web/src/app/admin/scheduled-tasks/page.tsx @@ -41,15 +41,6 @@ type FormState = { enabled: boolean; }; -const EMPTY_FORM: FormState = { - task_key: "", - name: "", - description: "", - cron_expression: "0 3 * * *", - timezone: "Asia/Shanghai", - retain_days: 30, - enabled: true, -}; const STATUS_FILTER_OPTIONS = [ { label: "全部", value: "all" }, @@ -167,7 +158,15 @@ export default function AdminScheduledTasksPage() { const resetForm = useCallback(() => { setEditingId(null); - formApi.setFieldsValue(EMPTY_FORM); + formApi.setFieldsValue({ + task_key: "", + name: "", + description: "", + cron_expression: "0 3 * * *", + timezone: "Asia/Shanghai", + retain_days: 30, + enabled: true, + }); }, [formApi]); const closeEditor = useCallback(() => { @@ -175,13 +174,6 @@ export default function AdminScheduledTasksPage() { resetForm(); }, [resetForm]); - const startCreate = useCallback(() => { - setError(""); - setSuccess(""); - resetForm(); - setEditorOpen(true); - }, [resetForm]); - const startEdit = useCallback((item: ScheduledTaskSummary) => { setError(""); setSuccess(""); @@ -205,40 +197,13 @@ export default function AdminScheduledTasksPage() { } const values = await formApi.validateFields(); - if (!values.name.trim() || !values.task_key.trim()) { - throw new Error("任务键和任务名称不能为空"); - } - - if (editingId === null) { - const response = await fetchWithAuth("/api/v1/admin/scheduled-tasks", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - task_key: values.task_key.trim(), - name: values.name.trim(), - task_type: "syslog_cleanup", - description: values.description, - cron_expression: values.cron_expression.trim(), - timezone: values.timezone, - retain_days: values.retain_days, - enabled: values.enabled, - }), - }); - if (!response.ok) { - throw new Error(await readApiError(response)); - } - return "created" as const; - } + // 只允许更新 cron_expression 和 enabled 字段 const response = await fetchWithAuth(`/api/v1/admin/scheduled-tasks/${editingId}`, { method: "PATCH", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ - name: values.name.trim(), - description: values.description, cron_expression: values.cron_expression.trim(), - timezone: values.timezone, - retain_days: values.retain_days, enabled: values.enabled, }), }); @@ -247,9 +212,9 @@ export default function AdminScheduledTasksPage() { } return "updated" as const; }, - onSuccess: async (mode) => { + onSuccess: async () => { setError(""); - setSuccess(mode === "created" ? "定时任务已创建" : "定时任务已更新"); + setSuccess("定时任务已更新"); closeEditor(); await refreshList(); }, @@ -511,11 +476,6 @@ export default function AdminScheduledTasksPage() { extra={( {listQuery.isFetching && } - {canManage ? ( - - ) : null} )} > @@ -577,7 +537,7 @@ export default function AdminScheduledTasksPage() { {canManage ? ( - )} > - form={formApi} layout="vertical" initialValues={EMPTY_FORM}> + form={formApi} layout="vertical">
- + - - + +
@@ -616,7 +574,7 @@ export default function AdminScheduledTasksPage() { - @@ -626,7 +584,7 @@ export default function AdminScheduledTasksPage() { label="日志保留天数" rules={[{ required: true, message: "请输入日志保留天数" }]} > - + @@ -634,7 +592,7 @@ export default function AdminScheduledTasksPage() { - +