diff --git a/src/pages/crontab/index.tsx b/src/pages/crontab/index.tsx
index 54b9c296..71af9445 100644
--- a/src/pages/crontab/index.tsx
+++ b/src/pages/crontab/index.tsx
@@ -36,6 +36,7 @@ import {
   PlusOutlined,
   UnorderedListOutlined,
   CheckOutlined,
+  CopyOutlined,
 } from '@ant-design/icons';
 import config from '@/utils/config';
 import { PageContainer } from '@ant-design/pro-layout';
@@ -57,7 +58,7 @@ import { useVT } from 'virtualizedtableforantd4';
 import { ICrontab, OperationName, OperationPath, CrontabStatus } from './type';
 import Name from '@/components/name';
 import dayjs from 'dayjs';
-import { noop } from 'lodash';
+import { noop, omit } from 'lodash';
 
 const { Text, Paragraph, Link } = Typography;
 const { Search } = Input;
@@ -620,6 +621,7 @@ const Crontab = () => {
         icon:
           record.isDisabled === 1 ?  : ,
       },
+      { label: intl.get('复制'), key: 'copy', icon:  },
       { label: intl.get('删除'), key: 'delete', icon:  },
       {
         label: record.isPinned === 1 ? intl.get('取消置顶') : intl.get('置顶'),
@@ -655,6 +657,9 @@ const Crontab = () => {
       case 'edit':
         editCron(record, index);
         break;
+      case 'copy':
+        editCron(omit(record, 'id'), index);
+        break;
       case 'enableOrDisable':
         enabledOrDisabledCron(record, index);
         break;
diff --git a/src/pages/crontab/modal.tsx b/src/pages/crontab/modal.tsx
index 3bf17016..04c97d44 100644
--- a/src/pages/crontab/modal.tsx
+++ b/src/pages/crontab/modal.tsx
@@ -21,9 +21,9 @@ const CronModal = ({
 
   const handleOk = async (values: any) => {
     setLoading(true);
-    const method = cron ? 'put' : 'post';
+    const method = cron?.id ? 'put' : 'post';
     const payload = { ...values };
-    if (cron) {
+    if (cron?.id) {
       payload.id = cron.id;
     }
     try {
@@ -34,7 +34,7 @@ const CronModal = ({
 
       if (code === 200) {
         message.success(
-          cron ? intl.get('更新任务成功') : intl.get('创建任务成功'),
+          cron?.id ? intl.get('更新任务成功') : intl.get('创建任务成功'),
         );
         handleCancel(data);
       }
@@ -50,7 +50,7 @@ const CronModal = ({
 
   return (