diff --git a/src/components/Form/src/BasicForm.vue b/src/components/Form/src/BasicForm.vue index 8e4b6292..d512eb36 100644 --- a/src/components/Form/src/BasicForm.vue +++ b/src/components/Form/src/BasicForm.vue @@ -118,9 +118,9 @@ const getSchema = computed((): FormSchema[] => { const schemas: FormSchema[] = unref(schemaRef) || (unref(getProps).schemas as any); for (const schema of schemas) { - const { defaultValue, component } = schema; + const { defaultValue, component, isHandleDateDefaultValue = true } = schema; // handle date type - if (defaultValue && dateItemType.includes(component)) { + if (isHandleDateDefaultValue && defaultValue && dateItemType.includes(component)) { if (!Array.isArray(defaultValue)) { schema.defaultValue = dateUtil(defaultValue); } else { diff --git a/src/components/Form/src/hooks/useFormValues.ts b/src/components/Form/src/hooks/useFormValues.ts index de30db99..a4865993 100644 --- a/src/components/Form/src/hooks/useFormValues.ts +++ b/src/components/Form/src/hooks/useFormValues.ts @@ -108,8 +108,10 @@ export function useFormValues({ const [startTime, endTime]: string[] = values[field]; - values[startTimeKey] = dateUtil(startTime).format(format); - values[endTimeKey] = dateUtil(endTime).format(format); + const [startTimeFormat, endTimeFormat] = Array.isArray(format) ? format : [format, format]; + + values[startTimeKey] = dateUtil(startTime).format(startTimeFormat); + values[endTimeKey] = dateUtil(endTime).format(endTimeFormat); Reflect.deleteProperty(values, field); } diff --git a/src/components/Form/src/types/form.ts b/src/components/Form/src/types/form.ts index 31e32603..f54b1894 100644 --- a/src/components/Form/src/types/form.ts +++ b/src/components/Form/src/types/form.ts @@ -7,7 +7,7 @@ import type { TableActionType } from '/@/components/Table/src/types/table'; import type { CSSProperties } from 'vue'; import type { RowProps } from 'ant-design-vue/lib/grid/Row'; -export type FieldMapToTime = [string, [string, string], string?][]; +export type FieldMapToTime = [string, [string, string], (string | [string, string])?][]; export type Rule = RuleObject & { trigger?: 'blur' | 'change' | ['change', 'blur']; @@ -175,6 +175,10 @@ export interface FormSchema { // 默认值 defaultValue?: any; + + // 是否自动处理与时间相关组件的默认值 + isHandleDateDefaultValue?: boolean; + isAdvanced?: boolean; // Matching details components