From e11d6ff7d9cfa5f73b966530a8fd28f8a7bde854 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 11 Aug 2021 17:49:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BB=AA=E8=A1=A8=E6=9D=BF=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E9=92=BB=E5=8F=96=E5=92=8C=E8=81=94=E5=8A=A8=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E5=AD=98=E5=9C=A8=E6=97=B6=EF=BC=8C=E5=BC=B9=E6=A1=86?= =?UTF-8?q?=E7=94=B1=E7=94=A8=E6=88=B7=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Editor/ComponentWrapper.vue | 4 +- .../components/Editor/SettingMenuTest.vue | 181 ++++++++++++++++++ .../canvas/components/Editor/ViewTrackBar.vue | 121 +++--------- frontend/src/lang/en.js | 4 +- frontend/src/lang/tw.js | 4 +- frontend/src/lang/zh.js | 4 +- .../views/chart/components/ChartComponent.vue | 59 ++++-- 7 files changed, 265 insertions(+), 112 deletions(-) create mode 100644 frontend/src/components/canvas/components/Editor/SettingMenuTest.vue diff --git a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue index 80992dfe8f..88216e9e1a 100644 --- a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue +++ b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue @@ -7,7 +7,6 @@ @mousedown="elementMouseDown" > - +
+
+ + TEST + + {{ $t('panel.copy') }} + {{ $t('panel.delete') }} + {{ $t('panel.topComponent') }} + {{ $t('panel.bottomComponent') }} + {{ $t('panel.upComponent') }} + {{ $t('panel.downComponent') }} + 联动设置 + + +
+
+ + + + + diff --git a/frontend/src/components/canvas/components/Editor/ViewTrackBar.vue b/frontend/src/components/canvas/components/Editor/ViewTrackBar.vue index c55ce512c7..998e339b02 100644 --- a/frontend/src/components/canvas/components/Editor/ViewTrackBar.vue +++ b/frontend/src/components/canvas/components/Editor/ViewTrackBar.vue @@ -1,124 +1,55 @@ 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 + } } } }