From 203c834f1dabd542d09c4746d79c561145c2047a Mon Sep 17 00:00:00 2001 From: qianbao Date: Thu, 30 Mar 2023 00:49:47 +0800 Subject: [PATCH] 主数据源刷新,子数据源跟着定时刷新(text、文本) --- src/store/modules/dataSource.js | 6 +++++- src/views/bigscreenDesigner/designer/widget/text/widgetDigitalFlop.vue | 41 ++++++++++++++++++++++++++++++++++------- src/views/bigscreenDesigner/designer/widget/text/widgetText.vue | 69 ++++++++++++++++++++++++++++++++++++++++++++++----------------------- src/views/bigscreenDesigner/viewer/index.vue | 4 +++- 4 files changed, 88 insertions(+), 32 deletions(-) diff --git a/src/store/modules/dataSource.js b/src/store/modules/dataSource.js index 916fccb..1e00552 100644 --- a/src/store/modules/dataSource.js +++ b/src/store/modules/dataSource.js @@ -2,13 +2,17 @@ const dataSource = { namespaced: true, state: { staticData: {}, - dynamicData: {} + dynamicData: {}, + staticRefreshTime: 6000000 }, mutations: { SET_STATIC_DATA: (state, data) => { state.staticData = data; }, + SET_REFRESHTIME: (state, data) => { + state.staticRefreshTime = data; + }, SET_DYNAMIC_DATA: (state, data) => { state.dynamicData = data; } diff --git a/src/views/bigscreenDesigner/designer/widget/text/widgetDigitalFlop.vue b/src/views/bigscreenDesigner/designer/widget/text/widgetDigitalFlop.vue index e6ffa75..6b4a8b8 100644 --- a/src/views/bigscreenDesigner/designer/widget/text/widgetDigitalFlop.vue +++ b/src/views/bigscreenDesigner/designer/widget/text/widgetDigitalFlop.vue @@ -44,11 +44,15 @@ export default { optionsStyle: {}, // 样式 optionsData: {}, // 数据 optionsCollapse: {}, // 图标属性 - optionsSetup: {} + optionsSetup: {}, + flagInter: null, }; }, + beforeDestroy() { + clearInterval(this.flagInter); + }, computed: { - ...mapState('dataSource', ['staticData']), + ...mapState('dataSource', ['staticData','staticRefreshTime']), styleObj() { /*数字初始化*/ const {slectedDataType,numberText} = this.optionsSetup; @@ -100,20 +104,28 @@ export default { methods: { // 修改图标options属性 editorOptions() { - //显示内容 - this.showText(); - //数据修改 this.setOptionsData(); //字体样式修改 this.setFontStyle(); + + //显示内容 + this.showText(); }, //显示的内容 showText() { const {slectedDataType,numberText} = this.optionsSetup; let datav = this.staticData[slectedDataType] || numberText; + if(this.isNotBlank(slectedDataType)){ + const refreshTime = this.staticRefreshTime || 300000; + this.dynamicDataFn(refreshTime); + }else{ + this.setShowText(datav); + } + }, + setShowText(datav) { let dataArray = datav.toString().split(","); const numArray=[]; if(this.isNotBlankArray(dataArray)){ @@ -122,6 +134,7 @@ export default { }); } this.options.number = numArray; + this.options={...this.options}; }, //字体修改 setFontStyle() { @@ -134,7 +147,6 @@ export default { fontStyle.fontFamily=this.optionsSetup.fontFamily; this.options.textAlign =optionsSetup.textAlign; this.options.style = fontStyle; - this.options={...this.options}; }, //千为分隔符 formatterNum (number) { @@ -158,8 +170,23 @@ export default { this.options.toFixed=optionsSetup.toFixed; this.options.textAlign= this.options.style.textAlign; this.options.animationFrame=optionsSetup.animationFrame; - // this.options={...this.options}; }, + //定时动态数据获取 + dynamicDataFn(refreshTime) { + if (this.ispreview) { + this.flagInter = setInterval(() => { + this.getEchartData(); + }, refreshTime); + } else { + this.getEchartData(); + } + }, + getEchartData() { + const {slectedDataType,numberText} = this.optionsSetup; + const datav = this.staticData[slectedDataType] || numberText; + // console.log("翻牌数值",datav) + this.setShowText(datav); + } } }; diff --git a/src/views/bigscreenDesigner/designer/widget/text/widgetText.vue b/src/views/bigscreenDesigner/designer/widget/text/widgetText.vue index e23d0e1..9401c02 100644 --- a/src/views/bigscreenDesigner/designer/widget/text/widgetText.vue +++ b/src/views/bigscreenDesigner/designer/widget/text/widgetText.vue @@ -1,5 +1,5 @@