mirror of
https://github.com/certd/certd.git
synced 2026-04-27 15:17:24 +08:00
perf: 模版创建流水线支持随机时间
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user