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 54a7798e..7b6b31b3 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 9435f7c6..2165cdb2 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 00000000..1dff5f17 --- /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);