fix(basicForm): Fixed an issue where custom rules trigger would not take effect (#2439)

Co-authored-by: 吴安乐 <wuanle@qimao.com>
This commit is contained in:
Little-LittleProgrammer 2022-12-07 17:11:42 +08:00 committed by GitHub
parent 6af828260e
commit c7639c4909
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 3 deletions

View File

@ -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((_) => {});
}

View File

@ -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>;