diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/history-timeline-item.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/history-timeline-item.vue
index b45baf3f..7a020d4e 100644
--- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/history-timeline-item.vue
+++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/history-timeline-item.vue
@@ -3,7 +3,7 @@
-
+
{{ status.label }}
diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue
index ee92ae5f..bcb6f087 100644
--- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue
+++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue
@@ -1027,7 +1027,7 @@ export default defineComponent({
}
.layout-right {
- width: 350px;
+ width: 354px;
height: 100%;
}
}
@@ -1254,7 +1254,7 @@ export default defineComponent({
position: relative;
&.collapsed {
- margin-right: -350px;
+ margin-right: -354px;
}
.collapse-toggle {
diff --git a/packages/ui/certd-server/src/plugins/plugin-doge/plugins/deploy-to-cdn/index.ts b/packages/ui/certd-server/src/plugins/plugin-doge/plugins/deploy-to-cdn/index.ts
index 7c75669e..539de8ed 100644
--- a/packages/ui/certd-server/src/plugins/plugin-doge/plugins/deploy-to-cdn/index.ts
+++ b/packages/ui/certd-server/src/plugins/plugin-doge/plugins/deploy-to-cdn/index.ts
@@ -1,8 +1,9 @@
-import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
+import { AbstractTaskPlugin, IsTaskPlugin, PageSearch, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
import { CertInfo } from '@certd/plugin-cert';
import { DogeClient } from '../../lib/index.js';
import dayjs from 'dayjs';
-import { CertApplyPluginNames} from '@certd/plugin-cert';
+import { CertApplyPluginNames } from '@certd/plugin-cert';
+import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from '@certd/plugin-lib';
@IsTaskPlugin({
name: 'DogeCloudDeployToCDN',
title: '多吉云-部署到多吉云CDN',
@@ -15,12 +16,6 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
},
})
export class DogeCloudDeployToCDNPlugin extends AbstractTaskPlugin {
- @TaskInput({
- title: '域名',
- helper: 'CDN域名',
- required: true,
- })
- domain!: string;
//证书选择,此项必须要有
@TaskInput({
title: '证书',
@@ -33,6 +28,9 @@ export class DogeCloudDeployToCDNPlugin extends AbstractTaskPlugin {
})
cert!: CertInfo;
+ @TaskInput(createCertDomainGetterInputDefine({ props: { required: false } }))
+ certDomains!: string[];
+
//授权选择框
@TaskInput({
title: '多吉云授权',
@@ -45,6 +43,16 @@ export class DogeCloudDeployToCDNPlugin extends AbstractTaskPlugin {
})
accessId!: string;
+ @TaskInput(createRemoteSelectInputDefine({
+ title: 'CDN域名',
+ helper: '请选择CDN域名,可以选择多个,一次性部署',
+ required: true,
+ action: DogeCloudDeployToCDNPlugin.prototype.onGetDomainList.name,
+ pager: false,
+ search: false
+ }))
+ domain!: string | string[];
+
@TaskInput({
title: '忽略部署接口报错',
helper: '当该域名部署后报错,但是实际上已经部署成功时,可以勾选',
@@ -64,7 +72,16 @@ export class DogeCloudDeployToCDNPlugin extends AbstractTaskPlugin {
}
async execute(): Promise {
const certId: number = await this.updateCert();
- await this.bindCert(certId);
+
+ let domains = this.domain
+ if (typeof domains === 'string'){
+ domains = [domains]
+ }
+ for (const domain of domains) {
+ this.ctx.logger.info(`绑定证书${certId}到域名${domain}`);
+ await this.bindCert(certId,domain);
+ }
+ this.logger.info("执行完成")
}
async updateCert() {
@@ -76,15 +93,42 @@ export class DogeCloudDeployToCDNPlugin extends AbstractTaskPlugin {
return data.id;
}
- async bindCert(certId: number) {
+ async bindCert(certId: number,domain: string) {
await this.dogeClient.request(
'/cdn/cert/bind.json',
{
id: certId,
- domain: this.domain,
+ domain: domain,
},
this.ignoreDeployNullCode
);
}
+
+
+ async onGetDomainList(data: PageSearch = {}) {
+
+ const res = await this.dogeClient.request(
+ '/cdn/domain/list.json',
+ {
+ },
+ this.ignoreDeployNullCode
+ );
+
+ const list = res.domains
+ if (!list || list.length === 0) {
+ throw new Error("没有找到CDN域名");
+ }
+
+ const options = list.map((item: any) => {
+ return {
+ label: `${item.name}`,
+ value: item.name,
+ domain: item.name
+ };
+ });
+ return {
+ list: this.ctx.utils.options.buildGroupOptions(options, this.certDomains),
+ };
+ }
}
new DogeCloudDeployToCDNPlugin();