diff --git a/packages/ui/certd-client/src/views/certd/history/crud.tsx b/packages/ui/certd-client/src/views/certd/history/crud.tsx index b03b4f7f..8b1c1abb 100644 --- a/packages/ui/certd-client/src/views/certd/history/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/history/crud.tsx @@ -2,9 +2,10 @@ import * as api from "./api"; import { useI18n } from "vue-i18n"; import { computed, Ref, ref } from "vue"; import { useRouter } from "vue-router"; -import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, EditReq, UserPageQuery, UserPageRes, utils } from "@fast-crud/fast-crud"; +import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, EditReq, UserPageQuery, UserPageRes, utils } from "@fast-crud/fast-crud"; import { useUserStore } from "/@/store/user"; import { useSettingStore } from "/@/store/settings"; +import { statusUtil } from "/@/views/certd/pipeline/pipeline/utils/util.status"; export default function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet { const router = useRouter(); @@ -143,6 +144,50 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat }, }, }, + triggerType: { + title: "触发类型", + type: "dict-select", + search: { + show: true, + }, + dict: dict({ + data: [ + { value: "user", label: "手动执行" }, + { value: "timer", label: "定时执行" }, + ], + }), + form: { + show: false, + value: "custom", + }, + column: { + sorter: true, + width: 90, + align: "center", + show: true, + component: { + color: "auto", + }, + }, + }, + status: { + title: "状态", + type: "dict-select", + search: { + show: true, + }, + dict: dict({ + data: statusUtil.getOptions(), + }), + form: { + show: false, + }, + column: { + sorter: true, + width: 120, + align: "center", + }, + }, createTime: { title: "创建时间", type: "datetime", diff --git a/packages/ui/certd-server/db/migration/v10025__history_trigger_type.sql b/packages/ui/certd-server/db/migration/v10025__history_trigger_type.sql new file mode 100644 index 00000000..7d7483f2 --- /dev/null +++ b/packages/ui/certd-server/db/migration/v10025__history_trigger_type.sql @@ -0,0 +1,2 @@ + +ALTER TABLE pi_history ADD COLUMN "trigger_type" varchar(100); diff --git a/packages/ui/certd-server/src/modules/pipeline/entity/history.ts b/packages/ui/certd-server/src/modules/pipeline/entity/history.ts index a97f7860..6461b28f 100644 --- a/packages/ui/certd-server/src/modules/pipeline/entity/history.ts +++ b/packages/ui/certd-server/src/modules/pipeline/entity/history.ts @@ -16,6 +16,9 @@ export class HistoryEntity { @Column({ comment: '结果状态', length: 20, nullable: true }) status: string; + @Column({ name: 'trigger_type',comment: '触发类型', length: 20, nullable: true }) + triggerType: string; + @Column({ name: 'end_time', comment: '结束时间', diff --git a/packages/ui/certd-server/src/modules/pipeline/service/history-service.ts b/packages/ui/certd-server/src/modules/pipeline/service/history-service.ts index c79858d1..5829f8f0 100644 --- a/packages/ui/certd-server/src/modules/pipeline/service/history-service.ts +++ b/packages/ui/certd-server/src/modules/pipeline/service/history-service.ts @@ -60,12 +60,13 @@ export class HistoryService extends BaseService { return new HistoryDetail(entity, log); } - async start(pipeline: PipelineEntity) { + async start(pipeline: PipelineEntity,triggerType:string) { const bean = { userId: pipeline.userId, pipelineId: pipeline.id, title: pipeline.title, status: 'start', + triggerType }; const { id } = await this.add(bean); //清除大于pipeline.keepHistoryCount的历史记录 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 3cf0bdf5..578fe560 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 @@ -497,7 +497,7 @@ export class PipelineService extends BaseService { }; const userId = entity.userId; - const historyId = await this.historyService.start(entity); + const historyId = await this.historyService.start(entity,triggerType); const userIsAdmin = await this.userService.isAdmin(userId); const user: UserInfo = { id: userId,