From aba946f20e71529846e5b49514ef9e04a111c133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=98=89=E6=B6=B5?= Date: Sun, 23 Feb 2020 19:58:37 +0800 Subject: [PATCH] feat(Form): formatter add rule param --- src/field/index.js | 2 +- src/form/README.md | 2 +- src/form/README.zh-CN.md | 2 +- src/form/test/props.spec.js | 9 ++++++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/field/index.js b/src/field/index.js index a0736a95b..7c386bdee 100644 --- a/src/field/index.js +++ b/src/field/index.js @@ -178,7 +178,7 @@ export default createComponent({ let value = this.formValue; if (rule.formatter) { - value = rule.formatter(value); + value = rule.formatter(value, rule); } if (!this.runSyncRule(rule, value)) { diff --git a/src/form/README.md b/src/form/README.md index f6c9cae0b..cb922a9ea 100644 --- a/src/form/README.md +++ b/src/form/README.md @@ -442,7 +442,7 @@ export default { | validator `v2.5.3` | Custom validator | *(value, rule) => boolean \| Promise* | | pattern `v2.5.3` | Regex pattern | *RegExp* | | trigger `v2.5.2` | When to validate the form,can be set to `onChange`、`onBlur` | *string* | -| formatter `v2.5.3` | Format value before validate | *(value) => any* | +| formatter `v2.5.3` | Format value before validate | *(value, rule) => any* | ### Events diff --git a/src/form/README.zh-CN.md b/src/form/README.zh-CN.md index 1dff9b052..635a7f1d4 100644 --- a/src/form/README.zh-CN.md +++ b/src/form/README.zh-CN.md @@ -481,7 +481,7 @@ export default { | validator `v2.5.3` | 通过函数进行校验 | *(value, rule) => boolean \| Promise* | | pattern `v2.5.3` | 通过正则表达式进行校验 | *RegExp* | | trigger `v2.5.2` | 本项规则的触发时机,可选值为`onChange`、`onBlur` | *string* | -| formatter `v2.5.3` | 格式化函数,将表单项的值转换后进行校验 | *(value) => any* | +| formatter `v2.5.3` | 格式化函数,将表单项的值转换后进行校验 | *(value, rule) => any* | ### Events diff --git a/src/form/test/props.spec.js b/src/form/test/props.spec.js index 9494a1f1f..6038487f7 100644 --- a/src/form/test/props.spec.js +++ b/src/form/test/props.spec.js @@ -71,7 +71,14 @@ test('rules prop - formatter', async () => { data() { return { rules: [ - { required: true, formatter: val => val.trim(), message: 'foo' }, + { + message: 'foo', + required: true, + formatter: (val, rule) => { + expect(rule.message).toEqual('foo'); + return val.trim(); + }, + }, ], }; },