Little-LittleProgrammer
2022-12-07 c7639c490944419a0312a95d5f0375b37d8fee44
fix(basicForm): Fixed an issue where custom rules trigger would not take effect (#2439)

Co-authored-by: 吴安乐 <wuanle@qimao.com>
2个文件已修改
10 ■■■■ 已修改文件
src/components/Form/src/BasicForm.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/components/FormItem.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/BasicForm.vue
@@ -64,6 +64,7 @@
  import { basicProps } from './props';
  import { useDesign } from '/@/hooks/web/useDesign';
  import { cloneDeep } from 'lodash-es';
  import { isFunction, isArray } from '/@/utils/is';
  export default defineComponent({
    name: 'BasicForm',
@@ -242,9 +243,12 @@
        propsRef.value = deepMerge(unref(propsRef) || {}, formProps);
      }
      function setFormModel(key: string, value: any) {
      function setFormModel(key: string, value: any, schema: FormSchema) {
        formModel[key] = value;
        const { validateTrigger } = unref(getBindValue);
        if (isFunction(schema.dynamicRules) || isArray(schema.rules)) {
          return;
        }
        if (!validateTrigger || validateTrigger === 'change') {
          validateFields([key]).catch((_) => {});
        }
src/components/Form/src/components/FormItem.vue
@@ -35,7 +35,7 @@
        default: () => ({}),
      },
      setFormModel: {
        type: Function as PropType<(key: string, value: any) => void>,
        type: Function as PropType<(key: string, value: any, schema: FormSchema) => void>,
        default: null,
      },
      tableAction: {
@@ -253,7 +253,7 @@
            }
            const target = e ? e.target : null;
            const value = target ? (isCheck ? target.checked : target.value) : e;
            props.setFormModel(field, value);
            props.setFormModel(field, value, props.schema);
          },
        };
        const Comp = componentMap.get(component) as ReturnType<typeof defineComponent>;