From 6e8668b8427289bd231eba99cdf8b0784db8e570 Mon Sep 17 00:00:00 2001 From: qianming <isqianming@163.com> Date: Fri, 4 Aug 2023 15:27:59 +0800 Subject: [PATCH] =?UTF-8?q?feat--=E5=88=BB=E5=BA=A6=E5=B0=BA=E8=A2=AB?= =?UTF-8?q?=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../widget/scale/widgetScaleHorizontal.vue | 34 +++++++++++++------ .../widget/scale/widgetScaleVertical.vue | 26 ++++++++++++-- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/report-ui/src/views/bigscreenDesigner/designer/widget/scale/widgetScaleHorizontal.vue b/report-ui/src/views/bigscreenDesigner/designer/widget/scale/widgetScaleHorizontal.vue index e98a39fa..807805c6 100644 --- a/report-ui/src/views/bigscreenDesigner/designer/widget/scale/widgetScaleHorizontal.vue +++ b/report-ui/src/views/bigscreenDesigner/designer/widget/scale/widgetScaleHorizontal.vue @@ -1,12 +1,12 @@ <template> <div :style="styleObj"> - <v-chart :options="options" autoresize/> + <v-chart ref="myVChart" :options="options" autoresize/> </div> </template> <script> import echarts from "echarts"; -import {eventBusParams} from "@/utils/screen"; +import { targetWidgetLinkageLogic } from "@/views/bigscreenDesigner/designer/linkageLogic"; let scale = []; let max; @@ -19,6 +19,7 @@ export default { props: { value: Object, ispreview: Boolean, + flagInter: null, }, data() { return { @@ -206,6 +207,9 @@ export default { background: this.optionsSetup.background, }; }, + allComponentLinkage() { + return this.$store.state.designer.allComponentLinkage; + }, }, watch: { value: { @@ -225,13 +229,7 @@ export default { this.optionsCollapse = this.value.collapse; this.optionsSetup = this.value.setup; this.editorOptions(); - eventBusParams( - this.optionsSetup, - this.optionsData, - (dynamicData, optionsSetup) => { - this.getEchartData(dynamicData, optionsSetup); - } - ); + targetWidgetLinkageLogic(this); // 联动-目标组件逻辑 }, methods: { // 修改图标options属性 @@ -448,8 +446,24 @@ export default { }; this.options.grid = grid; }, - setOptionsData() { + setOptionsData(e, paramsConfig) { const optionsData = this.optionsData; // 数据类型 静态 or 动态 + optionsData.dynamicData = optionsData.dynamicData || {}; // 兼容 dynamicData undefined + + const myDynamicData = optionsData.dynamicData; + clearInterval(this.flagInter); // 不管咋,先干掉上一次的定时任务,避免多跑 + if ( + e && + optionsData.dataType !== "staticData" && + Object.keys(myDynamicData.contextData).length + ) { + const keyArr = Object.keys(myDynamicData.contextData); + paramsConfig.forEach((conf) => { + if (keyArr.includes(conf.targetKey)) { + myDynamicData.contextData[conf.targetKey] = e[conf.originKey]; + } + }); + } optionsData.dataType == "staticData" ? this.staticDataFn(optionsData.staticData) : this.dynamicDataFn(optionsData.dynamicData, optionsData.refreshTime); diff --git a/report-ui/src/views/bigscreenDesigner/designer/widget/scale/widgetScaleVertical.vue b/report-ui/src/views/bigscreenDesigner/designer/widget/scale/widgetScaleVertical.vue index cc5e57cd..ebb91a26 100644 --- a/report-ui/src/views/bigscreenDesigner/designer/widget/scale/widgetScaleVertical.vue +++ b/report-ui/src/views/bigscreenDesigner/designer/widget/scale/widgetScaleVertical.vue @@ -1,11 +1,12 @@ <template> <div :style="styleObj"> - <v-chart :options="options" autoresize/> + <v-chart ref="myVChart" :options="options" autoresize/> </div> </template> <script> import echarts from "echarts"; +import {targetWidgetLinkageLogic} from "@/views/bigscreenDesigner/designer/linkageLogic"; let scale = []; let max; @@ -18,6 +19,7 @@ export default { props: { value: Object, ispreview: Boolean, + flagInter: null, }, data() { return { @@ -203,6 +205,9 @@ export default { background: this.optionsSetup.background, }; }, + allComponentLinkage() { + return this.$store.state.designer.allComponentLinkage; + }, }, watch: { value: { @@ -222,6 +227,7 @@ export default { this.optionsCollapse = this.value.collapse; this.optionsSetup = this.value.setup; this.editorOptions(); + targetWidgetLinkageLogic(this); // 联动-目标组件逻辑 }, methods: { // 修改图标options属性 @@ -435,8 +441,24 @@ export default { }; this.options.grid = grid; }, - setOptionsData() { + setOptionsData(e, paramsConfig) { const optionsData = this.optionsData; // 数据类型 静态 or 动态 + optionsData.dynamicData = optionsData.dynamicData || {}; // 兼容 dynamicData undefined + + const myDynamicData = optionsData.dynamicData; + clearInterval(this.flagInter); // 不管咋,先干掉上一次的定时任务,避免多跑 + if ( + e && + optionsData.dataType !== "staticData" && + Object.keys(myDynamicData.contextData).length + ) { + const keyArr = Object.keys(myDynamicData.contextData); + paramsConfig.forEach((conf) => { + if (keyArr.includes(conf.targetKey)) { + myDynamicData.contextData[conf.targetKey] = e[conf.originKey]; + } + }); + } optionsData.dataType == "staticData" ? this.staticDataFn(optionsData.staticData) : this.dynamicDataFn(optionsData.dynamicData, optionsData.refreshTime);