Merge pull request #11067 from dataease/pr@dev-v2@refactor_table-prop

refactor(图表): 明细表、汇总表多事件弹框优化,解决未设置联动或跳转字段依然可以有全部事件弹框问题
This commit is contained in:
王嘉豪
2024-07-22 12:44:01 +08:00
committed by GitHub
2 changed files with 48 additions and 0 deletions

View File

@@ -553,6 +553,9 @@ const sourceLinkageInfoFilter = computed(() => {
JSON.stringify(state.curLinkageViewInfo.xAxisExt) +
(state.curLinkageViewInfo.type.includes('chart-mix')
? JSON.stringify(state.curLinkageViewInfo.extBubble)
: '') +
(state.curLinkageViewInfo.type.includes('table-normal')
? JSON.stringify(state.curLinkageViewInfo.yAxis)
: '')
return state.sourceLinkageInfo.targetViewFields.filter(item =>
curCheckAllAxisStr.includes(item.id)

View File

@@ -83,6 +83,8 @@ const errMsg = ref('')
const chartExtRequest = inject('chartExtRequest') as ShallowRef<object>
const state = reactive({
curActionId: null,
curTrackMenu: [],
trackBarStyle: {
position: 'absolute',
left: '50px',
@@ -302,6 +304,8 @@ const pointClickTrans = () => {
const action = param => {
state.pointParam = param
state.curActionId = param.data.name
state.curTrackMenu = trackMenuCalc(state.curActionId)
// 点击
pointClickTrans()
// 下钻 联动 跳转
@@ -405,6 +409,14 @@ const trackClick = trackAction => {
}
const trackMenu = computed(() => {
if (['table-info', 'table-normal'].includes(view.value.type) && state.curActionId) {
return trackMenuCalc(state.curActionId)
} else {
return trackMenuCmp.value
}
})
const trackMenuCmp = computed(() => {
let trackMenuInfo = []
if (showPosition.value === 'viewDialog') {
return trackMenuInfo
@@ -439,6 +451,39 @@ const trackMenu = computed(() => {
return trackMenuInfo
})
const trackMenuCalc = itemId => {
let trackMenuInfo = []
if (showPosition.value === 'viewDialog') {
return trackMenuInfo
}
let linkageCount = 0
let jumpCount = 0
const sourceInfo = view.value.id + '#' + itemId
if (nowPanelTrackInfo.value[sourceInfo]) {
linkageCount++
}
if (nowPanelJumpInfo.value[sourceInfo]) {
jumpCount++
}
jumpCount &&
view.value?.jumpActive &&
(!mobileInPc.value || inMobile.value) &&
trackMenuInfo.push('jump')
linkageCount && view.value?.linkageActive && trackMenuInfo.push('linkage')
view.value.drillFields.length && trackMenuInfo.push('drill')
// 如果同时配置jump linkage drill 切配置联动时同时下钻 在实际只显示两个 '跳转' '联动和下钻'
if (trackMenuInfo.length === 3 && props.element.actionSelection.linkageActive === 'auto') {
trackMenuInfo = ['jump', 'linkageAndDrill']
} else if (
trackMenuInfo.length === 2 &&
props.element.actionSelection.linkageActive === 'auto' &&
!trackMenuInfo.includes('jump')
) {
trackMenuInfo = ['linkageAndDrill']
}
return trackMenuInfo
}
const resizeAction = resizeColumn => {
// 从头开始滚动
if (myChart?.facet.timer) {