From 4fb021ced44d6add49a67679e5503af0a4baabbb Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Tue, 8 Apr 2025 20:09:10 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BF=AE=E5=A4=8D=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E7=9B=AE=E6=A0=87=E5=A4=A7=E5=B1=8F=E8=A2=AB=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E5=8F=91=E5=B8=83-=E8=B7=B3=E8=BD=AC=E5=BC=B9?= =?UTF-8?q?=E6=A1=86=E4=BB=8D=E5=B1=95=E7=A4=BA=E6=B8=85=E9=99=A4=E6=89=80?= =?UTF-8?q?=E6=9C=89=E8=81=94=E5=8A=A8=E6=93=8D=E4=BD=9C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/utils/canvasUtils.ts | 31 ++++++++++++------- .../data-visualization/PreviewCanvas.vue | 25 ++++++++------- .../PreviewCanvasMobile.vue | 23 +++++++------- 3 files changed, 45 insertions(+), 34 deletions(-) diff --git a/core/core-frontend/src/utils/canvasUtils.ts b/core/core-frontend/src/utils/canvasUtils.ts index 1fe7a2a556..109abd3916 100644 --- a/core/core-frontend/src/utils/canvasUtils.ts +++ b/core/core-frontend/src/utils/canvasUtils.ts @@ -32,8 +32,14 @@ import { deepCopy, nameTrim } from '@/utils/utils' import { ElMessage, ElMessageBox } from 'element-plus-secondary' import { guid } from '@/views/visualized/data/dataset/form/util' const dvMainStore = dvMainStoreWithOut() -const { inMobile, dvInfo, canvasStyleData, componentData, canvasViewInfo, appData } = - storeToRefs(dvMainStore) +const { + inMobile, + dvInfo: curDvInfo, + canvasStyleData, + componentData, + canvasViewInfo, + appData +} = storeToRefs(dvMainStore) const snapshotStore = snapshotStoreWithOut() import { useI18n } from '@/hooks/web/useI18n' import { useAppearanceStoreWithOut } from '@/store/modules/appearance' @@ -534,12 +540,12 @@ export function initCanvasDataMobile(dvId, params, callBack) { export function checkCanvasChangePre(callBack) { // do pre - const isUpdate = dvInfo.value.id && dvInfo.value.optType !== 'copy' + const isUpdate = curDvInfo.value.id && curDvInfo.value.optType !== 'copy' // 桌面版为单人模式不需要检查 if (isUpdate && !isDesktop()) { - const params = { ...dvInfo.value, watermarkInfo: null } + const params = { ...curDvInfo.value, watermarkInfo: null } const tips = - (dvInfo.value.type === 'dashboard' + (curDvInfo.value.type === 'dashboard' ? t('work_branch.dashboard') : t('work_branch.big_data_screen')) + t('visualization.save_conflict_tips') checkCanvasChange(params).then(rsp => { @@ -585,7 +591,7 @@ export async function canvasSave(callBack) { componentData: JSON.stringify(componentDataToSave), canvasViewInfo: canvasViewInfo.value, appData: appData.value, - ...dvInfo.value, + ...curDvInfo.value, checkVersion: wsCache.get('x-de-execute-version'), contentId: newContentId, watermarkInfo: null @@ -604,15 +610,16 @@ export async function canvasSave(callBack) { ElMessage.error('数据集分组名称已存在') return } - nameTrim(dvInfo.value, t('components.length_1_64_characters')) - const method = dvInfo.value.id && dvInfo.value.optType !== 'copy' ? updateCanvas : saveCanvas + nameTrim(curDvInfo.value, t('components.length_1_64_characters')) + const method = + curDvInfo.value.id && curDvInfo.value.optType !== 'copy' ? updateCanvas : saveCanvas if (method === updateCanvas) { await dvNameCheck({ opt: 'edit', nodeType: 'leaf', - name: dvInfo.value.name, - type: dvInfo.value.type, - id: dvInfo.value.id + name: curDvInfo.value.name, + type: curDvInfo.value.type, + id: curDvInfo.value.id }) } method(canvasInfo).then(res => { @@ -923,7 +930,7 @@ export async function decompressionPre(params, callBack) { } export function isDashboard() { - return dvInfo.value.type === 'dashboard' + return curDvInfo.value.type === 'dashboard' } export function trackBarStyleCheck(element, trackbarStyle, _scale, trackMenuNumber) { diff --git a/core/core-frontend/src/views/data-visualization/PreviewCanvas.vue b/core/core-frontend/src/views/data-visualization/PreviewCanvas.vue index 24b14d5775..ab0e39052a 100644 --- a/core/core-frontend/src/views/data-visualization/PreviewCanvas.vue +++ b/core/core-frontend/src/views/data-visualization/PreviewCanvas.vue @@ -4,7 +4,7 @@ import { computed, nextTick, onMounted, reactive, ref, watch } from 'vue' import DePreview from '@/components/data-visualization/canvas/DePreview.vue' import router from '@/router' import { useEmitt } from '@/hooks/web/useEmitt' -import { initCanvasData, isMainCanvas, onInitReady } from '@/utils/canvasUtils' +import { initCanvasData, onInitReady } from '@/utils/canvasUtils' import { queryTargetVisualizationJumpInfo } from '@/api/visualization/linkJump' import { Base64 } from 'js-base64' import { getOuterParamsInfo } from '@/api/visualization/outerParams' @@ -125,22 +125,25 @@ const loadCanvasDataAsync = async (dvId, dvType, ignoreParams = false) => { canvasViewInfoPreview, curPreviewGap }) { - if (jumpParam || (!ignoreParams && attachParam)) { - await filterEnumMapSync(canvasDataResult) - } - if (jumpParam) { - dvMainStore.addViewTrackFilter(jumpParam) - } state.canvasDataPreview = canvasDataResult state.canvasStylePreview = canvasStyleResult state.canvasViewInfoPreview = canvasViewInfoPreview state.dvInfo = dvInfo state.curPreviewGap = curPreviewGap - if (!ignoreParams) { - state.initState = false - dvMainStore.addOuterParamsFilter(attachParam) - state.initState = true + if (state.dvInfo.status) { + if (jumpParam || (!ignoreParams && attachParam)) { + await filterEnumMapSync(canvasDataResult) + } + if (jumpParam) { + dvMainStore.addViewTrackFilter(jumpParam) + } + if (!ignoreParams) { + state.initState = false + dvMainStore.addOuterParamsFilter(attachParam) + state.initState = true + } } + if (props.publicLinkStatus) { // 设置浏览器title为当前仪表板名称 document.title = dvInfo.name diff --git a/core/core-frontend/src/views/data-visualization/PreviewCanvasMobile.vue b/core/core-frontend/src/views/data-visualization/PreviewCanvasMobile.vue index 47cd37ead0..1a36bc5550 100644 --- a/core/core-frontend/src/views/data-visualization/PreviewCanvasMobile.vue +++ b/core/core-frontend/src/views/data-visualization/PreviewCanvasMobile.vue @@ -109,22 +109,23 @@ const loadCanvasDataAsync = async (dvId, dvType) => { await router.push('/DashboardEmpty') return } - if (jumpParam || attachParam) { - await filterEnumMapSync(canvasDataResult) - } - if (jumpParam) { - dvMainStore.addViewTrackFilter(jumpParam) - } + state.dvInfo = dvInfo state.canvasDataPreview = canvasDataResult state.canvasStylePreview = canvasStyleResult state.canvasViewInfoPreview = canvasViewInfoPreview - state.dvInfo = dvInfo state.curPreviewGap = curPreviewGap - state.initState = false - - dvMainStore.addOuterParamsFilter(attachParam) - state.initState = true + if (state.dvInfo.status) { + if (jumpParam || attachParam) { + await filterEnumMapSync(canvasDataResult) + } + if (jumpParam) { + dvMainStore.addViewTrackFilter(jumpParam) + } + state.initState = false + dvMainStore.addOuterParamsFilter(attachParam) + state.initState = true + } if (props.publicLinkStatus) { // 设置浏览器title为当前仪表板名称 document.title = dvInfo.name