From eed70adc7a0048b384390fdd57e57ba16430c191 Mon Sep 17 00:00:00 2001 From: DaxPay Dev Date: Sat, 25 Jul 2026 09:54:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ui):=20=E6=8A=BD=E5=8F=96=E5=AF=86?= =?UTF-8?q?=E7=A0=81/=E8=B7=AF=E7=94=B1/=E9=80=9A=E9=81=93=E5=95=86?= =?UTF-8?q?=E6=88=B7/=E7=A4=BE=E4=BA=A4=E5=9B=BE=E6=A0=87=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=88=B0=20@daxpay/ui-biz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Batch 1+2: 将两端重复的展示组件与连带 type/utils 迁入共享包,两端改转发壳或 re-export: - input-password: InputPassword + PasswordStrength + password-validator + PasswordPolicyConfig type 彻底迁入 ui-biz(两端实体删除,index 转发) - route: RouteQueryMissingState 迁入 ui-biz(两端保留透传壳兼容 24 处直接 .vue 引用) - channel: ChannelMerchantSelect 迁入 ui-biz(两端保留透传壳兼容 6 处直接引用) - social: SocialLogo + assets/social(10 SVG) 迁入 ui-biz,assets 引用从绝对路径 /src/assets/social/ 改为 import.meta.glob 相对静态加载(两端保留透传壳) - security.api 的 PasswordPolicyConfig type 与 password-validator 纯函数改 re-export ui-biz 两端 typecheck 零新增错误。 --- .../src/api/system/security.api.ts | 31 +--- .../channel/ChannelMerchantSelect.vue | 95 +---------- .../src/components/channel/index.ts | 2 +- .../input-password/PasswordStrength.vue | 121 -------------- .../src/components/input-password/index.ts | 2 +- .../route/RouteQueryMissingState.vue | 27 +-- .../src/components/route/index.ts | 1 + .../src/components/social/SocialLogo.vue | 98 +---------- .../src/components/social/index.ts | 2 +- .../src/utils/password-validator.ts | 155 +----------------- .../src/api/system/security.api.ts | 31 +--- .../src/assets/social/README.md | 34 ---- .../src/assets/social/alipay.svg | 1 - .../src/assets/social/dingTalk.svg | 1 - .../src/assets/social/douyin.svg | 1 - .../src/assets/social/feishu.svg | 1 - .../src/assets/social/gitee.svg | 1 - .../src/assets/social/github.svg | 1 - .../src/assets/social/google.svg | 1 - apps/daxpay-merchant/src/assets/social/qq.svg | 1 - .../src/assets/social/weChat.svg | 1 - .../src/assets/social/weCom.svg | 1 - .../channel/ChannelMerchantSelect.vue | 95 +---------- .../src/components/channel/index.ts | 2 +- .../input-password/InputPassword.vue | 56 ------- .../src/components/input-password/index.ts | 2 +- .../route/RouteQueryMissingState.vue | 27 +-- .../src/components/route/index.ts | 1 + .../src/components/social/SocialLogo.vue | 98 +---------- .../src/components/social/index.ts | 2 +- .../src/utils/password-validator.ts | 155 +----------------- packages/business/ui-biz/package.json | 20 +++ .../ui-biz}/src/assets/social/README.md | 0 .../ui-biz}/src/assets/social/alipay.svg | 0 .../ui-biz}/src/assets/social/dingTalk.svg | 0 .../ui-biz}/src/assets/social/douyin.svg | 0 .../ui-biz}/src/assets/social/feishu.svg | 0 .../ui-biz}/src/assets/social/gitee.svg | 0 .../ui-biz}/src/assets/social/github.svg | 0 .../ui-biz}/src/assets/social/google.svg | 0 .../business/ui-biz}/src/assets/social/qq.svg | 0 .../ui-biz}/src/assets/social/weChat.svg | 0 .../ui-biz}/src/assets/social/weCom.svg | 0 .../channel/ChannelMerchantSelect.vue | 94 +++++++++++ .../ui-biz/src/components/channel/index.ts | 1 + .../input-password/InputPassword.vue | 2 +- .../input-password/PasswordStrength.vue | 6 +- .../src/components/input-password/index.ts | 1 + .../route/RouteQueryMissingState.vue | 24 +++ .../ui-biz/src/components/route/index.ts | 1 + .../src/components/social/SocialLogo.vue | 98 +++++++++++ .../ui-biz/src/components/social/index.ts | 1 + .../ui-biz/src/types/password-policy.ts | 30 ++++ .../ui-biz/src/utils/password-validator.ts | 154 +++++++++++++++++ 54 files changed, 488 insertions(+), 991 deletions(-) delete mode 100644 apps/daxpay-admin/src/components/input-password/PasswordStrength.vue create mode 100644 apps/daxpay-admin/src/components/route/index.ts delete mode 100644 apps/daxpay-merchant/src/assets/social/README.md delete mode 100644 apps/daxpay-merchant/src/assets/social/alipay.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/dingTalk.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/douyin.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/feishu.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/gitee.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/github.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/google.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/qq.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/weChat.svg delete mode 100644 apps/daxpay-merchant/src/assets/social/weCom.svg delete mode 100644 apps/daxpay-merchant/src/components/input-password/InputPassword.vue create mode 100644 apps/daxpay-merchant/src/components/route/index.ts rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/README.md (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/alipay.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/dingTalk.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/douyin.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/feishu.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/gitee.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/github.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/google.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/qq.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/weChat.svg (100%) rename {apps/daxpay-admin => packages/business/ui-biz}/src/assets/social/weCom.svg (100%) create mode 100644 packages/business/ui-biz/src/components/channel/ChannelMerchantSelect.vue rename {apps/daxpay-admin => packages/business/ui-biz}/src/components/input-password/InputPassword.vue (93%) rename {apps/daxpay-merchant => packages/business/ui-biz}/src/components/input-password/PasswordStrength.vue (93%) create mode 100644 packages/business/ui-biz/src/components/input-password/index.ts create mode 100644 packages/business/ui-biz/src/components/route/RouteQueryMissingState.vue create mode 100644 packages/business/ui-biz/src/components/route/index.ts create mode 100644 packages/business/ui-biz/src/components/social/SocialLogo.vue create mode 100644 packages/business/ui-biz/src/components/social/index.ts create mode 100644 packages/business/ui-biz/src/types/password-policy.ts create mode 100644 packages/business/ui-biz/src/utils/password-validator.ts diff --git a/apps/daxpay-admin/src/api/system/security.api.ts b/apps/daxpay-admin/src/api/system/security.api.ts index 78f7caba7..b855ef094 100644 --- a/apps/daxpay-admin/src/api/system/security.api.ts +++ b/apps/daxpay-admin/src/api/system/security.api.ts @@ -98,36 +98,9 @@ export const SecurityApi = { }, }; -/** - * 密码策略配置 - */ -export interface PasswordPolicyConfig { - /** 是否启用 */ - enabled?: boolean; - /** 最小长度 */ - minLength?: number; - /** 最大长度 */ - maxLength?: number; - /** 是否要求大写字母 */ - requireUppercase?: boolean; - /** 是否要求小写字母 */ - requireLowercase?: boolean; - /** 是否要求数字 */ - requireDigit?: boolean; - /** 是否要求特殊字符 */ - requireSpecialChar?: boolean; - /** 特殊字符集合 */ - specialChars?: string; - /** 密码轮换天数 */ - rotationDays?: number; - /** 历史密码检查数量 */ - historyCount?: number; -} +import type { PasswordPolicyConfig, PasswordPolicyValidateConfig } from '@daxpay/ui-biz/types/password-policy'; -/** - * 密码策略校验配置(供前端校验使用) - */ -export type PasswordPolicyValidateConfig = PasswordPolicyConfig; +export type { PasswordPolicyConfig, PasswordPolicyValidateConfig }; /** * 登录安全配置 diff --git a/apps/daxpay-admin/src/components/channel/ChannelMerchantSelect.vue b/apps/daxpay-admin/src/components/channel/ChannelMerchantSelect.vue index bc55686d6..f8a8c9ee2 100644 --- a/apps/daxpay-admin/src/components/channel/ChannelMerchantSelect.vue +++ b/apps/daxpay-admin/src/components/channel/ChannelMerchantSelect.vue @@ -1,94 +1,13 @@