diff --git a/src/components/Form/src/BasicForm.vue b/src/components/Form/src/BasicForm.vue index ea340b94..97c4cf3b 100644 --- a/src/components/Form/src/BasicForm.vue +++ b/src/components/Form/src/BasicForm.vue @@ -63,6 +63,7 @@ import { basicProps } from './props'; import { useDesign } from '@/hooks/web/useDesign'; import { cloneDeep } from 'lodash-es'; + import { TableActionType } from '@/components/Table'; defineOptions({ name: 'BasicForm' }); @@ -124,7 +125,12 @@ const getSchema = computed((): FormSchema[] => { const schemas: FormSchema[] = unref(schemaRef) || (unref(getProps).schemas as any); for (const schema of schemas) { - const { defaultValue, component, componentProps, isHandleDateDefaultValue = true } = schema; + const { + defaultValue, + component, + componentProps = {}, + isHandleDateDefaultValue = true, + } = schema; // handle date type if ( isHandleDateDefaultValue && @@ -132,7 +138,17 @@ component && dateItemType.includes(component) ) { - const valueFormat = componentProps ? componentProps['valueFormat'] : null; + const opt = { + schema, + tableAction: props.tableAction ?? ({} as TableActionType), + formModel, + formActionType: {} as FormActionType, + }; + const valueFormat = componentProps + ? typeof componentProps === 'function' + ? componentProps(opt)['valueFormat'] + : componentProps['valueFormat'] + : null; if (!Array.isArray(defaultValue)) { schema.defaultValue = valueFormat ? dateUtil(defaultValue).format(valueFormat)