perf: 模版创建流水线支持随机时间

This commit is contained in:
xiaojunnuo
2026-04-25 19:01:06 +08:00
parent c28dfa8aca
commit 575415b93a
3 changed files with 34 additions and 5 deletions
@@ -13,10 +13,27 @@ import { createNotificationApi } from "/@/views/certd/notification/api";
import GroupSelector from "../group/group-selector.vue";
import { useI18n } from "/src/locales";
import { useSettingStore } from "/@/store/settings";
import dayjs from "dayjs";
export function fillPipelineByDefaultForm(pipeline: any, form: any) {
const triggers = [];
if (form.triggerCron) {
//根据随机时间设置触发时间
if (form.random === true) {
// 随机时间
const randomRange = form.randomRange;
const start = dayjs().format("YYYY-MM-DD") + " " + randomRange[0];
let end = dayjs().format("YYYY-MM-DD") + " " + randomRange[1];
if (randomRange[1] < randomRange[0]) {
//跨天
end = dayjs().add(1, "day").format("YYYY-MM-DD") + " " + 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();
triggers.push({ title: "定时触发", type: "timer", props: { cron: `${time} * * *` } });
} else if (form.triggerCron) {
triggers.push({ title: "定时触发", type: "timer", props: { cron: form.triggerCron } });
}
if (form.webhookEnabled) {
@@ -67,8 +67,8 @@ async function openFormDialog() {
return form.clear !== true;
}),
component: {
name: "fs-dict-switch",
vModel: "checked",
name: "fs-dict-radio",
vModel: "value",
dict: dict({
data: [
{
@@ -40,14 +40,18 @@ export function createExtraColumns() {
random: {
title: "定时类型",
form: {
order: 100,
value: true,
helper: "是否给流水线随机设置一个时间",
show: compute(({ form }) => {
return form.clear !== true;
}),
col: {
span: 24,
},
component: {
name: "fs-dict-switch",
vModel: "checked",
name: "fs-dict-radio",
vModel: "value",
dict: dict({
data: [
{
@@ -66,6 +70,7 @@ export function createExtraColumns() {
randomRange: {
title: "随机时间范围",
form: {
order: 100,
value: ["00:00:00", "08:00:00"],
helper: "随机时间范围,单位秒",
component: {
@@ -83,6 +88,7 @@ export function createExtraColumns() {
triggerCron: {
title: t("certd.schedule"),
form: {
order: 100,
component: {
name: "cron-editor",
vModel: "modelValue",
@@ -93,6 +99,12 @@ export function createExtraColumns() {
rules: [{ required: true, message: t("certd.selectCron") }],
},
},
blank2: {
form: {
blank: true,
order: 100,
},
},
notification: {
title: "失败通知",
type: "text",