From c87a6f132c707d8229f9f282e6dea315ef2d2ff5 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 1 Apr 2021 11:38:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E4=BB=AA=E8=A1=A8=E7=9B=98=E9=A2=84?= =?UTF-8?q?=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../canvas/components/Editor/Preview.vue | 28 +++---------------- .../components/canvas/components/Toolbar.vue | 2 +- .../canvas/custom-component/UserView.vue | 10 ++----- .../views/chart/components/ChartComponent.vue | 19 ++++++++----- frontend/src/views/panel/edit/index.vue | 7 ----- frontend/src/views/panel/index.vue | 1 - frontend/src/views/panel/list/PanelList.vue | 24 ++++++++++++---- .../src/views/panel/list/PanelViewShow.vue | 16 +++++------ 8 files changed, 45 insertions(+), 62 deletions(-) diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index 28b456d42b..20141cdf42 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -1,6 +1,5 @@ diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue index 86319ae08c..6c27e1c77e 100644 --- a/frontend/src/components/canvas/custom-component/UserView.vue +++ b/frontend/src/components/canvas/custom-component/UserView.vue @@ -1,6 +1,6 @@ @@ -8,6 +8,7 @@ import { post } from '@/api/panel/panel' import ChartComponent from '@/views/chart/components/ChartComponent.vue' + export default { name: 'UserView', components: { ChartComponent }, @@ -22,12 +23,7 @@ export default { } }, created() { - const id = this.element.propValue.viewId - debugger - this.$nextTick(() => { - // 获取eChar数据 - this.getData(id) - }) + this.getData(this.element.propValue.viewId) }, mounted() { diff --git a/frontend/src/views/chart/components/ChartComponent.vue b/frontend/src/views/chart/components/ChartComponent.vue index 01f935d634..87b431239a 100644 --- a/frontend/src/views/chart/components/ChartComponent.vue +++ b/frontend/src/views/chart/components/ChartComponent.vue @@ -12,6 +12,7 @@ import { basePieOption } from '../chart/pie/pie' import { baseFunnelOption } from '../chart/funnel/funnel' import { baseRadarOption } from '../chart/radar/radar' import eventBus from '@/components/canvas/utils/eventBus' +import { uuid } from 'vue-uuid' export default { name: 'ChartComponent', @@ -19,15 +20,12 @@ export default { chart: { type: Object, required: true - }, - chartId: { - type: String, - required: false } }, data() { return { - myChart: {} + myChart: {}, + chartId: uuid.v1() } }, watch: { @@ -41,8 +39,15 @@ export default { mounted() { // 基于准备好的dom,初始化echarts实例 console.log('chartId:' + this.chartId) - this.myChart = this.$echarts.init(document.getElementById(this.chartId)) - this.drawEcharts() + // 渲染echart等待dom加载完毕,渲染之前先尝试销毁具有相同id的echart 放置多次切换仪表盘有重复id情况 + new Promise((resolve) => { resolve() }).then(() => { + // 此dom为echarts图标展示dom + this.myChart = this.$echarts.getInstanceByDom(document.getElementById(this.chartId)) + if (!this.myChart) { + this.myChart = this.$echarts.init(document.getElementById(this.chartId)) + } + this.drawEcharts() + }) // 监听元素变动事件 eventBus.$on('resizing', (componentId) => { diff --git a/frontend/src/views/panel/edit/index.vue b/frontend/src/views/panel/edit/index.vue index d63cd94986..87e5868132 100644 --- a/frontend/src/views/panel/edit/index.vue +++ b/frontend/src/views/panel/edit/index.vue @@ -199,12 +199,6 @@ export default { body.insertBefore(elx, body.firstChild) }) }, - saveDrawing() { - bus.$emit('panel-drawing-save') - }, - preViewShow() { - bus.$emit('panel-drawing-preview') - }, // 画布 restore() { @@ -230,7 +224,6 @@ export default { e.stopPropagation() let component const newComponentId = uuid.v1() - console.log('handleDrop123') const componentInfo = JSON.parse(e.dataTransfer.getData('componentInfo')) // 用户视图设置 复制一个模板 diff --git a/frontend/src/views/panel/index.vue b/frontend/src/views/panel/index.vue index 56fa1c6e92..92a7295752 100644 --- a/frontend/src/views/panel/index.vue +++ b/frontend/src/views/panel/index.vue @@ -21,7 +21,6 @@ - diff --git a/frontend/src/views/panel/list/PanelList.vue b/frontend/src/views/panel/list/PanelList.vue index 1c47ba5e6b..1313f2bdb5 100644 --- a/frontend/src/views/panel/list/PanelList.vue +++ b/frontend/src/views/panel/list/PanelList.vue @@ -123,10 +123,6 @@ custom-class="de-dialog" > - import GrantAuth from '../GrantAuth' import LinkGenerate from '@/views/link/generate' +import { uuid } from 'vue-uuid' +import bus from '@/utils/bus' import { loadTable, getScene, addGroup, delGroup, addTable, delTable, groupTree, defaultTree, get } from '@/api/panel/panel' export default { @@ -236,7 +234,6 @@ export default { this.groupForm = JSON.parse(JSON.stringify(param.data)) break case 'move': - break case 'delete': this.delete(param.data) @@ -421,7 +418,15 @@ export default { nodeClick(data, node) { if (data.nodeType === 'panel') { this.currGroup = data - // this.$store.dispatch('panel/setPanelInfo', data) + // 加载视图数据 + this.$nextTick(() => { + localStorage.setItem('canvasData', null) + localStorage.setItem('canvasStyle', null) + get('panel/group/findOne/' + data.id).then(response => { + this.$store.commit('setComponentData', this.resetID(JSON.parse(response.data.panelData))) + this.$store.commit('setCanvasStyle', JSON.parse(response.data.panelStyle)) + }) + }) } if (node.expanded) { this.expandedArray.push(data.id) @@ -523,6 +528,13 @@ export default { removeLink() { this.linkVisible = false this.linkResourceId = null + }, + resetID(data) { + data.forEach(item => { + item.id = uuid.v1() + }) + + return data } } } diff --git a/frontend/src/views/panel/list/PanelViewShow.vue b/frontend/src/views/panel/list/PanelViewShow.vue index 2e2c11314e..157094b720 100644 --- a/frontend/src/views/panel/list/PanelViewShow.vue +++ b/frontend/src/views/panel/list/PanelViewShow.vue @@ -10,18 +10,19 @@ - + - +
+ +
From eaa4cf9a7f5f018ab7168333cc8405dcbbf28793 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 1 Apr 2021 11:56:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=E6=81=A2=E5=A4=8D=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/canvas/components/Toolbar.vue | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/src/components/canvas/components/Toolbar.vue b/frontend/src/components/canvas/components/Toolbar.vue index a907d14c8d..a10461c18b 100644 --- a/frontend/src/components/canvas/components/Toolbar.vue +++ b/frontend/src/components/canvas/components/Toolbar.vue @@ -34,7 +34,7 @@ - + @@ -42,14 +42,12 @@ import generateID from '@/components/canvas/utils/generateID' import toast from '@/components/canvas/utils/toast' import { mapState } from 'vuex' -import Preview from '@/components/canvas/components/Editor/Preview' import { commonStyle, commonAttr } from '@/components/canvas/custom-component/component-list' import eventBus from '@/components/canvas/utils/eventBus' import { deepCopy } from '@/components/canvas/utils/utils' import { post } from '@/api/panel/panel' export default { - components: { Preview }, data() { return { isShowPreview: false,