|
|
@ -13,13 +13,13 @@ import { toRaw } from 'vue'; |
|
|
import { Store } from '@vben-core/shared/store'; |
|
|
import { Store } from '@vben-core/shared/store'; |
|
|
import { |
|
|
import { |
|
|
bindMethods, |
|
|
bindMethods, |
|
|
|
|
|
createMerge, |
|
|
isFunction, |
|
|
isFunction, |
|
|
|
|
|
isObject, |
|
|
mergeWithArrayOverride, |
|
|
mergeWithArrayOverride, |
|
|
StateHandler, |
|
|
StateHandler, |
|
|
} from '@vben-core/shared/utils'; |
|
|
} from '@vben-core/shared/utils'; |
|
|
|
|
|
|
|
|
import { objectPick } from '@vueuse/core'; |
|
|
|
|
|
|
|
|
|
|
|
function getDefaultState(): VbenFormProps { |
|
|
function getDefaultState(): VbenFormProps { |
|
|
return { |
|
|
return { |
|
|
actionWrapperClass: '', |
|
|
actionWrapperClass: '', |
|
|
@ -250,8 +250,17 @@ export class FormApi { |
|
|
form.setValues(fields, shouldValidate); |
|
|
form.setValues(fields, shouldValidate); |
|
|
return; |
|
|
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); |
|
|
form.setValues(filteredFields, shouldValidate); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|