From 7ff05600fcf327b1581fbbc2042981a951d84b62 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: Tue, 31 Mar 2026 11:59:14 +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=8A=8A=E5=A4=A7=E5=B1=8F=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E4=B8=BA=E6=A8=A1=E7=89=88=EF=BC=8C=E5=86=8D=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E6=A8=A1=E7=89=88=E6=96=B0=E5=BB=BA=E5=A4=A7=E5=B1=8F=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E5=87=BA=E7=8E=B0=E5=9B=BE=E8=A1=A8=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5=20(#18169)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/utils/imgUtils.ts | 72 +++++++++++++++++------- 1 file changed, 51 insertions(+), 21 deletions(-) diff --git a/core/core-frontend/src/utils/imgUtils.ts b/core/core-frontend/src/utils/imgUtils.ts index 91ff4efce1..629cbfba51 100644 --- a/core/core-frontend/src/utils/imgUtils.ts +++ b/core/core-frontend/src/utils/imgUtils.ts @@ -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() } })