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