From aedc46213571a3bd93809b7af7fa17a08d546237 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sat, 30 Nov 2024 01:57:09 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E9=80=89=E9=A1=B9=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/pipeline/src/access/api.ts | 1 + .../core/pipeline/src/notification/api.ts | 1 + .../plugin-cert/src/access/eab-access.ts | 1 + .../plugin-cert/src/access/google-access.ts | 1 + .../plugin-cert/src/dns-provider/api.ts | 1 + .../src/plugin/cert-plugin/index.ts | 8 +- .../src/aliyun/access/aliyun-access.ts | 1 + .../plugins/plugin-lib/src/ssh/ssh-access.ts | 1 + .../src/components/icon-select.vue | 16 ++++ .../ui/certd-client/src/components/index.ts | 6 +- .../src/components/loading-button.vue | 24 ++++++ .../cert/dns-provider-selector/index.vue | 5 +- .../src/components/vip-button/index.vue | 46 ++++++++++-- .../src/router/source/modules/sys.ts | 2 +- .../ui/certd-client/src/style/common.less | 9 ++- .../src/views/certd/access/common.tsx | 8 ++ .../src/views/certd/notification/common.tsx | 11 +++ .../src/views/framework/register/index.vue | 2 +- .../src/views/sys/settings/api.ts | 8 ++ .../src/views/sys/settings/index.vue | 30 ++++++-- .../src/views/sys/settings/tabs/register.vue | 74 ++++++++++++++----- .../src/controller/login/login-controller.ts | 7 +- .../controller/login/register-controller.ts | 3 + .../controller/pipeline/access-controller.ts | 4 +- .../pipeline/notification-controller.ts | 34 ++++++++- .../sys/settings/sys-settings-controller.ts | 15 +++- .../src/modules/basic/service/code-service.ts | 4 +- .../dns-provider/aliyun-dns-provider.ts | 1 + .../src/plugins/plugin-cachefly/access.ts | 1 + .../src/plugins/plugin-cloudflare/access.ts | 1 + .../plugins/plugin-cloudflare/dns-provider.ts | 1 + .../src/plugins/plugin-demo/access.ts | 1 + .../src/plugins/plugin-demo/dns-provider.ts | 1 + .../src/plugins/plugin-doge/access.ts | 1 + .../src/plugins/plugin-gcore/access.ts | 1 + .../plugin-huawei/access/huawei-access.ts | 1 + .../dns-provider/huawei-dns-provider.ts | 1 + .../src/plugins/plugin-namesilo/access.ts | 1 + .../plugins/plugin-namesilo/dns-provider.ts | 1 + .../plugin-notification/anpush/index.ts | 1 + .../plugins/plugin-notification/bark/index.ts | 1 + .../plugin-notification/discord/index.ts | 1 + .../plugins/plugin-notification/iyuu/index.ts | 1 + .../plugins/plugin-notification/qywx/index.ts | 1 + .../plugin-notification/serverchan/index.ts | 1 + .../plugin-notification/slack/index.ts | 1 + .../plugin-notification/telegram/index.ts | 1 + .../plugin-notification/vocechat/index.ts | 1 + .../plugin-tencent/access/dnspod-access.ts | 1 + .../dns-provider/dnspod-dns-provider.ts | 1 + .../dns-provider/tencent-dns-provider.ts | 1 + .../src/plugins/plugin-west/access.ts | 1 + .../src/plugins/plugin-west/dns-provider.ts | 1 + .../src/plugins/plugin-woai/access.ts | 1 + 54 files changed, 298 insertions(+), 52 deletions(-) create mode 100644 packages/ui/certd-client/src/components/icon-select.vue create mode 100644 packages/ui/certd-client/src/components/loading-button.vue 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 @@