feat(Form): rule validator add rule param (#5704)

This commit is contained in:
陈嘉涵 2020-02-21 20:51:28 +08:00
parent 529e117096
commit 1b3bcf27ee
4 changed files with 10 additions and 6 deletions

View File

@ -147,9 +147,9 @@ export default createComponent({
}
},
runValidator(validator) {
runValidator(rule) {
return new Promise(resolve => {
const returnVal = validator(this.formValue);
const returnVal = rule.validator(this.formValue, rule);
if (isPromise(returnVal)) {
return returnVal.then(resolve);
@ -183,7 +183,7 @@ export default createComponent({
}
if (rule.validator) {
return this.runValidator(rule.validator).then(result => {
return this.runValidator(rule).then(result => {
if (result === false) {
this.validateMessage = rule.message;
}

View File

@ -439,7 +439,7 @@ export default {
|------|------|------|
| message | Error message | *string* |
| required | Whether to be a required field | *boolean* |
| validator | Custom validator | *() => boolean \| Promise* |
| validator | Custom validator | *(value, rule) => boolean \| Promise* |
| pattern `v2.5.3` | Regex pattern | *RegExp* |
| trigger `v2.5.2` | When to validate the formcan be set to `onChange``onBlur` | *string* |

View File

@ -478,7 +478,7 @@ export default {
|------|------|------|
| message | 错误提示文案 | *string* |
| required | 是否为必选字段 | *boolean* |
| validator | 通过函数进行校验 | *() => boolean \| Promise* |
| validator | 通过函数进行校验 | *(value, rule) => boolean \| Promise* |
| pattern `v2.5.3` | 通过正则表达式进行校验 | *RegExp* |
| trigger `v2.5.2` | 本项规则的触发时机,可选值为`onChange``onBlur` | *string* |

View File

@ -72,7 +72,11 @@ test('rules prop - async validator', async () => {
return {
rules: [
{
validator: () => new Promise(resolve => resolve(true)),
validator: (value, rule) => {
expect(value).toEqual('123');
expect(typeof rule).toEqual('object');
return new Promise(resolve => resolve(true));
},
message: 'should pass',
},
{