From a09a8ead48f130dbe31ee56e1fac3cc5cac585c0 Mon Sep 17 00:00:00 2001 From: ssongliu Date: Mon, 11 Aug 2025 17:41:25 +0800 Subject: [PATCH] fix: Add custom execution cycle hint for cronjob --- frontend/src/lang/modules/en.ts | 2 ++ frontend/src/lang/modules/ja.ts | 2 ++ frontend/src/lang/modules/ko.ts | 2 ++ frontend/src/lang/modules/ms.ts | 2 ++ frontend/src/lang/modules/pt-br.ts | 2 ++ frontend/src/lang/modules/ru.ts | 2 ++ frontend/src/lang/modules/tr.ts | 2 ++ frontend/src/lang/modules/zh-Hant.ts | 1 + frontend/src/lang/modules/zh.ts | 1 + .../src/views/cronjob/cronjob/operate/index.vue | 14 ++++++++++++-- 10 files changed, 28 insertions(+), 2 deletions(-) diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index da61ee22c773..60c720a9240c 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -1030,6 +1030,8 @@ const message = { curl: 'Access URL', taskName: 'Name', cronSpec: 'Trigger cycle', + cronSpecDoc: + 'Custom execution cycles only support the [minute hour day month week] format, e.g., 0 0 * * *. For details, please refer to the official documentation.', cronSpecHelper: 'Enter the correct execution period', cleanHelper: 'This operation records all job execution records, backup files, and log files. Do you want to continue?', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index a834102a2281..ab1fc3ecf78a 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -998,6 +998,8 @@ const message = { curl: 'アクセスURL', taskName: '名前', cronSpec: 'トリガーサイクル', + cronSpecDoc: + 'カスタム実行周期は【分 時 日 月 曜日】形式のみサポートしています(例: 0 0 * * *)。詳細は公式ドキュメントをご参照ください。', cronSpecHelper: '正しい実行期間を入力します', cleanHelper: 'この操作は、すべてのジョブ実行レコード、バックアップファイル、ログファイルを記録します。続けたいですか?', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 8eaf1de093af..fd89394f8c54 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -988,6 +988,8 @@ const message = { curl: '접속 URL', taskName: '작업 이름', cronSpec: '트리거 주기', + cronSpecDoc: + '사용자 정의 실행 주기는 [분 시 일 월 요일] 형식만 지원합니다 (예: 0 0 * * *). 자세한 내용은 공식 문서를 참조하세요.', cronSpecHelper: '올바른 실행 주기를 입력해 주세요', cleanHelper: '이 작업은 모든 작업 실행 레코드, 백업 파일, 로그 파일을 기록합니다. 계속하시겠습니까?', directory: '백업 디렉토리', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index e0123cf99a27..80786d64e710 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -1020,6 +1020,8 @@ const message = { curl: 'Akses URL', taskName: 'Nama', cronSpec: 'Kitaran pencetus', + cronSpecDoc: + 'Kitaran pelaksanaan tersuai hanya menyokong format [minit jam hari bulan minggu], contohnya 0 0 * * *. Untuk maklumat lanjut, sila rujuk dokumen rasmi.', cronSpecHelper: 'Masukkan tempoh pelaksanaan yang betul', cleanHelper: 'Operasi ini merekodkan semua rekod pelaksanaan tugas, fail sandaran, dan fail log. Adakah anda mahu meneruskan?', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 7db56436f617..41075ee0fedb 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -1016,6 +1016,8 @@ const message = { curl: 'URL de acesso', taskName: 'Nome', cronSpec: 'Ciclo de execução', + cronSpeDoc: + 'Ciclos de execução personalizados suportam apenas o formato [minuto hora dia mês semana], por exemplo, 0 0 * * *. Consulte a documentação oficial para obter detalhes.', cronSpecHelper: 'Digite o período correto de execução', cleanHelper: 'Esta operação registra todos os registros de execução de tarefas, arquivos de backup e logs. Você deseja continuar?', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index da412e3de62b..66c621bbf656 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -1013,6 +1013,8 @@ const message = { curl: 'Доступ к URL', taskName: 'Имя', cronSpec: 'Цикл запуска', + cronSpecDoc: + 'Пользовательское расписание поддерживает только формат [минута час день месяц неделя], например, 0 0 * * *. Подробности см. в официальной документации.', cronSpecHelper: 'Введите правильный период выполнения', cleanHelper: 'Эта операция записывает все записи выполнения задач, файлы резервных копий и файлы логов. Хотите продолжить?', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index acd23a49e299..1d8c67587750 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -1043,6 +1043,8 @@ const message = { curl: 'URLe erişim', taskName: 'Ad', cronSpec: 'Tetikleme döngüsü', + cronSpecDoc: + 'Özel çalışma döngüleri yalnızca [dakika saat gün ay hafta] formatını destekler, örneğin, 0 0 * * *. Ayrıntılar için resmi belgelere bakın.', cronSpecHelper: 'Doğru yürütme dönemini girin', cleanHelper: 'Bu işlem tüm görev yürütme kayıtlarını, yedekleme dosyalarını ve log dosyalarını kaydeder. Devam etmek istiyor musunuz?', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 11e57d8de772..779b653e16f2 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -980,6 +980,7 @@ const message = { curl: '訪問 URL', taskName: '任務名稱', cronSpec: '執行周期', + cronSpecDoc: '自定義執行週期僅支援【分 時 日 月 週】格式,例如 0 0 * * *,具體可參考官方文件。', cronSpecHelper: '請輸入正確的執行周期', cleanHelper: '該操作將所有任務執行記錄、備份文件和日誌文件,是否繼續?', backupContent: '備份內容', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index e06f0e71b635..4ee513bb318b 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -978,6 +978,7 @@ const message = { curl: '访问 URL', taskName: '任务名称', cronSpec: '执行周期', + cronSpecDoc: '自定义执行周期仅支持【分时日月周】格式,如 0 0 * * * ,具体可参考官方文档', cronSpecHelper: '请输入正确的执行周期', cleanHelper: '该操作将所有任务执行记录、备份文件和日志文件,是否继续?', backupContent: '备份内容', diff --git a/frontend/src/views/cronjob/cronjob/operate/index.vue b/frontend/src/views/cronjob/cronjob/operate/index.vue index 0d6a655b5bbd..195ca0385ba1 100644 --- a/frontend/src/views/cronjob/cronjob/operate/index.vue +++ b/frontend/src/views/cronjob/cronjob/operate/index.vue @@ -218,6 +218,12 @@ + + {{ $t('cronjob.cronSpecDoc') }} + + {{ $t('firewall.quickJump') }} + + {{ $t('commons.button.add') }} @@ -793,7 +799,7 @@ const form = reactive({ groupID: null, specCustom: false, spec: '', - specs: [], + specs: ['0 0 * * *'], specObjs: [{ specType: 'perMonth', week: 1, day: 3, hour: 1, minute: 30, second: 30 }], executor: '', @@ -990,7 +996,7 @@ const verifySpec = (rule: any, value: any, callback: any) => { return; } for (let i = 0; i < form.specs.length; i++) { - if (form.specs[i]) { + if (form.specs[i] && form.specs[i].split(' ').length === 5) { continue; } callback(new Error(i18n.global.t('cronjob.cronSpecRule', [i + 1]))); @@ -1137,6 +1143,10 @@ const rules = reactive({ type FormInstance = InstanceType; const formRef = ref(); +const toDoc = () => { + window.open(globalStore.docsUrl + '/user_manual/cronjobs/', '_blank', 'noopener,noreferrer'); +}; + const loadDir = async (path: string) => { form.sourceDir = path; };