From f48589916394facbef8c51b6b33a65e50a71284b Mon Sep 17 00:00:00 2001 From: ulleo Date: Thu, 23 Nov 2023 16:48:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20antv=E6=95=A3=E7=82=B9=E5=9B=BE=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/canvas/customComponent/UserView.vue | 11 ++++++++++- .../src/views/chart/components/ChartComponentG2.vue | 11 +++++++++++ core/frontend/src/views/panel/linkJumpSet/index.vue | 6 ++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/core/frontend/src/components/canvas/customComponent/UserView.vue b/core/frontend/src/components/canvas/customComponent/UserView.vue index eb1248f805..2a5e8ff15e 100644 --- a/core/frontend/src/components/canvas/customComponent/UserView.vue +++ b/core/frontend/src/components/canvas/customComponent/UserView.vue @@ -1067,7 +1067,15 @@ export default { jumpClick(param) { let dimension, jumpInfo, sourceInfo // 如果有名称name 获取和name匹配的dimension 否则倒序取最后一个能匹配的 - if (param.name) { + if (param.scatterSpecial) { + param.scatterSpecialData.dimensionList.forEach(dimensionItem => { + if (param.scatterSpecialData.field === dimensionItem.value) { + dimension = dimensionItem + sourceInfo = param.viewId + '#' + dimension.id + jumpInfo = this.nowPanelJumpInfo[sourceInfo] + } + }) + } else if (param.name) { param.dimensionList.forEach(dimensionItem => { if (dimensionItem.id === param.name || dimensionItem.value === param.name) { dimension = dimensionItem @@ -1091,6 +1099,7 @@ export default { } } } + if (jumpInfo) { param.sourcePanelId = this.panelInfo.id param.sourceViewId = param.viewId diff --git a/core/frontend/src/views/chart/components/ChartComponentG2.vue b/core/frontend/src/views/chart/components/ChartComponentG2.vue index 76a1802a76..28f940d251 100644 --- a/core/frontend/src/views/chart/components/ChartComponentG2.vue +++ b/core/frontend/src/views/chart/components/ChartComponentG2.vue @@ -410,6 +410,17 @@ export default { group: this.pointParam.data.group } + if (this.chart.type === 'scatter' && this.chart.render === 'antv') { + const xAxis = JSON.parse(this.chart.xaxis) + if (xAxis && xAxis[0] && xAxis[0].groupType === 'q') { + linkageParam.scatterSpecial = true + linkageParam.scatterSpecialData = this.pointParam.data + + jumpParam.scatterSpecial = true + jumpParam.scatterSpecialData = this.pointParam.data + } + } + switch (trackAction) { case 'drill': this.$emit('onChartClick', this.pointParam) diff --git a/core/frontend/src/views/panel/linkJumpSet/index.vue b/core/frontend/src/views/panel/linkJumpSet/index.vue index 072837e421..0c5480e89c 100644 --- a/core/frontend/src/views/panel/linkJumpSet/index.vue +++ b/core/frontend/src/views/panel/linkJumpSet/index.vue @@ -522,6 +522,12 @@ export default { checkJumpStr = checkAllAxisStr } else if (chartDetails.type === 'table-info') { checkJumpStr = chartDetails.xaxis + chartDetails.drillFields + } else if (chartDetails.render === 'antv' && chartDetails.type === 'scatter') { + checkJumpStr = checkAllAxisStr + const xAxis = JSON.parse(chartDetails.xaxis) + if (xAxis && xAxis[0] && xAxis[0].groupType === 'q') { + checkJumpStr = checkJumpStr + chartDetails.extStack + } } else { checkJumpStr = checkAllAxisStr }