Sfoglia il codice sorgente

feat(form): requires Increase function type value (#649)

* feat(form): requires Increase function type value

* feat(form): requires Increase function type value

* fix(form): 修复 rules 赋值错误的问题
Mikasa33 3 anni fa
parent
commit
765064a190

+ 6 - 2
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(

+ 1 - 1
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);