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 ? (
-
)}
>
-
-
+
@@ -626,7 +584,7 @@ export default function AdminScheduledTasksPage() {
label="日志保留天数"
rules={[{ required: true, message: "请输入日志保留天数" }]}
>
-
+
@@ -634,7 +592,7 @@ export default function AdminScheduledTasksPage() {
-
+