el-validate-schema.js utils中
定义校验规则 以及自定义校验规则
export default {
name: [
{ required: true, message: '请输入姓名' },
{ min: 2, max: 6, message: '名字长度2-6之间' },
],
age: [{ required: true, type: 'number', message: '请输入年龄' }],
sexLabel: [{ required: true, message: '请选择性别' }],
birth: [{ type: 'date', required: true, message: '请选择日期' }],
addr: [{ required: true, message: '请输入地址' }],
}
export const customRules = (formInstance, formData) => ({
account: [
{
required: true,
validator: validateAccount(formInstance, formData),
},
],
pass: [
{
required: true,
validator: validatePass(formInstance, formData),
},
],
})
const validateAccount = (formInstance, formData) => (rule, value, callback) => {
if (!value) {
return callback(new Error('账户不能为空'))
}
callback()
}
const validatePass = (formInstance, formData) => (rule, value, callback) => {
if (!value) {
return callback(new Error('密码不能为空'))
}
callback()
}
自带校验规则的使用
<el-form
:model="userData"
ref="ruleForm"
:rules="rules"
status-icon
label-position="right"
label-width="80px"
>
<el-form-item label="姓名" prop="name">
<el-input v-model="userData.name" placeholder="请输入姓名" />
</el-form-item>
自定义校验规则的使用
import { customRules } from '@/utils/el-validate-schema'
const rules = customRules(ruleForm, loginData)
<el-form
:model="loginData"
ref="ruleForm"
:rules="rules"
status-icon
size="large"
>