<Form.Item
colon={false}
{...formItemLayout}
label={formatMessage({
id: 'DataClassifyConfig.subtypeCode',
defaultMessage: '子分类编码',
})}
>
{getFieldDecorator('subtypeCode', {
initialValue: dataSubType && dataSubType.subtypeCode,
rules: [
{
required: true,
message: formatMessage({
id: 'DataClassifyConfig.checkCode',
defaultMessage: '只能输入大小写英文、符号和数字',
}),
},
{
validator: (rule, value, callback) =>
this.handleValidator(rule, value, callback, dataSubType.subtypeCode),
},
],
})(
<Input
placeholder={formatMessage({
id: 'COMMON_ENTER_TIP',
defaultMessage: '请输入',
})}
/>
)}
</Form.Item>
handleValidator = (rule, value, callback, val) => {
const { list } = this.props;
const codeExp = /^[a-z0-9A-Z]$/;
let isTrue = false;
list.map(o => {
if (o.subtypes.find(item => item.subtypeCode == value) !== undefined && val !== value) {
isTrue = true;
}
return o;
});
if (isTrue) {
callback(
formatMessage({
id: 'DataClassifyConfig.nameAlreadyExists',
defaultMessage: '该名称已存在',
})
);
} else if (!value.match(codeExp)) {
callback(
formatMessage({
id: 'DataClassifyConfig.checkCode',
})
);
} else if (escape(value).indexOf('%u') != -1) {
callback(
formatMessage({
id: 'DataClassifyConfig.checkCode',
})
);
} else if (!(value.indexOf(" ") == -1)) {
callback(
formatMessage({
id: 'DataClassifyConfig.checkCode',
})
);
} else {
callback();
}
};