fix(仪表板、数据大屏): 修复仪表板、数据大屏相互跳转资源类型不正确导致的跳转失败问题

This commit is contained in:
wangjiahao
2025-04-03 16:19:02 +08:00
committed by 王嘉豪
parent d5eea38730
commit 1dd26fc1e9
3 changed files with 11 additions and 3 deletions

View File

@@ -45,6 +45,7 @@
<resultMap id="LinkJumpInfoMap" type="io.dataease.api.visualization.dto.VisualizationLinkJumpInfoDTO"
extends="LinkJumpInfoBaseResultMap">
<result column="target_dv_type" jdbcType="VARCHAR" property="targetDvType"/>
<result column="source_field_id" jdbcType="BIGINT" property="sourceFieldId"/>
<result column="source_de_type" jdbcType="INTEGER" property="sourceDeType"/>
<result column="source_field_name" jdbcType="VARCHAR" property="sourceFieldName"/>
@@ -92,6 +93,7 @@
vlji.jump_type,
vlji.window_size,
vlji.target_dv_id,
dvi.type as target_dv_type,
vlji.content,
<if test="!isDesktop">
xpack_share.uuid AS publicJumpId,
@@ -111,6 +113,7 @@
AND vlj.id = #{id}
LEFT JOIN snapshot_visualization_link_jump_info vlji ON vlj.id = vlji.link_jump_id
AND cdtf.id = vlji.source_field_id
LEFT JOIN snapshot_data_visualization_info dvi ON vlji.target_dv_id = dvi.id
LEFT JOIN snapshot_visualization_link_jump_target_view_info vljtvi ON vlji.id = vljtvi.link_jump_info_id
<if test="!isDesktop">
LEFT JOIN xpack_share ON xpack_share.creator = #{uid}
@@ -141,6 +144,7 @@
vlji.jump_type,
vlji.window_size,
vlji.target_dv_id,
dvi.type as target_dv_type,
vlji.content,
<if test="!isDesktop">
xpack_share.uuid AS publicJumpId,
@@ -160,6 +164,7 @@
AND vlj.id = #{id}
LEFT JOIN visualization_link_jump_info vlji ON vlj.id = vlji.link_jump_id
AND cdtf.id = vlji.source_field_id
LEFT JOIN snapshot_data_visualization_info dvi ON vlji.target_dv_id = dvi.id
LEFT JOIN visualization_link_jump_target_view_info vljtvi ON vlji.id = vljtvi.link_jump_info_id
<if test="!isDesktop">
LEFT JOIN xpack_share ON xpack_share.creator = #{uid}

View File

@@ -431,7 +431,7 @@ const windowsJump = (url, jumpType, size = 'middle') => {
}
const jumpClick = param => {
let dimension, jumpInfo, sourceInfo
let dimension, jumpInfo, sourceInfo, targetDvType
// 如果有名称name 获取和name匹配的dimension 否则倒序取最后一个能匹配的
if (param.name) {
param.dimensionList.forEach(dimensionItem => {
@@ -501,7 +501,7 @@ const jumpClick = param => {
if (publicLinkStatus.value) {
// 判断是否有公共链接ID
if (jumpInfo.publicJumpId) {
let url = `${embeddedBaseUrl}#/de-link/${jumpInfo.publicJumpId}?fromLink=true&dvType=${dvInfo.value.type}`
let url = `${embeddedBaseUrl}#/de-link/${jumpInfo.publicJumpId}?fromLink=true&dvType=${jumpInfo.targetDvType}`
if (attachParamsInfo) {
url = url + attachParamsInfo + jumpInfoParam
} else {
@@ -514,7 +514,7 @@ const jumpClick = param => {
ElMessage.warning(t('visualization.public_link_tips'))
}
} else {
let url = `${embeddedBaseUrl}#/preview?dvId=${jumpInfo.targetDvId}&fromLink=true&dvType=${dvInfo.value.type}`
let url = `${embeddedBaseUrl}#/preview?dvId=${jumpInfo.targetDvId}&fromLink=true&dvType=${jumpInfo.targetDvType}`
if (attachParamsInfo) {
url = url + attachParamsInfo + jumpInfoParam
} else {

View File

@@ -22,6 +22,9 @@ public class VisualizationLinkJumpInfoDTO extends VisualizationLinkJumpInfoVO {
//存在公共链接的目标仪表板
private String publicJumpId;
// 目标类型
private String targetDvType;
private List<VisualizationLinkJumpTargetViewInfoVO> targetViewInfoList=new ArrayList<>();// linkType = inner 时使用
}