From edc2091acc1912254f8e107655833dfc17d9c520 Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Wed, 1 Feb 2023 14:27:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20updateSchema=20=E5=A4=9A?= =?UTF-8?q?=E4=B8=AAfield=20=E5=B1=9E=E6=80=A7=E6=97=B6=EF=BC=8C=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=E4=B8=AA=E6=97=A0=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Form/src/hooks/useFormEvents.ts | 16 ++++++++++------ apps/vue/src/layouts/page/index.vue | 6 ++++-- apps/vue/src/utils/index.ts | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/apps/vue/src/components/Form/src/hooks/useFormEvents.ts b/apps/vue/src/components/Form/src/hooks/useFormEvents.ts index 4c90df66e..0841f8169 100644 --- a/apps/vue/src/components/Form/src/hooks/useFormEvents.ts +++ b/apps/vue/src/components/Form/src/hooks/useFormEvents.ts @@ -227,15 +227,19 @@ export function useFormEvents({ return; } const schema: FormSchema[] = []; - updateData.forEach((item) => { - unref(getSchema).forEach((val) => { + unref(getSchema).forEach((val) => { + let _val; + updateData.forEach((item) => { if (val.field === item.field) { - const newSchema = deepMerge(val, item); - schema.push(newSchema as FormSchema); - } else { - schema.push(val); + _val = item; } }); + if (_val !== undefined && val.field === _val.field) { + const newSchema = deepMerge(val, _val); + schema.push(newSchema as FormSchema); + } else { + schema.push(val); + } }); _setDefaultValue(schema); diff --git a/apps/vue/src/layouts/page/index.vue b/apps/vue/src/layouts/page/index.vue index d1cd11431..5fd9327ba 100644 --- a/apps/vue/src/layouts/page/index.vue +++ b/apps/vue/src/layouts/page/index.vue @@ -15,9 +15,11 @@ appear > - +
+ +
-
+
diff --git a/apps/vue/src/utils/index.ts b/apps/vue/src/utils/index.ts index 0f5b7631f..5aa306b67 100644 --- a/apps/vue/src/utils/index.ts +++ b/apps/vue/src/utils/index.ts @@ -35,7 +35,7 @@ export function setObjToUrlParams(baseUrl: string, obj: any): string { export function deepMerge(src: any = {}, target: any = {}): T { let key: string; - const res: any = cloneDeep(src) + const res: any = cloneDeep(src); for (key in target) { res[key] = isObject(res[key]) ? deepMerge(res[key], target[key]) : (res[key] = target[key]); }