From 29906ec057869489e39d1d6a11a3fd5dc72848ce Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 25 Jun 2025 18:18:57 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=A8=A1=E7=89=88=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/certd/pipeline/certd-form/use.tsx | 46 +++++++++---------- .../src/views/certd/pipeline/template/api.ts | 8 ++++ .../views/certd/pipeline/template/crud.tsx | 8 +++- .../views/certd/pipeline/template/form.vue | 9 +++- .../src/views/certd/pipeline/template/use.tsx | 41 ++++++++++++++++- .../db/migration/v10026__template.sql | 4 +- .../user/pipeline/template-controller.ts | 6 +++ .../src/modules/pipeline/entity/pipeline.ts | 5 +- .../src/modules/pipeline/entity/template.ts | 2 + .../pipeline/service/pipeline-service.ts | 2 +- .../pipeline/service/template-service.ts | 34 +++++++++++--- 11 files changed, 127 insertions(+), 38 deletions(-) diff --git a/packages/ui/certd-client/src/views/certd/pipeline/certd-form/use.tsx b/packages/ui/certd-client/src/views/certd/pipeline/certd-form/use.tsx index 508175d6..9238e2fd 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/certd-form/use.tsx +++ b/packages/ui/certd-client/src/views/certd/pipeline/certd-form/use.tsx @@ -12,6 +12,25 @@ import { PluginGroup, usePluginStore } from "/@/store/plugin"; import { createNotificationApi } from "/@/views/certd/notification/api"; import GroupSelector from "../group/group-selector.vue"; +export function fillPipelineByDefaultForm(pipeline: any, form: any) { + const triggers = []; + if (form.triggerCron) { + triggers.push({ title: "定时触发", type: "timer", props: { cron: form.triggerCron } }); + } + const notifications = []; + if (form.notification != null) { + notifications.push({ + type: "custom", + when: ["error", "turnToSuccess", "success"], + notificationId: form.notification, + title: form.notificationTarget?.name || "自定义通知", + }); + } + pipeline.triggers = triggers; + pipeline.notifications = notifications; + return pipeline; +} + export function setRunnableIds(pipeline: any) { const idMap: any = {}; function createId(oldId: any) { @@ -244,21 +263,8 @@ export function useCertPipelineCreator() { async function doSubmit({ form }: any) { // const certDetail = readCertDetail(form.cert.crt); // 添加certd pipeline - const triggers = []; - if (form.triggerCron) { - triggers.push({ title: "定时触发", type: "timer", props: { cron: form.triggerCron } }); - } - const notifications = []; - if (form.notification != null) { - notifications.push({ - type: "custom", - when: ["error", "turnToSuccess", "success"], - notificationId: form.notification, - title: form.notificationTarget?.name || "自定义通知", - }); - } const pluginInput = omit(form, ["triggerCron", "notification", "notificationTarget", "certApplyPlugin", "groupId"]); - let pipeline = { + let pipeline: any = { title: form.domains[0] + "证书自动化", runnableType: "pipeline", stages: [ @@ -288,17 +294,11 @@ export function useCertPipelineCreator() { ], }, ], - triggers, - notifications, }; - pipeline = setRunnableIds(pipeline); - /** - * // cert: 证书; backup: 备份; custom:自定义; - * type: string; - * // custom: 自定义; monitor: 监控; - * from: string; - */ + pipeline = fillPipelineByDefaultForm(pipeline, form); + + pipeline = setRunnableIds(pipeline); const groupId = form.groupId; const id = await api.Save({ title: pipeline.title, diff --git a/packages/ui/certd-client/src/views/certd/pipeline/template/api.ts b/packages/ui/certd-client/src/views/certd/pipeline/template/api.ts index 121351f3..7912310d 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/template/api.ts +++ b/packages/ui/certd-client/src/views/certd/pipeline/template/api.ts @@ -56,4 +56,12 @@ export const templateApi = { method: "post", }); }, + + async CreatePipelineByTemplate(data: any) { + return await request({ + url: apiPrefix + "/createPipelineByTemplate", + method: "post", + data, + }); + }, }; diff --git a/packages/ui/certd-client/src/views/certd/pipeline/template/crud.tsx b/packages/ui/certd-client/src/views/certd/pipeline/template/crud.tsx index 7153b138..96a4990f 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/template/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/pipeline/template/crud.tsx @@ -146,8 +146,12 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat toolbar: { show: false, }, - tabs: { - name: "type", + columns: { + title: { + column: { + cellRender: null, + }, + }, }, }, }, diff --git a/packages/ui/certd-client/src/views/certd/pipeline/template/form.vue b/packages/ui/certd-client/src/views/certd/pipeline/template/form.vue index 46ea4934..31e0686c 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/template/form.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/template/form.vue @@ -1,5 +1,5 @@