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]