|
|
|
|
@ -13,13 +13,13 @@ import { toRaw } from 'vue';
|
|
|
|
|
import { Store } from '@vben-core/shared/store';
|
|
|
|
|
import {
|
|
|
|
|
bindMethods,
|
|
|
|
|
createMerge,
|
|
|
|
|
isFunction,
|
|
|
|
|
isObject,
|
|
|
|
|
mergeWithArrayOverride,
|
|
|
|
|
StateHandler,
|
|
|
|
|
} from '@vben-core/shared/utils';
|
|
|
|
|
|
|
|
|
|
import { objectPick } from '@vueuse/core';
|
|
|
|
|
|
|
|
|
|
function getDefaultState(): VbenFormProps {
|
|
|
|
|
return {
|
|
|
|
|
actionWrapperClass: '',
|
|
|
|
|
@ -250,8 +250,17 @@ export class FormApi {
|
|
|
|
|
form.setValues(fields, shouldValidate);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const fieldNames = this.state?.schema?.map((item) => item.fieldName) ?? [];
|
|
|
|
|
const filteredFields = objectPick(fields, fieldNames);
|
|
|
|
|
|
|
|
|
|
const fieldMergeFn = createMerge((obj, key, value) => {
|
|
|
|
|
if (key in obj) {
|
|
|
|
|
obj[key] =
|
|
|
|
|
!Array.isArray(obj[key]) && isObject(obj[key])
|
|
|
|
|
? fieldMergeFn(obj[key], value)
|
|
|
|
|
: value;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
});
|
|
|
|
|
const filteredFields = fieldMergeFn(fields, form.values);
|
|
|
|
|
form.setValues(filteredFields, shouldValidate);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|