NEZ-3004 feat: dashboard 页面 时间选择器组件增加 时间范围锁定功能

This commit is contained in:
zhangyu
2023-07-20 14:39:41 +08:00
parent 006df837d9
commit 1e0d19d07d
11 changed files with 151 additions and 18 deletions

View File

@@ -51,7 +51,7 @@
<!-- 仪表盘轮播 -->
<playlist v-if="playListControls" :playlistObj="playlistObj" :panelData="panelData" @stopPlaylist="stopPlaylist" @changePlay="panelChange"></playlist>
<pick-time id="panel" ref="pickTime" v-model="searchTime" :refresh-data-func="dateChange" :use-chart-unit="false" class="margin-r-10" :sign="showPanel.id" :from="fromRoute.dashboard"></pick-time>
<pick-time id="panel" ref="pickTime" v-model="searchTime" :refresh-data-func="dateChange" :use-chart-unit="false" :show-locked="true" class="margin-r-10" :sign="showPanel.id" :from="fromRoute.dashboard"></pick-time>
<template v-if="!playListControls">
<!-- 切换查看模式 -->
@@ -378,6 +378,12 @@ export default {
},
panelLock () {
return this.$store.getters.getPanelLock
},
timePickerLocked () {
return this.$store.getters.getTimePickerLocked
},
timePickerRange () {
return this.$store.getters.getTimePickerRange
}
},
methods: {
@@ -802,6 +808,10 @@ export default {
time: this.searchTime,
nowTimeType: this.nowTimeType
})
this.$store.dispatch('dispatchTimePickerRange', {
time: this.searchTime,
nowTimeType: this.nowTimeType
})
// 选择时间范围时更新路由
if (route) {
const param = { ...this.$route.query }
@@ -1140,8 +1150,21 @@ export default {
time: this.searchTime,
nowTimeType: this.nowTimeType
})
this.$store.dispatch('dispatchTimePickerRange', {
time: this.searchTime,
nowTimeType: this.nowTimeType
})
})
},
setTimePickerRange () {
if (!this.timePickerRange.nowTimeType) {
this.setDefaultTimeRange()
}
const nowTimeType = this.nowTimeType = this.timePickerRange.nowTimeType
this.searchTime = this.timePickerRange.time
this.$refs.pickTime.$refs.timePicker.setTimeRange(this.nowTimeType, this.searchTime)
this.setSearchTime(nowTimeType.type, nowTimeType.value, nowTimeType)
},
// 设置默认刷新
setDefaultRefresh () {
this.$nextTick(() => {
@@ -1199,7 +1222,11 @@ export default {
watch: {
showPanel: {
handler () {
this.setDefaultTimeRange()
if (this.timePickerLocked && this.timePickerRange && this.timePickerRange.nowTimeType) {
this.setTimePickerRange()
} else {
this.setDefaultTimeRange()
}
this.setDefaultRefresh()
}
},