|
@@ -14,6 +14,8 @@ import { Store } from '@vben-core/shared/store';
|
|
|
import {
|
|
|
bindMethods,
|
|
|
createMerge,
|
|
|
+ isDate,
|
|
|
+ isDayjsObject,
|
|
|
isFunction,
|
|
|
isObject,
|
|
|
mergeWithArrayOverride,
|
|
@@ -252,10 +254,19 @@ export class FormApi {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 合并算法有待改进,目前的算法不支持object类型的值。
|
|
|
+ * antd的日期时间相关组件的值类型为dayjs对象
|
|
|
+ * element-plus的日期时间相关组件的值类型可能为Date对象
|
|
|
+ * 以上两种类型需要排除深度合并
|
|
|
+ */
|
|
|
const fieldMergeFn = createMerge((obj, key, value) => {
|
|
|
if (key in obj) {
|
|
|
obj[key] =
|
|
|
- !Array.isArray(obj[key]) && isObject(obj[key])
|
|
|
+ !Array.isArray(obj[key]) &&
|
|
|
+ isObject(obj[key]) &&
|
|
|
+ !isDayjsObject(obj[key]) &&
|
|
|
+ !isDate(obj[key])
|
|
|
? fieldMergeFn(obj[key], value)
|
|
|
: value;
|
|
|
}
|