ElementUI表单校验唯一性

做项目要用到唯一性校验,要到后台查询数据库中是否存在,使用自定义校验方法`
在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'}
			]
        },
		       
},

校验方法定义:
ElementUI表单校验唯一性_第1张图片
使用:
ElementUI表单校验唯一性_第2张图片

你可能感兴趣的:(前端,vue,element)