From 7bdde68ecea29fe2c570fd3cb082139db6c93d93 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sat, 13 Sep 2025 23:01:14 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E7=99=BB=E5=BD=95=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E3=80=81=E6=89=BE=E5=9B=9E=E5=AF=86=E7=A0=81=E9=83=BD=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=9E=81=E9=AA=8C=E9=AA=8C=E8=AF=81=E7=A0=81=E5=92=8C?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=AA=8C=E8=AF=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/system/settings/service/models.ts | 2 +- .../src/user/addon/service/addon-service.ts | 21 +++-- .../src/components/captcha/captcha-input.vue | 50 ++++++++++ .../captcha/captchas/geetest_captcha.vue} | 76 ++++++++------- .../captcha/captchas/image_captcha.vue | 59 ++++++++++++ .../plugins/common/remote-tree-select.vue | 1 - .../src/locales/langs/en-US/certd.ts | 2 +- .../src/locales/langs/zh-CN/certd.ts | 2 +- .../certd/addon/addon-selector/index.vue | 5 + .../views/framework/forgot-password/index.vue | 40 ++++---- .../src/views/framework/login/image-code.vue | 41 -------- .../src/views/framework/login/index.vue | 36 ++++--- .../src/views/framework/login/sms-code.vue | 12 +-- .../views/framework/register/email-code.vue | 12 +-- .../src/views/framework/register/index.vue | 39 ++------ .../src/views/sys/settings/tabs/base.vue | 7 +- .../src/controller/basic/code-controller.ts | 50 +++++----- .../sys/settings/sys-settings-controller.ts | 20 ++-- .../user/login/forgot-password-controller.ts | 8 +- .../controller/user/login/login-controller.ts | 31 ++----- .../user/login/register-controller.ts | 7 +- .../modules/basic/service/captcha-service.ts | 54 +++++++++++ .../src/modules/basic/service/code-service.ts | 93 +++++++------------ .../modules/login/service/login-service.ts | 62 ++++--------- .../sys/authority/service/user-service.ts | 17 +++- .../src/plugins/plugin-captcha/api.ts | 2 +- .../plugins/plugin-captcha/geetest/index.ts | 11 ++- .../src/plugins/plugin-captcha/image/index.ts | 75 ++++++++------- .../src/plugins/plugin-captcha/index.ts | 1 + 29 files changed, 446 insertions(+), 390 deletions(-) create mode 100644 packages/ui/certd-client/src/components/captcha/captcha-input.vue rename packages/ui/certd-client/src/{views/framework/login/captcha-input.vue => components/captcha/captchas/geetest_captcha.vue} (52%) create mode 100644 packages/ui/certd-client/src/components/captcha/captchas/image_captcha.vue delete mode 100644 packages/ui/certd-client/src/views/framework/login/image-code.vue create mode 100644 packages/ui/certd-server/src/modules/basic/service/captcha-service.ts diff --git a/packages/libs/lib-server/src/system/settings/service/models.ts b/packages/libs/lib-server/src/system/settings/service/models.ts index 05391a606..af7ddf052 100644 --- a/packages/libs/lib-server/src/system/settings/service/models.ts +++ b/packages/libs/lib-server/src/system/settings/service/models.ts @@ -36,7 +36,7 @@ export class SysPublicSettings extends BaseSettings { captchaEnabled = false; //验证码类型 captchaType?: string; - captchaAddonId?:string; + captchaAddonId?:number; } export class SysPrivateSettings extends BaseSettings { diff --git a/packages/libs/lib-server/src/user/addon/service/addon-service.ts b/packages/libs/lib-server/src/user/addon/service/addon-service.ts index a4a9ba7d5..d58d2453c 100644 --- a/packages/libs/lib-server/src/user/addon/service/addon-service.ts +++ b/packages/libs/lib-server/src/user/addon/service/addon-service.ts @@ -76,9 +76,21 @@ export class AddonService extends BaseService { } async getAddonById(id: any, checkUserId: boolean, userId?: number): Promise { + const ctx = { + http: http, + logger: logger, + utils: utils, + }; + + + if (!id){ + //使用图片验证码 + return await newAddon("captcha", "image", {},ctx); + } const entity = await this.info(id); if (entity == null) { - throw new Error(`该Addon配置不存在,请确认是否已被删除:id=${id}`); + //使用图片验证码 + return await newAddon("captcha", "image", {},ctx); } if (checkUserId) { if (userId == null) { @@ -89,17 +101,12 @@ export class AddonService extends BaseService { } } - // const access = accessRegistry.get(entity.type); const setting = JSON.parse(entity.setting ??"{}") const input = { id: entity.id, ...setting, }; - const ctx = { - http: http, - logger: logger, - utils: utils, - }; + return await newAddon(entity.addonType, entity.type, input,ctx); } diff --git a/packages/ui/certd-client/src/components/captcha/captcha-input.vue b/packages/ui/certd-client/src/components/captcha/captcha-input.vue new file mode 100644 index 000000000..3a348c332 --- /dev/null +++ b/packages/ui/certd-client/src/components/captcha/captcha-input.vue @@ -0,0 +1,50 @@ + + diff --git a/packages/ui/certd-client/src/views/framework/login/captcha-input.vue b/packages/ui/certd-client/src/components/captcha/captchas/geetest_captcha.vue similarity index 52% rename from packages/ui/certd-client/src/views/framework/login/captcha-input.vue rename to packages/ui/certd-client/src/components/captcha/captchas/geetest_captcha.vue index a910b8d45..926b9da96 100644 --- a/packages/ui/certd-client/src/views/framework/login/captcha-input.vue +++ b/packages/ui/certd-client/src/components/captcha/captchas/geetest_captcha.vue @@ -1,64 +1,56 @@