From 765064a190b1a24dfb9ae808e99807ddae2ed212 Mon Sep 17 00:00:00 2001 From: Mikasa33 Date: Tue, 25 May 2021 01:17:32 +0800 Subject: [PATCH] feat(form): requires Increase function type value (#649) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(form): requires Increase function type value * feat(form): requires Increase function type value * fix(form): 修复 rules 赋值错误的问题 --- src/components/Form/src/components/FormItem.vue | 8 ++++++-- src/components/Form/src/types/form.ts | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/Form/src/components/FormItem.vue b/src/components/Form/src/components/FormItem.vue index 57b63ac7..b9701e0b 100644 --- a/src/components/Form/src/components/FormItem.vue +++ b/src/components/Form/src/components/FormItem.vue @@ -174,8 +174,12 @@ return Promise.resolve(); } - if ((!rules || rules.length === 0) && required) { - rules = [{ required, validator }]; + const getRequired = isFunction(required) + ? required(unref(getValues)) + : required; + + if ((!rules || rules.length === 0) && getRequired) { + rules = [{ required: getRequired, validator }]; } const requiredRuleIndex: number = rules.findIndex( diff --git a/src/components/Form/src/types/form.ts b/src/components/Form/src/types/form.ts index 1cc0b16c..d5159aac 100644 --- a/src/components/Form/src/types/form.ts +++ b/src/components/Form/src/types/form.ts @@ -149,7 +149,7 @@ export interface FormSchema { }) => Recordable) | object; // Required - required?: boolean; + required?: boolean | ((renderCallbackParams: RenderCallbackParams) => boolean); suffix?: string | number | ((values: RenderCallbackParams) => string | number);