diff --git a/packages/ui/certd-client/src/views/certd/pipeline/components/change-trigger.vue b/packages/ui/certd-client/src/views/certd/pipeline/components/change-trigger.vue index a524aebdc..95a9de7a9 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/components/change-trigger.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/components/change-trigger.vue @@ -22,6 +22,8 @@ async function batchUpdateRequest(form: any) { title: "定时触发", type: "timer", props: form.clear ? false : form.props, + random: form.random, + randomRange: form.randomRange, }); 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: { + // + 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": { title: t("certd.schedule"), form: { @@ -64,7 +106,7 @@ async function openFormDialog() { vModel: "modelValue", }, show: compute(({ form }) => { - return form.clear !== true; + return form.clear !== true && form?.random !== true; }), rules: [{ required: true, message: t("certd.selectCron") }], }, diff --git a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts index f2544a408..c5656a50e 100644 --- a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts +++ b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts @@ -827,6 +827,22 @@ export class PipelineService extends BaseService { //清除trigger pipeline.triggers = [] } 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]