-
-
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js
index 2e66018e6b..9328202b86 100644
--- a/frontend/src/lang/en.js
+++ b/frontend/src/lang/en.js
@@ -1179,7 +1179,9 @@ export default {
panel_save_tips: 'Do you want to save the changes you made to.',
panel_save_warn_tips: "Your changes will be lost if you don't save them!",
do_not_save: "Don't Save",
- save_and_close: 'Save'
+ save_and_close: 'Save',
+ drill: 'drill',
+ linkage: 'linkage'
},
plugin: {
local_install: 'Local installation',
diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js
index 12c3625fee..2d8dcfbea3 100644
--- a/frontend/src/lang/tw.js
+++ b/frontend/src/lang/tw.js
@@ -1179,7 +1179,9 @@ export default {
panel_save_tips: '仪表板已变动,是否保存?',
panel_save_warn_tips: '如果未保存,你对仪表板做的变更将会丢失!',
do_not_save: '不保存',
- save: '保存'
+ save: '保存',
+ drill: '下钻',
+ linkage: '联动'
},
plugin: {
local_install: '本地安裝',
diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js
index 503a0c9c6c..4e4c656373 100644
--- a/frontend/src/lang/zh.js
+++ b/frontend/src/lang/zh.js
@@ -1181,7 +1181,9 @@ export default {
panel_save_tips: '仪表板已变动,是否保存?',
panel_save_warn_tips: '如果未保存,你对仪表板做的变更将会丢失!',
do_not_save: '不保存',
- save: '保存'
+ save: '保存',
+ drill: '下钻',
+ linkage: '联动'
},
plugin: {
local_install: '本地安装',
diff --git a/frontend/src/views/chart/components/ChartComponent.vue b/frontend/src/views/chart/components/ChartComponent.vue
index 7e46dc6e99..6e91946a57 100644
--- a/frontend/src/views/chart/components/ChartComponent.vue
+++ b/frontend/src/views/chart/components/ChartComponent.vue
@@ -1,5 +1,6 @@
@@ -18,9 +19,11 @@ import { baseTreemapOption } from '../chart/treemap/treemap'
// import eventBus from '@/components/canvas/utils/eventBus'
import { uuid } from 'vue-uuid'
import { geoJson } from '@/api/map/map'
+import ViewTrackBar from '@/components/canvas/components/Editor/ViewTrackBar'
export default {
name: 'ChartComponent',
+ components: { ViewTrackBar },
props: {
chart: {
type: Object,
@@ -32,13 +35,33 @@ export default {
default: function() {
return {}
}
+ },
+ trackMenu: {
+ type: Array,
+ required: false,
+ default: function() {
+ return ['drill', 'linkage']
+ }
}
},
data() {
return {
myChart: {},
chartId: uuid.v1(),
- currentGeoJson: null
+ currentGeoJson: null,
+ showTrackBar: true,
+ trackBarStyle: {
+ position: 'absolute',
+ left: '0px',
+ top: '0px'
+ },
+ pointParam: null
+ }
+ },
+
+ computed: {
+ trackBarStyleTime() {
+ return this.trackBarStyle
}
},
watch: {
@@ -60,8 +83,6 @@ export default {
},
methods: {
preDraw() {
- const viewId = this.chart.id
- const _store = this.$store
// 基于准备好的dom,初始化echarts实例
// 渲染echart等待dom加载完毕,渲染之前先尝试销毁具有相同id的echart 放置多次切换仪表板有重复id情况
const that = this
@@ -75,15 +96,14 @@ export default {
this.myChart.off('click')
this.myChart.on('click', function(param) {
- console.log(JSON.stringify(param.data))
- const trackFilter = {
- viewId: viewId,
- dimensionList: param.data.dimensionList,
- quotaList: param.data.quotaList
+ that.pointParam = param
+ if (that.trackMenu.length === 1) { // 只有一个事件直接调用
+ that.trackClick(that.trackMenu[0])
+ } else { // 视图关联多个事件
+ that.trackBarStyle.left = param.event.offsetX + 'px'
+ that.trackBarStyle.top = (param.event.offsetY - 15) + 'px'
+ that.$refs.viewTrack.trackButtonClick()
}
- _store.commit('addViewTrackFilter', trackFilter)
-
- that.$emit('onChartClick', param)
})
})
},
@@ -169,6 +189,23 @@ export default {
// 指定图表的配置项和数据
const chart = this.myChart
chart.resize()
+ },
+ trackClick(trackAction) {
+ const linkageParam = {
+ viewId: this.chart.id,
+ dimensionList: this.pointParam.data.dimensionList,
+ quotaList: this.pointParam.data.quotaList
+ }
+ switch (trackAction) {
+ case 'drill':
+ this.$emit('onChartClick', this.pointParam)
+ break
+ case 'linkage':
+ this.$store.commit('addViewTrackFilter', linkageParam)
+ break
+ default:
+ break
+ }
}
}
}