1、重名校验
添加和编辑保存情况下进行校验,编辑可保存原有名字,过滤自己(id相同判断value是否相同,value不相同比较其他数据,重名校验)
所需条件:后端返回所有名字的接口数组
<FormItem {...formItemLayout} label="分词器英文名称:" required>
<Input
{...init('tokenEng', {
rules: [
{
required: true,
pattern: /^(?!_)(?!.*?_$)[a-zA-z_]+$/g,
message: '只能输入英文、下划线!',
},
{
validator(_rule, value, callback) {
const index = wordList.findIndex((item) => item.tokenChi == value);
const name = wordList.find((item) => item.id == values.id);
if (type == 'edit') {
index != -1
? value == name.tokenChi
? callback()
: callback('分词器中文名称已存在!')
: callback();
// if (type === 'edit') {
// !nameEng ? callback('分词器名称已存在!') : callback('');
} else {
index != -1 ? callback('分词器中文名称已存在!') : callback();
}
},
},
/*{
validator(_rule, value, callback) {
const index = wordList.findIndex((item) => item.tokenEng == value);
const nameEng = wordList.some((item) => item.id == values.id && item.tokenEng == value);
if (type == 'edit') {
!nameEng ? callback('分词器名称已存在!') : callback();
} else {
index != -1 ? callback('分词器名称已存在!') : callback();
}
},
},*/
],
})}
placeholder="请输入分词器英文名"
maxLength={20}
/>
</FormItem>
2、清空校验
// 清空校验
const radioChange = (e) => {
field.setValue('isLoadFile', e);
+e === 2 && field.reset('dictFile');
};
<FormItem label="加载词典文件:" required>
<RadioGroup
name="isLoadFile"
{...init('isLoadFile', {
initValue: '1',
})}
onChange={radioChange}
>
<Radio value="1">是</Radio>
<Radio value="2">否</Radio>
</RadioGroup>
</FormItem>
<Form field={field} {...formItemLayout}>
<FormItem label="词典名称:" required>
<Input
placeholder="请输入词典英文名"
maxLength={20}
name="dictFile"
{...init('dictFile', {
initValue: '',
rules: [
{
required: true,
message: '请输入正确格式的英文名',
},
{
required: true,
pattern: /^(?!_)(?!.*?_$)[a-zA-Z_]+$/g,
message: '只能输入英文、下划线!',
},
],
})}
/>
</FormItem>