diff --git a/packages/core/pipeline/src/access/api.ts b/packages/core/pipeline/src/access/api.ts index a350e8ef..48bafb50 100644 --- a/packages/core/pipeline/src/access/api.ts +++ b/packages/core/pipeline/src/access/api.ts @@ -18,6 +18,7 @@ export type AccessInputDefine = FormItemProps & { encrypt?: boolean; }; export type AccessDefine = Registrable & { + icon?: string; input?: { [key: string]: AccessInputDefine; }; diff --git a/packages/core/pipeline/src/notification/api.ts b/packages/core/pipeline/src/notification/api.ts index 288fadb7..cadd5956 100644 --- a/packages/core/pipeline/src/notification/api.ts +++ b/packages/core/pipeline/src/notification/api.ts @@ -31,6 +31,7 @@ export type NotificationInputDefine = FormItemProps & { encrypt?: boolean; }; export type NotificationDefine = Registrable & { + needPlus?: boolean; input?: { [key: string]: NotificationInputDefine; }; diff --git a/packages/plugins/plugin-cert/src/access/eab-access.ts b/packages/plugins/plugin-cert/src/access/eab-access.ts index 9702d8d2..bbfc4b24 100644 --- a/packages/plugins/plugin-cert/src/access/eab-access.ts +++ b/packages/plugins/plugin-cert/src/access/eab-access.ts @@ -4,6 +4,7 @@ import { IsAccess, AccessInput, BaseAccess } from "@certd/pipeline"; name: "eab", title: "EAB授权", desc: "ZeroSSL证书申请需要EAB授权", + icon: "ic:outline-lock", }) export class EabAccess extends BaseAccess { @AccessInput({ diff --git a/packages/plugins/plugin-cert/src/access/google-access.ts b/packages/plugins/plugin-cert/src/access/google-access.ts index efc66355..11b67526 100644 --- a/packages/plugins/plugin-cert/src/access/google-access.ts +++ b/packages/plugins/plugin-cert/src/access/google-access.ts @@ -4,6 +4,7 @@ import { IsAccess, AccessInput, BaseAccess } from "@certd/pipeline"; name: "google", title: "google cloud", desc: "谷歌云授权", + icon: "flat-color-icons:google", }) export class GoogleAccess extends BaseAccess { @AccessInput({ diff --git a/packages/plugins/plugin-cert/src/dns-provider/api.ts b/packages/plugins/plugin-cert/src/dns-provider/api.ts index 3ce83054..49a18cc1 100644 --- a/packages/plugins/plugin-cert/src/dns-provider/api.ts +++ b/packages/plugins/plugin-cert/src/dns-provider/api.ts @@ -3,6 +3,7 @@ import { IAccess, Registrable } from "@certd/pipeline"; export type DnsProviderDefine = Registrable & { accessType: string; + icon?: string; autowire?: { [key: string]: any; }; diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts index 7b15ddd3..6e8ae9cd 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts @@ -129,12 +129,12 @@ export class CertApplyPlugin extends CertApplyBasePlugin { title: "证书颁发机构", value: "letsencrypt", component: { - name: "a-select", + name: "icon-select", vModel: "value", options: [ - { value: "letsencrypt", label: "Let's Encrypt" }, - { value: "google", label: "Google" }, - { value: "zerossl", label: "ZeroSSL" }, + { value: "letsencrypt", label: "Let's Encrypt", icon: "simple-icons:letsencrypt" }, + { value: "google", label: "Google", icon: "flat-color-icons:google" }, + { value: "zerossl", label: "ZeroSSL", icon: "emojione:digit-zero" }, ], }, helper: "Let's Encrypt:申请最简单\nGoogle:大厂光环,兼容性好,需要翻墙获取EAB授权\nZeroSSL:有数量限制,获取EAB授权无需翻墙", diff --git a/packages/plugins/plugin-lib/src/aliyun/access/aliyun-access.ts b/packages/plugins/plugin-lib/src/aliyun/access/aliyun-access.ts index f12d473a..eb9ee0c4 100644 --- a/packages/plugins/plugin-lib/src/aliyun/access/aliyun-access.ts +++ b/packages/plugins/plugin-lib/src/aliyun/access/aliyun-access.ts @@ -4,6 +4,7 @@ import { IsAccess, AccessInput, BaseAccess } from "@certd/pipeline"; name: "aliyun", title: "阿里云授权", desc: "", + icon: "ant-design:aliyun-outlined", }) export class AliyunAccess extends BaseAccess { @AccessInput({ diff --git a/packages/plugins/plugin-lib/src/ssh/ssh-access.ts b/packages/plugins/plugin-lib/src/ssh/ssh-access.ts index 6353b54b..228bd1e0 100644 --- a/packages/plugins/plugin-lib/src/ssh/ssh-access.ts +++ b/packages/plugins/plugin-lib/src/ssh/ssh-access.ts @@ -5,6 +5,7 @@ import { ConnectConfig } from "ssh2"; name: "ssh", title: "主机登录授权", desc: "", + icon: "clarity:host-line", input: {}, }) export class SshAccess extends BaseAccess implements ConnectConfig { diff --git a/packages/ui/certd-client/src/components/icon-select.vue b/packages/ui/certd-client/src/components/icon-select.vue new file mode 100644 index 00000000..985a31fa --- /dev/null +++ b/packages/ui/certd-client/src/components/icon-select.vue @@ -0,0 +1,16 @@ + + + diff --git a/packages/ui/certd-client/src/components/index.ts b/packages/ui/certd-client/src/components/index.ts index 56d63a73..93d39517 100644 --- a/packages/ui/certd-client/src/components/index.ts +++ b/packages/ui/certd-client/src/components/index.ts @@ -7,7 +7,8 @@ import FoldBox from "./fold-box.vue"; import { CronLight } from "@vue-js-cron/light"; import "@vue-js-cron/light/dist/light.css"; import Plugins from "./plugins/index"; - +import LoadingButton from "./loading-button.vue"; +import IconSelect from "./icon-select.vue"; export default { install(app: any) { app.component("PiContainer", PiContainer); @@ -22,6 +23,9 @@ export default { app.component("InfoCircleOutlined", InfoCircleOutlined); app.component("UndoOutlined", UndoOutlined); + app.component("LoadingButton", LoadingButton); + app.component("IconSelect", IconSelect); + app.use(vip); app.use(Plugins); } diff --git a/packages/ui/certd-client/src/components/loading-button.vue b/packages/ui/certd-client/src/components/loading-button.vue new file mode 100644 index 00000000..6a7cd581 --- /dev/null +++ b/packages/ui/certd-client/src/components/loading-button.vue @@ -0,0 +1,24 @@ + + + diff --git a/packages/ui/certd-client/src/components/plugins/cert/dns-provider-selector/index.vue b/packages/ui/certd-client/src/components/plugins/cert/dns-provider-selector/index.vue index 201631a4..65369982 100644 --- a/packages/ui/certd-client/src/components/plugins/cert/dns-provider-selector/index.vue +++ b/packages/ui/certd-client/src/components/plugins/cert/dns-provider-selector/index.vue @@ -1,5 +1,5 @@