Prechádzať zdrojové kódy

fix(form): ensure that the Form component does not verify hidden form items

Vben 4 rokov pred
rodič
commit
43a45b7c99

+ 2 - 0
CHANGELOG.zh_CN.md

@@ -4,6 +4,7 @@
 
 - `BasicTree` 新增`clickRowToExpand`,用于单击树节点展开
 - 新增 SvgIcon 插件及示例
+- 账号管理界面增加左侧部门树
 
 ### ⚡ Performance Improvements
 
@@ -22,6 +23,7 @@
 - 修复账号管理新增未清空旧数据
 - form 组件应允许 setFieldsValue 方法值为 null 或者 undefined
 - 确保单级面包屑正确跳转
+- 确保 Form 组件不校验隐藏的表单项
 
 ## 2.0.2 (2021-03-04)
 

+ 5 - 1
src/components/Form/src/components/FormItem.tsx

@@ -97,7 +97,7 @@ export default defineComponent({
       return disabled;
     });
 
-    function getShow() {
+    function getShow(): { isShow: boolean; isIfShow: boolean } {
       const { show, ifShow } = props.schema;
       const { showAdvancedButton } = props.formProps;
       const itemIsAdvanced = showAdvancedButton
@@ -151,6 +151,10 @@ export default defineComponent({
       const { rulesMessageJoinLabel: globalRulesMessageJoinLabel } = props.formProps;
       if (requiredRuleIndex !== -1) {
         const rule = rules[requiredRuleIndex];
+        const { isShow } = getShow();
+        if (!isShow) {
+          rule.required = false;
+        }
         if (rule.required && component) {
           if (!Reflect.has(rule, 'type')) {
             rule.type = 'string';

+ 1 - 0
src/components/Form/src/hooks/useFormEvents.ts

@@ -183,6 +183,7 @@ export function useFormEvents({
   async function validateFields(nameList?: NamePath[] | undefined) {
     return unref(formElRef)?.validateFields(nameList);
   }
+
   async function validate(nameList?: NamePath[] | undefined) {
     return await unref(formElRef)?.validate(nameList);
   }

+ 1 - 1
src/views/demo/system/account/account.data.ts

@@ -61,7 +61,7 @@ export const accountFormSchema: FormSchema[] = [
     label: '密码',
     component: 'InputPassword',
     required: true,
-    show: true,
+    show: false,
   },
   {
     label: '角色',