feat: ElementUI的form组件使用rules时动态计算并传入组件实例
parent
36ce9a98cb
commit
f2fa2e4efa
@ -0,0 +1,57 @@
|
||||
export const checkIdNumber = (context) => {
|
||||
const { form } = context;
|
||||
return (rule, value, callback) => {
|
||||
if (!form.idType) {
|
||||
return callback(new Error('请选择证件类型'));
|
||||
}
|
||||
if (form.idType === '身份证') {
|
||||
if (!/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|21|22|23|24|25|26|27|28)\d{3}[0-9Xx]$/i.test(value)) {
|
||||
callback(new Error('身份证格式不正确'));
|
||||
}
|
||||
} else if (form.idType === '护照') {
|
||||
if (!/^[1-9]\d{7}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|21|22|23|24|25|26|27|28)\d{3}[0-9Xx]$/i.test(value)) {
|
||||
callback(new Error('护照格式不正确'));
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
export const getRules = (context) => {
|
||||
console.log(context, '传递过来的context内容');
|
||||
return {
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
age: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入年龄',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
idType: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择证件类型',
|
||||
trigger: 'change',
|
||||
},
|
||||
],
|
||||
// 这里演示证件号码校验,必须依赖证件类型的值,比如证件类型是身份证,校验一种格式,是护照,校验另一种格式,等等
|
||||
idNumber: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入证件号码',
|
||||
trigger: 'blur',
|
||||
},
|
||||
{
|
||||
required: true,
|
||||
validator: checkIdNumber(context),
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
Loading…
Reference in New Issue