Unverified 提交 d033d359 authored 作者: 王嘉豪's avatar 王嘉豪 提交者: GitHub

Merge pull request #596 from dataease/pr@dev@feat_panel-up-drill

feat:仪表板视图根据一个视图是否有多事件来确认是否出现弹框,单事件直接触发
...@@ -16,7 +16,7 @@ ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论