From f186c37dd77c33b30fd3bba641447eaf0a5748e1 Mon Sep 17 00:00:00 2001 From: lyp Date: Thu, 31 Jul 2025 15:44:39 +0800 Subject: [PATCH] =?UTF-8?q?=E9=95=BF=E5=BA=A6=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/route/proj/ProjNew.tsx | 68 ++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/src/route/proj/ProjNew.tsx b/src/route/proj/ProjNew.tsx index 79f5ea9..b118ce6 100644 --- a/src/route/proj/ProjNew.tsx +++ b/src/route/proj/ProjNew.tsx @@ -656,36 +656,20 @@ export default function ProjNew() { rules={[ { required: true, message: '请输入系统全称' }, { - validator: (_rule, value, callback) => { - if (value) { - const modifiedValue = value.replace(/'/g, ''); - if (value !== modifiedValue) { - // 更新表单值 - form.setFieldsValue({ projName: modifiedValue }); - } - } - callback(); - }, + max: 80, + message: '系统全称不能超过80个字符' }, + { + pattern: /^[^']*$/, // 正则表达式:不包含任何英文单引号 + message: '系统全称禁止使用英文单引号(\')' + } + ]} + // normalize={(value) => value?.replace(/'/g, '') || ''} + // normalize={(value) => value?.replace(/['"]/g, '') || ''} + > - {/* { - // 打印值 - // console.log(e.target.value); - if (e.target.value) { - if (isEndsWithKeywords(e.target.value)) { - setShowTip(false) - } else { - setShowTip(true) - } - } else { - setShowTip(false) - } - - - }} style={{ background: '#eeeeee', width: '800px', height: '50px', fontSize: '16px' }} placeholder="请输入系统全称 (注:系统全称建议以“软件”、“系统”、“平台”或“APP”结尾)" /> */} - { // setProjNameValue(value); - if (value) { - if (isEndsWithKeywords(value)) { - setShowTip(false); - } else { - setShowTip(true); - } + // 先检查基础规则是否通过 + const isBasicValid = value + && value.length <= 80 + && !/'/.test(value); + + if (isBasicValid) { + // 基础规则通过后,再检查尾部关键词 + setShowTip(!isEndsWithKeywords(value)); } else { + // 基础规则未通过,不显示尾部提示 setShowTip(false); } }} @@ -775,6 +762,21 @@ export default function ProjNew() { name="projSubName" rules={[ { required: false, message: '请输入系统简称' }, + { + validator: async (_, value) => { + // 获取系统全称的值 + const projName = await form.getFieldValue('projName'); + + // 如果系统简称和全称都存在,验证长度 + if (value && projName) { + if (value.length > projName.length) { + return Promise.reject(new Error('系统简称长度不能大于系统全称')); + } + } + return Promise.resolve(); + } + } + ]} >