瀏覽代碼

fix: 修复BasicForm使用componentProps函数返回valueFormat时DatePicker无法正确格式化的问题 (#3357)

* 修复BasicForm使用componentProps函数返回valueFormat时DatePicker无法正确格式化的问题

* chore: resolve prettier error

---------

Co-authored-by: invalid w <wangjuesix@gmail.com>
松鼠 1 年之前
父節點
當前提交
beee35173b
共有 1 個文件被更改,包括 18 次插入2 次删除
  1. 18 2
      src/components/Form/src/BasicForm.vue

+ 18 - 2
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)