From d36b8b57c75c45fc9b8cf38d458d3a0d836cead0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=98=89=E8=B1=AA?= <42510293+ziyujiahao@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:42:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E7=BB=84=E4=BB=B6=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20(#17453)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/utils/imgUtils.ts | 14 ++++++++-- .../views/dashboard/DashboardPreviewShow.vue | 2 +- .../views/data-visualization/PreviewShow.vue | 28 +++++++++++++------ 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/core/core-frontend/src/utils/imgUtils.ts b/core/core-frontend/src/utils/imgUtils.ts index 2414516539..5835f9583a 100644 --- a/core/core-frontend/src/utils/imgUtils.ts +++ b/core/core-frontend/src/utils/imgUtils.ts @@ -36,7 +36,15 @@ export function imgUrlTrans(url) { } } -export function download2AppTemplate(downloadType, canvasDom, name, attachParams, callBack?) { +export function download2AppTemplate( + downloadType, + canvasDom, + name, + attachParams, + componentDataSource = componentData.value, + canvasStyleDataSource = canvasStyleData.value, + callBack? +) { try { findStaticSource(function (staticResource) { html2canvas(canvasDom).then(canvas => { @@ -53,8 +61,8 @@ export function download2AppTemplate(downloadType, canvasDom, name, attachParams dvType: dvInfo.value.type, nodeType: downloadType, version: 3, - canvasStyleData: JSON.stringify(canvasStyleData.value), - componentData: JSON.stringify(componentData.value), + canvasStyleData: JSON.stringify(canvasStyleDataSource), + componentData: JSON.stringify(componentDataSource), dynamicData: JSON.stringify(canvasViewDataTemplate), staticResource: JSON.stringify(staticResource || {}), appData: attachParams ? JSON.stringify(attachParams) : null diff --git a/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue b/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue index 5b76b0f7d2..19c56a470a 100644 --- a/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue +++ b/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue @@ -191,7 +191,7 @@ const fileDownload = (downloadType, attachParams) => { downloadStatus.value = true nextTick(() => { const vueDom = previewCanvasContainer.value.querySelector('.canvas-container') - download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, () => { + download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, null, null, () => { downloadStatus.value = false const param = { id: state.dvInfo.id, diff --git a/core/core-frontend/src/views/data-visualization/PreviewShow.vue b/core/core-frontend/src/views/data-visualization/PreviewShow.vue index bcaba8ffb5..fe26ad6d79 100644 --- a/core/core-frontend/src/views/data-visualization/PreviewShow.vue +++ b/core/core-frontend/src/views/data-visualization/PreviewShow.vue @@ -103,8 +103,8 @@ const loadCanvasData = (dvId, weight?, ext?) => { dataInitState.value = true // 修复铺满全屏模版导出错位问题 if (props.showPosition !== 'multiplexing') { - dvMainStore.setCanvasStyle(deepCopy(canvasStyleResult)) - dvMainStore.setComponentData(deepCopy(canvasDataResult)) + state.canvasDataPreviewSource = deepCopy(canvasDataResult) + state.canvasStylePreviewSource = deepCopy(canvasStyleResult) } if (props.showPosition === 'preview') { @@ -139,14 +139,22 @@ const fileDownload = (downloadType, attachParams) => { downloadStatus.value = true nextTick(() => { const vueDom = previewCanvasContainer.value.querySelector('.canvas-container') - download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, () => { - downloadStatus.value = false - const param = { - id: state.dvInfo.id, - type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen' + download2AppTemplate( + downloadType, + vueDom, + state.dvInfo.name, + attachParams, + state.canvasDataPreviewSource, + state.canvasStylePreviewSource, + () => { + downloadStatus.value = false + const param = { + id: state.dvInfo.id, + type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen' + } + downloadType === 'app' ? exportLogApp(param) : exportLogTemplate(param) } - downloadType === 'app' ? exportLogApp(param) : exportLogTemplate(param) - }) + ) }) } @@ -201,6 +209,8 @@ const dataVKeepSize = computed(() => { }) const state = reactive({ + canvasDataPreviewSource: null, + canvasStylePreviewSource: null, canvasDataPreview: null, canvasStylePreview: null, canvasViewInfoPreview: null,