diff --git a/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue b/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue index 5b76b0f7d2..1236da67c5 100644 --- a/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue +++ b/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue @@ -189,6 +189,11 @@ const checkTemplate = () => { const fileDownload = (downloadType, attachParams) => { downloadStatus.value = true + const mapElementIds = + state.canvasDataPreview + ?.filter(ele => mapChartTypes.includes(ele.innerType)) + .map(ele => ele.id) || [] + mapElementIds.forEach(id => useEmitt().emitter.emit('l7-prepare-picture', id)) nextTick(() => { const vueDom = previewCanvasContainer.value.querySelector('.canvas-container') download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, () => { @@ -198,6 +203,7 @@ const fileDownload = (downloadType, attachParams) => { type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen' } downloadType === 'app' ? exportLogApp(param) : exportLogTemplate(param) + mapElementIds.forEach(id => useEmitt().emitter.emit('l7-unprepare-picture', id)) }) }) } diff --git a/core/core-frontend/src/views/data-visualization/PreviewShow.vue b/core/core-frontend/src/views/data-visualization/PreviewShow.vue index c8176c57c4..9ef30dbf76 100644 --- a/core/core-frontend/src/views/data-visualization/PreviewShow.vue +++ b/core/core-frontend/src/views/data-visualization/PreviewShow.vue @@ -119,9 +119,15 @@ const loadCanvasData = (dvId, weight?, ext?) => { } ) } - +// 地图类图表,需要预先准备图片 +const mapChartTypes = ['bubble-map', 'flow-map', 'heat-map', 'map', 'symbolic-map'] const download = type => { downloadStatus.value = true + const mapElementIds = + state.canvasDataPreview + ?.filter(ele => mapChartTypes.includes(ele.innerType)) + .map(ele => ele.id) || [] + mapElementIds.forEach(id => useEmitt().emitter.emit('l7-prepare-picture', id)) setTimeout(() => { const vueDom = previewCanvasContainer.value.querySelector('.canvas-container') downloadCanvas2(type, vueDom, state.dvInfo.name, () => { @@ -131,12 +137,17 @@ const download = type => { type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen' } type === 'img' ? exportLogImg(param) : exportLogPDF(param) + mapElementIds.forEach(id => useEmitt().emitter.emit('l7-unprepare-picture', id)) }) }, 200) } - const fileDownload = (downloadType, attachParams) => { downloadStatus.value = true + const mapElementIds = + state.canvasDataPreview + ?.filter(ele => mapChartTypes.includes(ele.innerType)) + .map(ele => ele.id) || [] + mapElementIds.forEach(id => useEmitt().emitter.emit('l7-prepare-picture', id)) nextTick(() => { const vueDom = previewCanvasContainer.value.querySelector('.canvas-container') download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, () => { @@ -146,6 +157,7 @@ const fileDownload = (downloadType, attachParams) => { type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen' } downloadType === 'app' ? exportLogApp(param) : exportLogTemplate(param) + mapElementIds.forEach(id => useEmitt().emitter.emit('l7-unprepare-picture', id)) }) }) }