fix(数据大屏): 修复把大屏导出为模版,再应用模版新建大屏的时候出现图表标题显示不全的情况 (#18169)

This commit is contained in:
王嘉豪
2026-03-31 11:59:14 +08:00
committed by wangjiahao
parent 0962b8f043
commit 7ff05600fc

View File

@@ -8,6 +8,7 @@ import FileSaver from 'file-saver'
import { deepCopy } from '@/utils/utils'
import { toPng } from 'html-to-image'
import { domToPng } from 'modern-screenshot'
import { initCanvasDataPrepare } from '@/utils/canvasUtils'
const embeddedStore = useEmbedded()
const dvMainStore = dvMainStoreWithOut()
const { canvasStyleData, componentData, canvasViewInfo, canvasViewDataInfo, dvInfo } =
@@ -36,6 +37,28 @@ export function imgUrlTrans(url) {
}
}
function prePareTemplateBaseData(dvId, callback) {
console.log('==test==0')
if (dvInfo.value.type === 'dataV' && canvasStyleData.value.screenAdaptor === 'full') {
console.log('==test==1')
initCanvasDataPrepare(
dvId,
{ busiFlag: 'dataV', resourceTable: 'core' },
function ({ canvasDataResult, canvasStyleResult }) {
callback({
canvasDataResult: JSON.stringify(canvasDataResult),
canvasStyleResult: JSON.stringify(canvasStyleResult)
})
}
)
} else {
callback({
canvasDataResult: JSON.stringify(componentData.value),
canvasStyleResult: JSON.stringify(canvasStyleData.value)
})
}
}
export function download2AppTemplate(downloadType, canvasDom, name, attachParams, callBack?) {
try {
findStaticSource(function (staticResource) {
@@ -47,27 +70,34 @@ export function download2AppTemplate(downloadType, canvasDom, name, attachParams
const snapshot = canvas.toDataURL('image/jpeg', 0.1) // 0.1是图片质量
const templateName = attachParams?.appName ? attachParams.appName : name
if (snapshot !== '') {
const templateInfo = {
name: templateName,
templateType: 'self',
snapshot: snapshot,
dvType: dvInfo.value.type,
nodeType: downloadType,
version: 3,
canvasStyleData: JSON.stringify(canvasStyleData.value),
componentData: JSON.stringify(componentData.value),
dynamicData: JSON.stringify(canvasViewDataTemplate),
staticResource: JSON.stringify(staticResource || {}),
appData: attachParams ? JSON.stringify(attachParams) : null
}
const blob = new Blob([JSON.stringify(templateInfo)], { type: '' })
if (downloadType === 'template') {
FileSaver.saveAs(blob, name + '-TEMPLATE.DET2')
} else if (downloadType === 'app') {
FileSaver.saveAs(blob, templateName + '-APP.DET2APP')
}
}
if (callBack) {
prePareTemplateBaseData(
dvInfo.value.id,
function ({ canvasDataResult, canvasStyleResult }) {
const templateInfo = {
name: templateName,
templateType: 'self',
snapshot: snapshot,
dvType: dvInfo.value.type,
nodeType: downloadType,
version: 3,
canvasStyleData: canvasStyleResult,
componentData: canvasDataResult,
dynamicData: JSON.stringify(canvasViewDataTemplate),
staticResource: JSON.stringify(staticResource || {}),
appData: attachParams ? JSON.stringify(attachParams) : null
}
const blob = new Blob([JSON.stringify(templateInfo)], { type: '' })
if (downloadType === 'template') {
FileSaver.saveAs(blob, name + '-TEMPLATE.DET2')
} else if (downloadType === 'app') {
FileSaver.saveAs(blob, templateName + '-APP.DET2APP')
}
if (callBack) {
callBack()
}
}
)
} else if (callBack) {
callBack()
}
})