forked from github/dataease
feat:仪表板视图根据一个视图是否有多事件来确认是否出现弹框,单事件直接触发
This commit is contained in:
parent
3d5ffb8cfe
commit
d9c7885c88
@ -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'
|
||||||
|
@ -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'
|
||||||
|
Loading…
Reference in New Issue
Block a user