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