@@ -120,7 +121,7 @@
-
+
-
+
{
callback(new Error(i18n.global.t('cronjob.cronSpecRule')));
}
break;
+ case 'perNSecond':
+ if (!Number.isInteger(dialogData.value.rowData!.second)) {
+ callback(new Error(i18n.global.t('cronjob.cronSpecRule')));
+ }
+ break;
}
callback();
};
@@ -296,6 +301,7 @@ const specOptions = [
{ label: i18n.global.t('cronjob.perNDay'), value: 'perNDay' },
{ label: i18n.global.t('cronjob.perNHour'), value: 'perNHour' },
{ label: i18n.global.t('cronjob.perNMinute'), value: 'perNMinute' },
+ { label: i18n.global.t('cronjob.perNSecond'), value: 'perNSecond' },
];
const weekOptions = [
{ label: i18n.global.t('cronjob.monday'), value: 1 },
@@ -335,6 +341,17 @@ const loadDir = async (path: string) => {
dialogData.value.rowData!.sourceDir = path;
};
+const hasDay = () => {
+ return dialogData.value.rowData!.specType === 'perMonth' || dialogData.value.rowData!.specType === 'perNDay';
+};
+const hasHour = () => {
+ return (
+ dialogData.value.rowData!.specType !== 'perHour' &&
+ dialogData.value.rowData!.specType !== 'perNMinute' &&
+ dialogData.value.rowData!.specType !== 'perNSecond'
+ );
+};
+
const changeType = () => {
switch (dialogData.value.rowData!.type) {
case 'shell':
@@ -430,6 +447,8 @@ function checkScript() {
return row.hour > 0 && row.hour < 8784 && row.minute >= 0 && row.minute < 60;
case 'perNMinute':
return row.minute > 0 && row.minute < 527040;
+ case 'perNSecond':
+ return row.second > 0 && row.second < 31622400;
}
}
@@ -438,6 +457,7 @@ const onSubmit = async (formEl: FormInstance | undefined) => {
dialogData.value.rowData.day = Number(dialogData.value.rowData.day);
dialogData.value.rowData.hour = Number(dialogData.value.rowData.hour);
dialogData.value.rowData.minute = Number(dialogData.value.rowData.minute);
+ dialogData.value.rowData.second = Number(dialogData.value.rowData.second);
if (!checkScript()) {
MsgError(i18n.global.t('cronjob.cronSpecHelper'));
return;
@@ -463,3 +483,12 @@ defineExpose({
acceptParams,
});
+