创建项目添加新规则

This commit is contained in:
lyp 2025-08-27 10:06:55 +08:00
parent 63401b10b0
commit 597da8767d

View File

@ -300,12 +300,12 @@ export default function ProjNew() {
}) })
} }
//判断是否以“软件”、“系统”、“平台”或“APP”结尾 //判断是否以“软件”、“系统”、“平台”或“APP”结尾
function isEndsWithKeywords(str: string) { // function isEndsWithKeywords(str: string) {
const keywords = ["软件", "系统", "平台", "APP"]; // const keywords = ["软件", "系统", "平台", "APP"];
return keywords.some(keyword => str.endsWith(keyword)); // return keywords.some(keyword => str.endsWith(keyword));
} // }
// 提示信息是否显示 // 提示信息是否显示
const [showTip, setShowTip] = useState(false) // const [showTip, setShowTip] = useState(false)
const [page, setPage] = useState(1); const [page, setPage] = useState(1);
const packColumns: TableColumnsType<DataType> = [ const packColumns: TableColumnsType<DataType> = [
{ {
@ -662,6 +662,16 @@ export default function ProjNew() {
{ {
pattern: /^[^']*$/, // 正则表达式:不包含任何英文单引号 pattern: /^[^']*$/, // 正则表达式:不包含任何英文单引号
message: '系统全称禁止使用英文单引号(\')' message: '系统全称禁止使用英文单引号(\')'
},
{
validator: async (_, value) => {
if (!value) return Promise.resolve();
const keywords = ["软件", "系统", "平台", "APP", "小程序"];
if (keywords.some(keyword => value.endsWith(keyword))) {
return Promise.resolve();
}
return Promise.reject(new Error('系统全称须以“软件”、“系统”、“平台”、“APP”或“小程序”结尾'));
}
} }
]} ]}
@ -682,32 +692,32 @@ export default function ProjNew() {
}} }}
placeholder="请输入系统全称 (注系统全称建议以“软件”、“系统”、“平台”或“APP”结尾)" placeholder="请输入系统全称 (注系统全称建议以“软件”、“系统”、“平台”或“APP”结尾)"
options={selectList} options={selectList}
onSearch={(value) => { // onSearch={(value) => {
// setProjNameValue(value); // // setProjNameValue(value);
// 先检查基础规则是否通过 // // 先检查基础规则是否通过
const isBasicValid = value // const isBasicValid = value
&& value.length <= 80 // && value.length <= 80
&& !/'/.test(value); // && !/'/.test(value);
if (isBasicValid) { // if (isBasicValid) {
// 基础规则通过后,再检查尾部关键词 // // 基础规则通过后,再检查尾部关键词
setShowTip(!isEndsWithKeywords(value)); // setShowTip(!isEndsWithKeywords(value));
} else { // } else {
// 基础规则未通过,不显示尾部提示 // // 基础规则未通过,不显示尾部提示
setShowTip(false); // setShowTip(false);
} // }
}} // }}
onChange={(value) => { onChange={(value) => {
// setProjNameValue(value); // setProjNameValue(value);
// console.log(value); // console.log(value);
if (value) { if (value) {
// getHistoryList(value); // getHistoryList(value);
if (isEndsWithKeywords(value)) { // if (isEndsWithKeywords(value)) {
setShowTip(false); // setShowTip(false);
} else { // } else {
setShowTip(true); // setShowTip(true);
} // }
// 清除之前的定时器 // 清除之前的定时器
if (debounceTimer) { if (debounceTimer) {
clearTimeout(debounceTimer); clearTimeout(debounceTimer);
@ -721,7 +731,7 @@ export default function ProjNew() {
// 更新定时器 ID // 更新定时器 ID
setDebounceTimer(newTimer); setDebounceTimer(newTimer);
} else { } else {
setShowTip(false); // setShowTip(false);
setSelectList([]) setSelectList([])
} }
}} }}
@ -746,11 +756,11 @@ export default function ProjNew() {
top: 10, top: 10,
display: disable ? 'none' : 'unset', display: disable ? 'none' : 'unset',
}}></a> }}></a>
<div style={{ {/* <div style={{
position: 'absolute', left: 165, position: 'absolute', left: 165,
display: showTip ? 'unset' : 'none', display: showTip ? 'unset' : 'none',
color: 'green', color: 'green',
}}>APP</div> }}>APP</div> */}
</div> </div>
<div style={{ <div style={{
display: 'flex', display: 'flex',
@ -1818,11 +1828,11 @@ export default function ProjNew() {
form.setFieldsValue({ form.setFieldsValue({
projName: item projName: item
}); });
if (isEndsWithKeywords(item)) { // if (isEndsWithKeywords(item)) {
setShowTip(false); // setShowTip(false);
} else { // } else {
setShowTip(true); // setShowTip(true);
} // }
messageApi.success(`已选择${item}`); messageApi.success(`已选择${item}`);
setRecommendModal(false) setRecommendModal(false)