mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-01-25 02:58:43 +08:00
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:
parent
6af828260e
commit
c7639c4909
@ -64,6 +64,7 @@
|
|||||||
import { basicProps } from './props';
|
import { basicProps } from './props';
|
||||||
import { useDesign } from '/@/hooks/web/useDesign';
|
import { useDesign } from '/@/hooks/web/useDesign';
|
||||||
import { cloneDeep } from 'lodash-es';
|
import { cloneDeep } from 'lodash-es';
|
||||||
|
import { isFunction, isArray } from '/@/utils/is';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'BasicForm',
|
name: 'BasicForm',
|
||||||
@ -242,9 +243,12 @@
|
|||||||
propsRef.value = deepMerge(unref(propsRef) || {}, formProps);
|
propsRef.value = deepMerge(unref(propsRef) || {}, formProps);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setFormModel(key: string, value: any) {
|
function setFormModel(key: string, value: any, schema: FormSchema) {
|
||||||
formModel[key] = value;
|
formModel[key] = value;
|
||||||
const { validateTrigger } = unref(getBindValue);
|
const { validateTrigger } = unref(getBindValue);
|
||||||
|
if (isFunction(schema.dynamicRules) || isArray(schema.rules)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!validateTrigger || validateTrigger === 'change') {
|
if (!validateTrigger || validateTrigger === 'change') {
|
||||||
validateFields([key]).catch((_) => {});
|
validateFields([key]).catch((_) => {});
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
default: () => ({}),
|
default: () => ({}),
|
||||||
},
|
},
|
||||||
setFormModel: {
|
setFormModel: {
|
||||||
type: Function as PropType<(key: string, value: any) => void>,
|
type: Function as PropType<(key: string, value: any, schema: FormSchema) => void>,
|
||||||
default: null,
|
default: null,
|
||||||
},
|
},
|
||||||
tableAction: {
|
tableAction: {
|
||||||
@ -253,7 +253,7 @@
|
|||||||
}
|
}
|
||||||
const target = e ? e.target : null;
|
const target = e ? e.target : null;
|
||||||
const value = target ? (isCheck ? target.checked : target.value) : e;
|
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>;
|
const Comp = componentMap.get(component) as ReturnType<typeof defineComponent>;
|
||||||
|
Loading…
Reference in New Issue
Block a user