做项目要用到唯一性校验,要到后台查询数据库中是否存在,使用自定义校验方法`
在data中定义校验规则 testNumberValidate ,在Rules中使用此校验规则
data(){
//流水号校验
let testNumberValidate = (rule, value, callback) => {
let testNumber = 'PP'+value
let regExp = /^-?[0-9]\d*$/;
if (regExp.test(value) === false) {
return callback(new Error('流水号只能为数字且长度为6位'));
}
//查询测试批次号是否重复
getTestNumberCount(testNumber).then(res => {
console.log(res);
if (res.rel && res.data <= 0) {
callback()
} else if (res.rel && res.data > 0) {
callback('测试批次号已经存在')
}else{
this.$notify.error({
title: '失败',
message: "测试批次号查询重复失败!",
duration: 2000
});
}
})
}
return{
//表单校验项
Rules:{
testNumber:[
{ required: true, message: '请输入批次流水号', trigger: 'blur' },
{ validator:testNumberValidate, trigger: 'blur' },
{min: 6, max: 6, message: '流水号长度为6位', trigger: 'blur'}
]
},
},
校验方法定义:
使用: