From 5b7872d8961579d9ab9afa2941f15c48a46551d2 Mon Sep 17 00:00:00 2001 From: zhengkunwang223 Date: Mon, 12 Dec 2022 15:51:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E6=AD=A3=E5=88=99?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/global/form-rules.ts | 19 +++++++++++++++++++ frontend/src/lang/modules/zh.ts | 3 ++- .../views/website/website/create/index.vue | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/frontend/src/global/form-rules.ts b/frontend/src/global/form-rules.ts index a3428dc61..3057d0d70 100644 --- a/frontend/src/global/form-rules.ts +++ b/frontend/src/global/form-rules.ts @@ -67,6 +67,19 @@ const checkLinuxName = (rule: any, value: any, callback: any) => { } }; +const checkDomain = (rule: any, value: any, callback: any) => { + if (value === '' || typeof value === 'undefined' || value == null) { + callback(new Error(i18n.global.t('commons.rule.domain'))); + } else { + const reg = /^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$/; + if (!reg.test(value) && value !== '') { + callback(new Error(i18n.global.t('commons.rule.domain'))); + } else { + callback(); + } + } +}; + interface CommonRule { requiredInput: FormItemRule; requiredSelect: FormItemRule; @@ -79,6 +92,7 @@ interface CommonRule { number: FormItemRule; ip: FormItemRule; port: FormItemRule; + domain: FormItemRule; } export const Rules: CommonRule = { @@ -145,4 +159,9 @@ export const Rules: CommonRule = { type: 'number', message: i18n.global.t('commons.rule.port'), }, + domain: { + required: true, + validator: checkDomain, + trigger: 'blur', + }, }; diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index a12c11061..fd6d70650 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -104,12 +104,13 @@ export default { imageName: '支持英文、中文、数字、:.-_,长度1-30', complexityPassword: '请输入 8 位以上、必须含有字母、数字、特殊符号的密码', commonPassword: '请输入 6 位以上长度密码', - linuxName: '支持英文、数字、._,长度1-30', + linuxName: '支持英文、数字、._长度1-30', email: '请输入正确的邮箱', number: '请输入正确的数字', ip: '请输入正确的 IP 地址', port: '请输入正确的端口', selectHelper: '请选择正确的 {0} 文件', + domain: '域名格式错误', }, res: { paramError: '请求失败,请稍后重试!', diff --git a/frontend/src/views/website/website/create/index.vue b/frontend/src/views/website/website/create/index.vue index 03a37bc73..1cdd24137 100644 --- a/frontend/src/views/website/website/create/index.vue +++ b/frontend/src/views/website/website/create/index.vue @@ -169,7 +169,7 @@ let rules = reactive({ appType: [Rules.requiredInput], proxy: [Rules.requiredInput], appinstall: { - name: [Rules.linuxName], + name: [Rules.name], appId: [Rules.requiredSelectBusiness], params: {}, },