From 56ad79bd0d4c3afe0b2dc9681c49a6bb4857d6f8 Mon Sep 17 00:00:00 2001 From: hanyuxia Date: Tue, 19 Dec 2023 13:44:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:CN-1518=20Network=20Overview=E6=B5=81?= =?UTF-8?q?=E9=87=8F=E6=9B=B2=E7=BA=BF=E5=9B=BE=E7=9A=84=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=EF=BC=8C=E5=87=8F=E5=B0=91?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/charts2/Panel.vue | 15 +++++++-- .../networkOverview/NetworkOverviewLine.vue | 31 +++++++++++++++++-- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/views/charts2/Panel.vue b/src/views/charts2/Panel.vue index f8ff9532..a4a943c6 100644 --- a/src/views/charts2/Panel.vue +++ b/src/views/charts2/Panel.vue @@ -408,9 +408,18 @@ export default { }, metricChange (value) { const { query } = this.$route - const newUrl = urlParamsHandler(window.location.href, query, { - metric: value - }) + const rangeParam = query.range + let params = { metric: value } + // 优先级:url > config.js > 默认值。 + const dateRangeValue = rangeParam ? parseInt(rangeParam) : (DEFAULT_TIME_FILTER_RANGE.dashboard || 60) + if (dateRangeValue !== -1) { + const { startTime, endTime } = getNowTime(dateRangeValue) + this.timeFilter = { startTime: getSecond(startTime), endTime: getSecond(endTime), dateRangeValue: dateRangeValue } + this.$store.commit('setTimeRangeArray', [this.timeFilter.startTime, this.timeFilter.endTime]) + this.$store.commit('setTimeRangeFlag', dateRangeValue.value) + params = { metric: value, startTime: this.timeFilter.startTime, endTime: this.timeFilter.endTime, range: dateRangeValue } + } + const newUrl = urlParamsHandler(window.location.href, query, params) overwriteUrl(newUrl) }, // 动态查询评分基准 diff --git a/src/views/charts2/charts/networkOverview/NetworkOverviewLine.vue b/src/views/charts2/charts/networkOverview/NetworkOverviewLine.vue index f806bd53..7fe35230 100644 --- a/src/views/charts2/charts/networkOverview/NetworkOverviewLine.vue +++ b/src/views/charts2/charts/networkOverview/NetworkOverviewLine.vue @@ -191,7 +191,7 @@ export default { this.toggleLoading(true) axios.get(url, { params: params }).then(response => { const res = response.data - + this.chartDateObject = response if (response.status === 200) { this.isNoData = res.data.result.length === 0 this.showError = false @@ -214,6 +214,33 @@ export default { this.toggleLoading(false) }) }, + initTabData (val, show, active, n) { + const newVal = val ? _.clone(val) : this.metric + this.toggleLoading(true) + try { + const res = this.chartDateObject.data + if (this.chartDateObject.status === 200) { + this.isNoData = res.data.result.length === 0 + this.showError = false + if (!active) { + this.tabs = _.cloneDeep(this.tabsTemplate) + } + if (this.isNoData) { + this.lineTab = '' + this.tabs = _.cloneDeep(this.tabsTemplate) + } else { + this.initData(res.data.result, newVal, active, show, n) + } + } else { + this.httpError(res) + } + } catch (e) { + console.error(e) + this.httpError(e) + } finally { + this.toggleLoading(false) + } + }, echartsInit (echartsData, show) { // echarts内容在单元测试时不执行 if (!this.isUnitTesting) { @@ -360,7 +387,7 @@ export default { this.legendSelectChange(item, index, 'active') this.showMarkLine = !item.invertTab } - this.init(this.metric, this.showMarkLine, 'active') + this.initTabData(this.metric, this.showMarkLine, 'active') }, mouseenter (item) { if (this.isNoData) return