feat:仪表板视图根据一个视图是否有多事件来确认是否出现弹框,单事件直接触发

This commit is contained in:
wangjiahao 2021-08-12 10:15:10 +08:00
parent 3d5ffb8cfe
commit d9c7885c88
2 changed files with 23 additions and 5 deletions

View File

@ -16,7 +16,7 @@
{{ $t('chart.chart_error_tips') }} {{ $t('chart.chart_error_tips') }}
</div> </div>
</div> </div>
<chart-component v-if="requestStatus==='success'&&chart.type && !chart.type.includes('table') && !chart.type.includes('text')" :ref="element.propValue.id" class="chart-class" :chart="chart" @onChartClick="chartClick" /> <chart-component v-if="requestStatus==='success'&&chart.type && !chart.type.includes('table') && !chart.type.includes('text')" :ref="element.propValue.id" class="chart-class" :chart="chart" :track-menu="trackMenu" @onChartClick="chartClick" />
<table-normal v-if="requestStatus==='success'&&chart.type && chart.type.includes('table')" :ref="element.propValue.id" :chart="chart" class="table-class" /> <table-normal v-if="requestStatus==='success'&&chart.type && chart.type.includes('table')" :ref="element.propValue.id" :chart="chart" class="table-class" />
<label-normal v-if="requestStatus==='success'&&chart.type && chart.type.includes('text')" :ref="element.propValue.id" :chart="chart" class="table-class" /> <label-normal v-if="requestStatus==='success'&&chart.type && chart.type.includes('text')" :ref="element.propValue.id" :chart="chart" class="table-class" />
<div style="position: absolute;left: 20px;bottom:14px;"> <div style="position: absolute;left: 20px;bottom:14px;">
@ -84,7 +84,8 @@ export default {
requestStatus: 'waiting', requestStatus: 'waiting',
message: null, message: null,
drillClickDimensionList: [], drillClickDimensionList: [],
drillFilters: [] drillFilters: [],
drillFields: []
} }
}, },
computed: { computed: {
@ -107,8 +108,23 @@ export default {
console.log('linkageFilters:' + JSON.stringify(this.element.linkageFilters)) console.log('linkageFilters:' + JSON.stringify(this.element.linkageFilters))
return JSON.parse(JSON.stringify(this.element.linkageFilters)) return JSON.parse(JSON.stringify(this.element.linkageFilters))
}, },
trackMenu() {
const trackMenuInfo = []
let linkageCount = 0
this.chart.data.fields && this.chart.data.fields.forEach(item => {
const sourceInfo = this.chart.id + '#' + item.id
if (this.nowPanelTrackInfo[sourceInfo]) {
linkageCount++
}
})
linkageCount && trackMenuInfo.push('linkage')
this.drillFields.length && trackMenuInfo.push('drill')
console.log('trackMenuInfo' + JSON.stringify(trackMenuInfo))
return trackMenuInfo
},
...mapState([ ...mapState([
'canvasStyleData' 'canvasStyleData',
'nowPanelTrackInfo'
]) ])
}, },
@ -200,10 +216,12 @@ export default {
if (response.success) { if (response.success) {
this.chart = response.data this.chart = response.data
this.chart.drillFields = this.chart.drillFields ? JSON.parse(this.chart.drillFields) : [] this.chart.drillFields = this.chart.drillFields ? JSON.parse(this.chart.drillFields) : []
debugger
if (!response.data.drill) { if (!response.data.drill) {
this.drillClickDimensionList.splice(this.drillClickDimensionList.length - 1, 1) this.drillClickDimensionList.splice(this.drillClickDimensionList.length - 1, 1)
} }
this.drillFilters = JSON.parse(JSON.stringify(response.data.drillFilters)) this.drillFilters = JSON.parse(JSON.stringify(response.data.drillFilters))
this.drillFields = JSON.parse(JSON.stringify(response.data.drillFields))
this.requestStatus = 'merging' this.requestStatus = 'merging'
this.mergeStyle() this.mergeStyle()
this.requestStatus = 'success' this.requestStatus = 'success'

View File

@ -40,7 +40,7 @@ export default {
type: Array, type: Array,
required: false, required: false,
default: function() { default: function() {
return ['drill', 'linkage'] return ['drill']
} }
} }
}, },
@ -97,7 +97,7 @@ export default {
this.myChart.off('click') this.myChart.off('click')
this.myChart.on('click', function(param) { this.myChart.on('click', function(param) {
that.pointParam = param that.pointParam = param
if (that.trackMenu.length === 1) { // if (that.trackMenu.length < 2) { //
that.trackClick(that.trackMenu[0]) that.trackClick(that.trackMenu[0])
} else { // } else { //
that.trackBarStyle.left = param.event.offsetX + 'px' that.trackBarStyle.left = param.event.offsetX + 'px'