fix(数据大屏): 修复数据大屏指标卡事件跳转相关问题 (#17314)

This commit is contained in:
王嘉豪
2025-10-30 14:53:34 +08:00
committed by GitHub
parent 52a4a707be
commit 2270b800c9
2 changed files with 25 additions and 3 deletions

View File

@@ -381,7 +381,7 @@ const onWrapperClick = e => {
}
} else {
initOpenHandler(window.open(url, jumpType))
if (isMobile()) {
if (isDashboard() && isMobile()) {
window.location.reload()
}
}

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain'
import { onMounted, onUnmounted, reactive } from 'vue'
import { nextTick, onMounted, onUnmounted, reactive, ref } from 'vue'
import DePreview from '@/components/data-visualization/canvas/DePreview.vue'
import router from '@/router/mobile'
import { initCanvasDataMobile, initCanvasData } from '@/utils/canvasUtils'
@@ -16,10 +16,15 @@ import { setTitle } from '@/utils/utils'
import EmptyBackground from '../../components/empty-background/src/EmptyBackground.vue'
import { filterEnumMapSync } from '@/utils/componentUtils'
import CanvasOptBar from '@/components/visualization/CanvasOptBar.vue'
import { useEmitt } from '@/hooks/web/useEmitt'
import { downloadCanvas2 } from '@/utils/imgUtils'
const dvMainStore = dvMainStoreWithOut()
const { t } = useI18n()
const embeddedStore = useEmbedded()
const previewCanvasContainer = ref(null)
const downloadStatus = ref(false)
const state = reactive({
canvasDataPreview: null,
canvasStylePreview: null,
@@ -42,6 +47,16 @@ const props = defineProps({
ticketArgs: propTypes.string.def(null)
})
const downloadH2 = type => {
downloadStatus.value = true
nextTick(() => {
const vueDom = previewCanvasContainer.value.querySelector('.canvas-container')
downloadCanvas2(type, vueDom, state.dvInfo.name, () => {
downloadStatus.value = false
})
})
}
const loadCanvasDataAsync = async (dvId, dvType) => {
const jumpInfoParam = embeddedStore.jumpInfoParam || router.currentRoute.value.query.jumpInfoParam
let jumpParam
@@ -173,13 +188,20 @@ onUnmounted(() => {
window.removeEventListener('popstate', handlePopState)
})
useEmitt({
name: 'canvasDownload',
callback: function (type = 'img') {
downloadH2(type)
}
})
defineExpose({
loadCanvasDataAsync
})
</script>
<template>
<div class="content" v-if="state.initState">
<div class="content" v-if="state.initState" ref="previewCanvasContainer">
<canvas-opt-bar
canvas-id="canvas-main"
:canvas-style-data="state.canvasStylePreview || {}"