mirror of
https://github.com/certd/certd.git
synced 2026-04-24 20:57:26 +08:00
perf: 批量修改定时时间支持随机时间
This commit is contained in:
@@ -22,6 +22,8 @@ async function batchUpdateRequest(form: any) {
|
|||||||
title: "定时触发",
|
title: "定时触发",
|
||||||
type: "timer",
|
type: "timer",
|
||||||
props: form.clear ? false : form.props,
|
props: form.clear ? false : form.props,
|
||||||
|
random: form.random,
|
||||||
|
randomRange: form.randomRange,
|
||||||
});
|
});
|
||||||
emit("change");
|
emit("change");
|
||||||
}
|
}
|
||||||
@@ -56,6 +58,46 @@ async function openFormDialog() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
random: {
|
||||||
|
title: "随机时间",
|
||||||
|
form: {
|
||||||
|
value: true,
|
||||||
|
helper: "是否给流水线随机设置一个时间",
|
||||||
|
component: {
|
||||||
|
name: "fs-dict-switch",
|
||||||
|
vModel: "checked",
|
||||||
|
dict: dict({
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
label: "随机时间",
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "固定时间",
|
||||||
|
value: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
randomRange: {
|
||||||
|
title: "随机时间范围",
|
||||||
|
form: {
|
||||||
|
value: ["00:00:00", "08:00:00"],
|
||||||
|
helper: "随机时间范围,单位秒",
|
||||||
|
component: {
|
||||||
|
// <a-time-range-picker :bordered="false" />
|
||||||
|
name: "a-time-range-picker",
|
||||||
|
vModel: "value",
|
||||||
|
valueFormat: "HH:mm:ss",
|
||||||
|
},
|
||||||
|
show: compute(({ form }) => {
|
||||||
|
return form.clear !== true && form.random === true;
|
||||||
|
}),
|
||||||
|
rules: [{ required: true, message: "请选择随机时间范围" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
"props.cron": {
|
"props.cron": {
|
||||||
title: t("certd.schedule"),
|
title: t("certd.schedule"),
|
||||||
form: {
|
form: {
|
||||||
@@ -64,7 +106,7 @@ async function openFormDialog() {
|
|||||||
vModel: "modelValue",
|
vModel: "modelValue",
|
||||||
},
|
},
|
||||||
show: compute(({ form }) => {
|
show: compute(({ form }) => {
|
||||||
return form.clear !== true;
|
return form.clear !== true && form?.random !== true;
|
||||||
}),
|
}),
|
||||||
rules: [{ required: true, message: t("certd.selectCron") }],
|
rules: [{ required: true, message: t("certd.selectCron") }],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -827,6 +827,22 @@ export class PipelineService extends BaseService<PipelineEntity> {
|
|||||||
//清除trigger
|
//清除trigger
|
||||||
pipeline.triggers = []
|
pipeline.triggers = []
|
||||||
} else {
|
} else {
|
||||||
|
if(trigger.random === true){
|
||||||
|
//随机时间
|
||||||
|
const start = dayjs().format("YYYY-MM-DD") + " " + trigger.randomRange[0];
|
||||||
|
let end = dayjs().format("YYYY-MM-DD") + " " + trigger.randomRange[1];
|
||||||
|
if(trigger.randomRange[1]<trigger.randomRange[0]){
|
||||||
|
//跨天
|
||||||
|
end = dayjs().add(1, "day").format("YYYY-MM-DD") + " " + trigger.randomRange[1];
|
||||||
|
}
|
||||||
|
const startTime = dayjs(start).valueOf();
|
||||||
|
const endTime = dayjs(end).valueOf();
|
||||||
|
const randomTime = Math.floor(Math.random() * (endTime - startTime)) + startTime;
|
||||||
|
const time = dayjs(randomTime).format(" ss:mm:HH").replaceAll(":", " ").replaceAll(" 0", " ").trim();
|
||||||
|
set(trigger,"props.cron", `${time} * * *`)
|
||||||
|
}
|
||||||
|
delete trigger.random
|
||||||
|
delete trigger.randomRange;
|
||||||
pipeline.triggers = [{
|
pipeline.triggers = [{
|
||||||
id: nanoid(),
|
id: nanoid(),
|
||||||
title: "定时触发",
|
title: "定时触发",
|
||||||
|
|||||||
Reference in New Issue
Block a user