From dce437b14621ef0ff6ae56d3b6fb6879e475f8a5 Mon Sep 17 00:00:00 2001 From: zhangyu Date: Fri, 31 Dec 2021 17:14:26 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=9B=A0?= =?UTF-8?q?=E4=B8=BA=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=AF=BC=E8=87=B4panel=20chart=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=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/components/chart/panelChart.vue | 6 +- .../src/components/common/multipleTime.vue | 12 ++-- .../page/dashboard/explore/exploreItem.vue | 28 ++++---- nezha-fronted/src/libs/bus.js | 68 ++++--------------- 4 files changed, 36 insertions(+), 78 deletions(-) diff --git a/nezha-fronted/src/components/chart/panelChart.vue b/nezha-fronted/src/components/chart/panelChart.vue index e43507824..cfcd80804 100644 --- a/nezha-fronted/src/components/chart/panelChart.vue +++ b/nezha-fronted/src/components/chart/panelChart.vue @@ -111,14 +111,14 @@ export default { dateChange (filter, multipleTime) { this.loading = true // TODO assetInfo、endpointInfo、echarts等进行不同的处理 - let startTime = filter.start_time - let endTime = filter.end_time + let startTime = bus.formateTimeToTime(filter.start_time) + let endTime = bus.formateTimeToTime(filter.end_time) const step = bus.getStep(startTime, endTime) startTime = this.$stringTimeParseToUnix(startTime) endTime = this.$stringTimeParseToUnix(endTime) const elements = this.chartInfo.elements || [] if (multipleTime.length) { - const minusTime = (new Date(filter.start_time).getTime() - new Date(multipleTime[0]).getTime()) + const minusTime = (new Date(bus.formateTimeToTime(filter.start_time)).getTime() - new Date(bus.formateTimeToTime(multipleTime[0])).getTime()) this.minusTime = minusTime this.multipleTime = true } else { diff --git a/nezha-fronted/src/components/common/multipleTime.vue b/nezha-fronted/src/components/common/multipleTime.vue index b9462885c..9f82b7dfa 100644 --- a/nezha-fronted/src/components/common/multipleTime.vue +++ b/nezha-fronted/src/components/common/multipleTime.vue @@ -269,20 +269,20 @@ export default { }, setSearchTime (type, val) { if (type === 'minute') { - const startTime = bus.timeFormate(new Date(this.stepSearchTime[0]).getTime() - val * 60 * 1000, this.multipleTime) - const endTime = bus.timeFormate(new Date(this.stepSearchTime[1]).getTime() - val * 60 * 1000, this.multipleTime) + const startTime = bus.timeFormate(new Date(bus.formateTimeToTime(this.stepSearchTime[0])).getTime() - val * 60 * 1000) + const endTime = bus.timeFormate(new Date(bus.formateTimeToTime(this.stepSearchTime[1])).getTime() - val * 60 * 1000) this.$set(this.searchTime, 0, startTime) this.$set(this.searchTime, 1, endTime) this.$set(this.searchTime, 2, val + 'm') } else if (type === 'hour') { - const startTime = bus.timeFormate(new Date(this.stepSearchTime[0]).getTime() - val * 60 * 60 * 1000, this.multipleTime) - const endTime = bus.timeFormate(new Date(this.stepSearchTime[1]).getTime() - val * 60 * 60 * 1000, this.multipleTime) + const startTime = bus.timeFormate(new Date(bus.formateTimeToTime(this.stepSearchTime[0])).getTime() - val * 60 * 60 * 1000) + const endTime = bus.timeFormate(new Date(bus.formateTimeToTime(this.stepSearchTime[1])).getTime() - val * 60 * 60 * 1000) this.$set(this.searchTime, 0, startTime) this.$set(this.searchTime, 1, endTime) this.$set(this.searchTime, 2, val + 'h') } else if (type === 'date') { - const startTime = bus.timeFormate(new Date(this.stepSearchTime[0]).getTime() - val * 24 * 60 * 60 * 1000, this.multipleTime) - const endTime = bus.timeFormate(new Date(this.stepSearchTime[1]).getTime() - val * 24 * 60 * 60 * 1000, this.multipleTime) + const startTime = bus.timeFormate(new Date(bus.formateTimeToTime(this.stepSearchTime[0])).getTime() - val * 24 * 60 * 60 * 1000) + const endTime = bus.timeFormate(new Date(bus.formateTimeToTime(this.stepSearchTime[1])).getTime() - val * 24 * 60 * 60 * 1000) this.$set(this.searchTime, 0, startTime) this.$set(this.searchTime, 1, endTime) this.$set(this.searchTime, 2, val + 'd') diff --git a/nezha-fronted/src/components/page/dashboard/explore/exploreItem.vue b/nezha-fronted/src/components/page/dashboard/explore/exploreItem.vue index cacd43504..05d876c79 100644 --- a/nezha-fronted/src/components/page/dashboard/explore/exploreItem.vue +++ b/nezha-fronted/src/components/page/dashboard/explore/exploreItem.vue @@ -380,8 +380,8 @@ export default { promqlKeys: [], expressions: [''], filterTime: [ - bus.timeFormate(bus.getOffsetTimezoneData(-1), 'YYYY-MM-DD HH:mm:ss'), - bus.timeFormate(bus.getOffsetTimezoneData(), 'YYYY-MM-DD HH:mm:ss') + bus.timeFormate(bus.getOffsetTimezoneData(-1)), + bus.timeFormate(bus.getOffsetTimezoneData()) ], /* 工具参数 */ @@ -455,8 +455,8 @@ export default { exportLog ({ limit, descending }) { const params = { logql: this.expressions, - start: this.$stringTimeParseToUnix(this.filterTime[0]), - end: this.$stringTimeParseToUnix(this.filterTime[1]), + start: this.$stringTimeParseToUnix(bus.formateTimeToTime(this.filterTime[0])), + end: this.$stringTimeParseToUnix(bus.formateTimeToTime(this.filterTime[1])), direction: descending ? 'backward' : 'forward', limit } @@ -500,7 +500,7 @@ export default { const requestArr = [] this.expressions.forEach((item, index) => { if (item != '') { - requestArr.push(this.$get('/logs/loki/api/v1/query_range?format=1&query=' + encodeURIComponent(item) + '&start=' + this.$stringTimeParseToUnix(this.filterTime[0]) + '&end=' + this.$stringTimeParseToUnix(this.filterTime[1]) + '&limit=' + limit)) + requestArr.push(this.$get('/logs/loki/api/v1/query_range?format=1&query=' + encodeURIComponent(item) + '&start=' + this.$stringTimeParseToUnix(bus.formateTimeToTime(this.filterTime[0])) + '&end=' + this.$stringTimeParseToUnix(bus.formateTimeToTime(this.filterTime[1])) + '&limit=' + limit)) } }) if (requestArr.length > 0) { @@ -640,10 +640,10 @@ export default { const queryExpression = [] this.expressions.forEach((item, index) => { if (item != '') { - const step = bus.getStep(this.filterTime[0], this.filterTime[1]) + const step = bus.getStep(bus.formateTimeToTime(this.filterTime[0]), bus.formateTimeToTime(this.filterTime[1])) promqlInputIndexs.push(index) queryExpression.push(item) - requestArr.push(this.$get('/prom/api/v1/query_range?query=' + encodeURIComponent(item) + '&start=' + this.$stringTimeParseToUnix(this.filterTime[0]) + '&end=' + this.$stringTimeParseToUnix(this.filterTime[1]) + '&step=' + step + '&nullType=null')) + requestArr.push(this.$get('/prom/api/v1/query_range?query=' + encodeURIComponent(item) + '&start=' + this.$stringTimeParseToUnix(bus.formateTimeToTime(this.filterTime[0])) + '&end=' + this.$stringTimeParseToUnix(bus.formateTimeToTime(this.filterTime[1])) + '&step=' + step + '&nullType=null')) } }) if (requestArr.length > 0) { @@ -754,7 +754,7 @@ export default { } this.$set(metrics, 'value#' + index, chartDataFormat.getUnit(this.chartUnit || 2).compute(result.value[1], null, 2)) - this.$set(metrics, 'time', bus.timeFormate(bus.computeTimezone(result.value[0] * 1000), 'YYYY-MM-DD HH:mm:ss')) + this.$set(metrics, 'time', bus.timeFormate(bus.computeTimezone(result.value[0] * 1000))) for (const key in metrics) { const label = { label: key, @@ -824,20 +824,20 @@ export default { }, setSearchTime (type, val) { // 设置searchTime if (type === 'minute') { - const startTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setMinutes(new Date(bus.computeTimezone(new Date().getTime())).getMinutes() - val), 'YYYY-MM-DD HH:mm:ss') - const endTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())), 'YYYY-MM-DD HH:mm:ss') + const startTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setMinutes(new Date(bus.computeTimezone(new Date().getTime())).getMinutes() - val)) + const endTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime()))) this.$set(this.filterTime, 0, startTime) this.$set(this.filterTime, 1, endTime) this.$set(this.filterTime, 2, val + 'm') } else if (type === 'hour') { - const startTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setHours(new Date(bus.computeTimezone(new Date().getTime())).getHours() - val), 'YYYY-MM-DD HH:mm:ss') - const endTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())), 'YYYY-MM-DD HH:mm:ss') + const startTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setHours(new Date(bus.computeTimezone(new Date().getTime())).getHours() - val)) + const endTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime()))) this.$set(this.filterTime, 0, startTime) this.$set(this.filterTime, 1, endTime) this.$set(this.filterTime, 2, val + 'h') } else if (type === 'date') { - const startTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setDate(new Date(bus.computeTimezone(new Date().getTime())).getDate() - val), 'YYYY-MM-DD HH:mm:ss') - const endTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())), 'YYYY-MM-DD HH:mm:ss') + const startTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setDate(new Date(bus.computeTimezone(new Date().getTime())).getDate() - val)) + const endTime = bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime()))) this.$set(this.filterTime, 0, startTime) this.$set(this.filterTime, 1, endTime) this.$set(this.filterTime, 2, val + 'd') diff --git a/nezha-fronted/src/libs/bus.js b/nezha-fronted/src/libs/bus.js index e453be37f..ebf8af8da 100644 --- a/nezha-fronted/src/libs/bus.js +++ b/nezha-fronted/src/libs/bus.js @@ -66,64 +66,22 @@ export default new Vue({ return `${yy}${mm}${dd}` }, timeFormate (date, fmt = localStorage.getItem('nz-default-dateFormat') ? localStorage.getItem('nz-default-dateFormat') : 'YYYY-MM-DD HH:mm:ss') { - const time = new Date(date) - let fm = fmt - console.log(time, fm) + let time = '' + if (!isNaN(date)) { + time = new Date(date) + } else { + time = moment(date, fmt) + } + const fm = fmt return moment(time).format(fm) - // // fmt 自定义格式,如:yy-MM-dd - // let week = '' - // switch (time.getDay()) { - // case 0: - // week = '周日' - // break - // case 1: - // week = '周一' - // break - // case 2: - // week = '周二' - // break - // case 3: - // week = '周三' - // break - // case 4: - // week = '周四' - // break - // case 5: - // week = '周五' - // break - // case 6: - // week = '周六' - // break - // default: - // week = '' - // break - // } - // const o = { - // 'M+': time.getMonth() + 1, // 月份 - // 'd+': time.getDate(), // 日 - // hh: time.getHours(), // 小时 - // HH: time.getHours(), // 小时 - // 'm+': time.getMinutes(), // 分 - // 's+': time.getSeconds(), // 秒 - // 'q+': Math.floor((time.getMonth() + 3) / 3), // 季度 - // S: time.getMilliseconds(), // 毫秒 - // w: week - // } - // if (/(y+)/.test(fm)) { - // fm = fm.replace(RegExp.$1, (time.getFullYear().toString()).substr(4 - RegExp.$1.length)) - // } - // Object.keys(o).forEach((k) => { - // if (new RegExp(`(${k})`).test(fm)) { - // fm = fm.replace(RegExp.$1, (RegExp.$1.length === 1) - // ? (o[k]) - // : ((`00${o[k]}`).substr((`${o[k]}`).length))) - // } - // }) - return fm }, formateTimeToTime (date, fmt = localStorage.getItem('nz-default-dateFormat') ? localStorage.getItem('nz-default-dateFormat') : 'YYYY-MM-DD HH:mm:ss') { - const newDate = moment(date, fmt) - return newDate + if (isNaN(date)) { + const newDate = moment(date, fmt) + return newDate + } else { + return date + } }, // 格式化tag为字符串表达式 tagsToString (metric, arr) {