From 6fb3526a1af518c71cdf426848d73c8ac48462ff Mon Sep 17 00:00:00 2001 From: IchliebedichZhu <54796446@qq.com> Date: Fri, 29 Mar 2024 14:55:26 +0000 Subject: [PATCH] fix: proxy to object problem --- src/components/modules/widgets/pageStyle.vue | 3 ++- src/utils/utils.ts | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/modules/widgets/pageStyle.vue b/src/components/modules/widgets/pageStyle.vue index aba9449..6886382 100644 --- a/src/components/modules/widgets/pageStyle.vue +++ b/src/components/modules/widgets/pageStyle.vue @@ -51,6 +51,7 @@ import TabPanel from '@palxp/color-picker/comps/TabPanel.vue' import { usePageStore, useWidgetStore } from '@/pinia' import { TPageState, } from '@/pinia/design/page' import { storeToRefs } from 'pinia' +import { proxyToObject } from '@/utils/utils' type TState = { activeNames: string[] @@ -120,7 +121,7 @@ function onChangeMode(value: string) { function change() { state.mode = state.modes[0] state.tag = true - state.innerElement = JSON.parse(JSON.stringify(dActiveElement.value)) + state.innerElement = proxyToObject(dActiveElement.value || {}) state.innerElement.backgroundImage && (state.mode = state.modes[1]) } function changeValue() { diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 7d0bf54..952bd14 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -99,7 +99,10 @@ export const proxyToObject =

>(proxy: P, seen = ne seen.set(proxy, obj); for (let key in proxy) { if (proxy.hasOwnProperty(key)) { - obj[key] = proxyToObject(proxy[key], seen); + const value = proxyToObject(proxy[key], seen); + if (value !== '[Circular Reference]') { + obj[key] = value; + } } } }