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;
};