From 0c8e83e1254a9ce4d5a4e7888eb1710394a4b77c Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sun, 6 Oct 2024 02:21:42 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=9F=9F=E5=90=8D=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=A1=E9=AA=8C=E6=8F=90=E7=A4=BA=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E8=BE=93=E5=85=A5=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/plugin/cert-plugin/base.ts | 3 ++- packages/ui/certd-client/src/plugin/index.ts | 1 + .../src/plugin/validator/index.ts | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 packages/ui/certd-client/src/plugin/validator/index.ts diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts index 54a7798e6..7b6b31b32 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts @@ -19,6 +19,7 @@ export abstract class CertApplyBasePlugin extends AbstractTaskPlugin { open: false, tokenSeparators: [",", " ", ",", "、", "|"], }, + rules: [{ type: "domains" }], required: true, col: { span: 24, @@ -28,7 +29,7 @@ export abstract class CertApplyBasePlugin extends AbstractTaskPlugin { "1、支持通配符域名,例如: *.foo.com、foo.com、*.test.handsfree.work\n" + "2、支持多个域名、多个子域名、多个通配符域名打到一个证书上(域名必须是在同一个DNS提供商解析)\n" + "3、多级子域名要分成多个域名输入(*.foo.com的证书不能用于xxx.yyy.foo.com、foo.com)\n" + - "4、输入一个空格之后,再输入下一个", + "4、输入一个,空格之后,再输入下一个", }) domains!: string[]; diff --git a/packages/ui/certd-client/src/plugin/index.ts b/packages/ui/certd-client/src/plugin/index.ts index 9435f7c66..2165cdb28 100644 --- a/packages/ui/certd-client/src/plugin/index.ts +++ b/packages/ui/certd-client/src/plugin/index.ts @@ -3,6 +3,7 @@ import "./iconfont"; import FastCrud from "./fast-crud"; import permission from "./permission"; import { App } from "vue"; +import "./validator/index.js"; function install(app: App, options: any = {}) { app.use(FastCrud, options); app.use(permission); diff --git a/packages/ui/certd-client/src/plugin/validator/index.ts b/packages/ui/certd-client/src/plugin/validator/index.ts new file mode 100644 index 000000000..1dff5f171 --- /dev/null +++ b/packages/ui/certd-client/src/plugin/validator/index.ts @@ -0,0 +1,19 @@ +import Validator from "async-validator"; +// 自定义验证器函数 +function isDomain(rule, value, callback) { + if (value == null) { + return; + } + let domains: string[] = value; + if (typeof value === "string") { + domains = value.split(","); + } + for (const domain of domains) { + //域名可以是泛域名,中文域名,数字域名,英文域名,域名中可以包含-和. + if (!/^(?:[0-9a-zA-Z\u4e00-\u9fa5-]+\.)+[0-9a-zA-Z\u4e00-\u9fa5-]+$/.test(domain)) { + callback(new Error(`域名有误:${domain},请输入正确的域名`)); + } + } +} +// 注册自定义验证器 +Validator.register("domains", isDomain);