diff --git a/core/core-frontend/src/components/data-visualization/canvas/CanvasCore.vue b/core/core-frontend/src/components/data-visualization/canvas/CanvasCore.vue index 095893a6a9..4cbcb52e6f 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/CanvasCore.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/CanvasCore.vue @@ -935,7 +935,7 @@ function removeItem(index) { dvMainStore.removeLinkageInfo(item['id']) if (isMainCanvas(canvasId.value)) { // 主画布中存在隐藏组件 直接从原始componentData中进行删除 - dvMainStore.deleteComponentById(item.id) + dvMainStore.deleteComponentById(item.id, undefined, false) } else { componentData.value.splice(index, 1) } diff --git a/core/core-frontend/src/store/modules/data-visualization/dvMain.ts b/core/core-frontend/src/store/modules/data-visualization/dvMain.ts index 74a1d51c63..56f0283469 100644 --- a/core/core-frontend/src/store/modules/data-visualization/dvMain.ts +++ b/core/core-frontend/src/store/modules/data-visualization/dvMain.ts @@ -552,15 +552,15 @@ export const dvMainStore = defineStore('dataVisualization', { }) }, - deleteComponentById(componentId, componentData = this.componentData) { + deleteComponentById(componentId, componentData = this.componentData, deep = true) { if (componentId) { let indexResult componentData.forEach((component, index) => { if (componentId === component.id) { indexResult = index - } else if (component.component === 'Group') { + } else if (deep && component.component === 'Group') { this.deleteComponentById(componentId, component.propValue || []) - } else if (component.innerType === 'DeTabs') { + } else if (deep && component.innerType === 'DeTabs') { component.propValue.forEach(ele => { this.deleteComponentById(componentId, ele.componentData || []) })