fix: 修复应用导出空白问题 (#17530)

This commit is contained in:
王嘉豪
2025-12-04 10:30:41 +08:00
committed by GitHub
parent aac5d4d379
commit ca70d0b721
3 changed files with 11 additions and 28 deletions

View File

@@ -6,7 +6,6 @@ import { storeToRefs } from 'pinia'
import { findResourceAsBase64 } from '@/api/staticResource'
import FileSaver from 'file-saver'
import { deepCopy } from '@/utils/utils'
import { toPng } from 'html-to-image'
import { domToPng } from 'modern-screenshot'
const embeddedStore = useEmbedded()
const dvMainStore = dvMainStoreWithOut()
@@ -36,15 +35,7 @@ export function imgUrlTrans(url) {
}
}
export function download2AppTemplate(
downloadType,
canvasDom,
name,
attachParams,
componentDataSource = componentData.value,
canvasStyleDataSource = canvasStyleData.value,
callBack?
) {
export function download2AppTemplate(downloadType, canvasDom, name, attachParams, callBack?) {
try {
findStaticSource(function (staticResource) {
html2canvas(canvasDom).then(canvas => {
@@ -61,8 +52,8 @@ export function download2AppTemplate(
dvType: dvInfo.value.type,
nodeType: downloadType,
version: 3,
canvasStyleData: JSON.stringify(canvasStyleDataSource),
componentData: JSON.stringify(componentDataSource),
canvasStyleData: JSON.stringify(canvasStyleData.value),
componentData: JSON.stringify(componentData.value),
dynamicData: JSON.stringify(canvasViewDataTemplate),
staticResource: JSON.stringify(staticResource || {}),
appData: attachParams ? JSON.stringify(attachParams) : null

View File

@@ -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, null, null, () => {
download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, () => {
downloadStatus.value = false
const param = {
id: state.dvInfo.id,

View File

@@ -139,22 +139,14 @@ const fileDownload = (downloadType, attachParams) => {
downloadStatus.value = true
nextTick(() => {
const vueDom = previewCanvasContainer.value.querySelector('.canvas-container')
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)
download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, () => {
downloadStatus.value = false
const param = {
id: state.dvInfo.id,
type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen'
}
)
downloadType === 'app' ? exportLogApp(param) : exportLogTemplate(param)
})
})
}