diff --git a/frontend/package.json b/frontend/package.json index 42f7c9c21f..8dc8ff7521 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -45,6 +45,7 @@ "vue-codemirror": "^4.0.6", "vue-fullscreen": "^2.5.2", "vue-i18n": "7.3.2", + "vue-power-drag": "^0.2.0", "vue-router": "3.0.6", "vue-to-pdf": "^1.0.0", "vue-uuid": "2.0.2", diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index 1a36d8fc36..57dfc92c85 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -139,6 +139,12 @@ export default { this.restore() }, deep: true + }, + canvasStyleData: { + handler(newVal, oldVla) { + this.canvasStyleDataInit() + }, + deep: true } }, mounted() { @@ -150,21 +156,26 @@ export default { _this.restore() }) }) - // 数据刷新计时器 - let refreshTime = 300000 - if (this.canvasStyleData.refreshTime && this.canvasStyleData.refreshTime > 0) { - refreshTime = this.canvasStyleData.refreshTime * 1000 - } - this.timer = setInterval(() => { - this.searchCount++ - }, refreshTime) eventBus.$on('openChartDetailsDialog', this.openChartDetailsDialog) this.$store.commit('clearLinkageSettingInfo', false) + this.canvasStyleDataInit() }, beforeDestroy() { clearInterval(this.timer) }, methods: { + canvasStyleDataInit() { + // 数据刷新计时器 + this.searchCount = 0 + this.timer && clearInterval(this.timer) + let refreshTime = 300000 + if (this.canvasStyleData.refreshTime && this.canvasStyleData.refreshTime > 0) { + refreshTime = this.canvasStyleData.refreshTime * 60000 + } + this.timer = setInterval(() => { + this.searchCount++ + }, refreshTime) + }, changeStyleWithScale, getStyle, restore() { diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 17846bd595..c4ffd8cb8f 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1199,6 +1199,8 @@ export default { gap: 'Gap', no_gap: 'No Gap', component_gap: 'Component Gap', + refresh_time: 'Refresh Time', + minute: 'minute', photo: 'Photo', default_panel: 'Default Dashboard', create_public_links: 'Create public links', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index f41f8df150..dd22c49b1d 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1202,6 +1202,8 @@ export default { gap: '有間隙', no_gap: '無間隙', component_gap: '組件間隙', + refresh_time: '刷新时间', + minute: '分钟', photo: '圖片', default_panel: '默認儀表板', create_public_links: '創建公共鏈接', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index d952758531..77e8d6621b 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1207,6 +1207,8 @@ export default { gap: '有间隙', no_gap: '无间隙', component_gap: '组件间隙', + refresh_time: '刷新时间', + minute: '分钟', photo: '图片', default_panel: '默认仪表板', create_public_links: '创建公共链接', diff --git a/frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentGap.vue b/frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentGap.vue index e547952fe4..2b3a02c0e7 100644 --- a/frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentGap.vue +++ b/frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentGap.vue @@ -23,7 +23,7 @@ import { mapState } from 'vuex' import { deepCopy } from '@/components/canvas/utils/utils' export default { - name: 'BackgroundSelector', + name: 'ComponentGap', props: { }, data() { diff --git a/frontend/src/views/panel/SubjectSetting/PanelStyle/PanelRefreshTime.vue b/frontend/src/views/panel/SubjectSetting/PanelStyle/PanelRefreshTime.vue new file mode 100644 index 0000000000..94369811d7 --- /dev/null +++ b/frontend/src/views/panel/SubjectSetting/PanelStyle/PanelRefreshTime.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/frontend/src/views/panel/SubjectSetting/index.vue b/frontend/src/views/panel/SubjectSetting/index.vue index ad863bbb70..dc8533b892 100644 --- a/frontend/src/views/panel/SubjectSetting/index.vue +++ b/frontend/src/views/panel/SubjectSetting/index.vue @@ -12,6 +12,7 @@ + @@ -41,6 +42,7 @@ import BackgroundSelector from './PanelStyle/BackgroundSelector' import PanelBackgroundColorSelector from './PanelStyle/PanelBackgroundColorSelector' import PanelColorSelector from './PanelStyle/PanelColorSelector' import ComponentGap from './PanelStyle/ComponentGap' +import PanelRefreshTime from './PanelStyle/PanelRefreshTime' import { mapState } from 'vuex' import { deepCopy } from '@/components/canvas/utils/utils' @@ -52,7 +54,8 @@ export default { BackgroundSelector, ComponentGap, PanelColorSelector, - PanelBackgroundColorSelector + PanelBackgroundColorSelector, + PanelRefreshTime }, data() { return { @@ -135,7 +138,7 @@ export default { chart.customFilter = JSON.stringify(this.chart.customFilter) canvasStyleData.chart = chart this.$store.commit('setCanvasStyle', canvasStyleData) - this.$store.commit('recordSnapshot','save') + this.$store.commit('recordSnapshot', 'save') } } } diff --git a/frontend/src/views/panel/panel.js b/frontend/src/views/panel/panel.js index 3d8cbeb7c4..f65a1dc72c 100644 --- a/frontend/src/views/panel/panel.js +++ b/frontend/src/views/panel/panel.js @@ -19,7 +19,8 @@ export const CANVAS_STYLE = { selfAdaption: true, auxiliaryMatrix: true, openCommonStyle: true, - panel: DEFAULT_PANEL_STYLE + panel: DEFAULT_PANEL_STYLE, + refreshTime: 5 // 仪表板刷新时间 默认五分钟 } export const DEFAULT_COMMON_CANVAS_STYLE_STRING = {