From e7cf758ffd287435aa24aaa511edce3b4d8c94b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B4=AA=E6=B4=AA?= <2498601771@qq.com> Date: Thu, 27 Oct 2022 15:47:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3timeRange=E4=B8=8B?= =?UTF-8?q?=E9=92=BB=E5=90=8E=E8=BF=94=E5=9B=9E=E6=97=B6=E9=97=B4=E8=A2=AB?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/panel.js | 21 +++++++++++++++++++++ src/views/charts2/Panel.vue | 20 +++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/store/modules/panel.js b/src/store/modules/panel.js index d383649d..feac4dd6 100644 --- a/src/store/modules/panel.js +++ b/src/store/modules/panel.js @@ -52,6 +52,9 @@ const panel = { npmLocationSide: 'server', // npm location的查询条件--方向 refreshTime: null, // 自动刷新时间的秒数 refreshFlag: true, // 关闭自动刷新标志,true为off,false即开启自动刷新 + timeRangeArray: [], // 时间范围列表:开始/结束时间 + timeRangeFlag: 60, // 时间范围标志,默认60即一小时,-1为手动选择的时间范围 + routerPath: '', // 当前路由路径 httpCancel: null // 终止http请求 }, mutations: { @@ -148,6 +151,15 @@ const panel = { setRefreshFlag (state, flag) { state.refreshFlag = flag }, + setTimeRangeArray (state, array) { + state.timeRangeArray = array + }, + setTimeRangeFlag (state, flag) { + state.timeRangeFlag = flag + }, + setRouterPath (state, path) { + state.routerPath = path + }, setHttpCancel (state, cancel) { state.httpCancel = cancel } @@ -233,6 +245,15 @@ const panel = { }, getNpmThirdLevelMenuScore (state) { return state.npmThirdLevelMenuScore + }, + getTimeRangeArray (state) { + return state.timeRangeArray + }, + getTimeRangeFlag (state) { + return state.timeRangeFlag + }, + getRouterPath (state) { + return state.routerPath } }, actions: { diff --git a/src/views/charts2/Panel.vue b/src/views/charts2/Panel.vue index 4cea1b23..0e962b1b 100644 --- a/src/views/charts2/Panel.vue +++ b/src/views/charts2/Panel.vue @@ -167,7 +167,21 @@ export default { const panel = ref({}) let panelType = 1 // 取得panel的type - const { params, query } = useRoute() + const { params, query, path } = useRoute() + if (path === store.getters.getRouterPath) { + if (query.startTime === undefined && store.getters.getTimeRangeFlag !== null) { + // 为了避免下钻后将timeRange由范围改为为小时制 + const newUrl = urlParamsHandler(window.location.href, query, { + startTime: store.getters.getTimeRangeArray[0], + endTime: store.getters.getTimeRangeArray[1], + range: store.getters.getTimeRangeFlag + }) + overwriteUrl(newUrl) + } + } else { + store.commit('setTimeRangeArray', []) + store.commit('setTimeRangeFlag', null) + } const thirdPanel = query.thirdPanel const fourthPanel = query.fourthPanel if (fourthPanel) { @@ -196,6 +210,7 @@ export default { timeFilter.value.startTime = parseInt(startTimeParam) timeFilter.value.endTime = parseInt(endTimeParam) } + store.commit('setRouterPath', path) // npm是否展示分数 const showScorePanel = [drillDownPanelTypeMapping.npmOverviewIp, drillDownPanelTypeMapping.npmOverviewDomain, drillDownPanelTypeMapping.npmOverviewApp, drillDownPanelTypeMapping.npmOverviewCommon, drillDownPanelTypeMapping.npmThirdMenu] @@ -242,6 +257,9 @@ export default { reload (startTime, endTime, dateRangeValue) { this.timeFilter = { startTime: getSecond(startTime), endTime: getSecond(endTime), dateRangeValue: dateRangeValue } const { query } = this.$route + this.$store.commit('setTimeRangeArray', [this.timeFilter.startTime, this.timeFilter.endTime]) + this.$store.commit('setTimeRangeFlag', dateRangeValue.value) + const newUrl = urlParamsHandler(window.location.href, query, { startTime: this.timeFilter.startTime, endTime: this.timeFilter.endTime,