diff --git a/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue b/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue index 85abab443b..c545635856 100644 --- a/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue +++ b/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue @@ -20,6 +20,14 @@ const dvMainStore = dvMainStoreWithOut() const { nowPanelTrackInfo, nowPanelJumpInfo, mobileInPc } = storeToRefs(dvMainStore) const props = defineProps({ + element: { + type: Object, + default() { + return { + propValue: null + } + } + }, view: { type: Object, default() { @@ -192,6 +200,12 @@ const action = param => { if (trackMenu.value.length < 2) { // 只有一个事件直接调用 trackClick(trackMenu.value[0]) + } else if ( + props.element.actionSelection.linkageActive === 'auto' && + trackMenu.value.length === 2 && + !trackMenu.value.includes('jump') + ) { + trackClickPre('linkage') } else { // 图表关联多个事件 state.trackBarStyle.left = param.x - 50 + 'px' @@ -199,6 +213,20 @@ const action = param => { viewTrack.value.trackButtonClick() } } +const trackClickPre = trackAction => { + if ( + props.element.actionSelection.linkageActive === 'auto' && + trackMenu.value.length === 2 && + trackAction === 'linkage' && + !trackMenu.value.includes('jump') + ) { + trackMenu.value.forEach(action => { + trackClick(action) + }) + } else { + trackClick(trackAction) + } +} const trackClick = trackAction => { const param = state.pointParam @@ -312,7 +340,7 @@ onBeforeUnmount(() => { :track-menu="trackMenu" class="track-bar" :style="state.trackBarStyle" - @trackClick="trackClick" + @trackClick="trackClickPre" />
diff --git a/core/core-frontend/src/views/chart/components/views/index.vue b/core/core-frontend/src/views/chart/components/views/index.vue index f6cc98ba9d..a914c603e4 100644 --- a/core/core-frontend/src/views/chart/components/views/index.vue +++ b/core/core-frontend/src/views/chart/components/views/index.vue @@ -674,6 +674,7 @@ const iconSize = computed(() => { :dynamic-area-id="dynamicAreaId" :view="view" :show-position="showPosition" + :element="element" v-else-if="showChartView(ChartLibraryType.G2_PLOT, ChartLibraryType.L7_PLOT)" ref="chartComponent" @onChartClick="chartClick"