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
commit a1350d3cc8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
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) {