fix: 处理 快照因为网络波动导致的下载文件不全的问题

This commit is contained in:
zhangyu
2023-06-15 18:29:33 +08:00
parent d2ef2a92cf
commit 2cee77db39
3 changed files with 39 additions and 10 deletions

View File

@@ -18,10 +18,19 @@ export default {
panelId: this.showPanel.id,
start: this.$stringTimeParseToUnix(bus.formateTimeToTime(this.searchTime[0])),
end: this.$stringTimeParseToUnix(bus.formateTimeToTime(this.searchTime[1])),
t: new Date().getTime(),
vars: vars
}
this.$store.dispatch('dispatchHomeLoading', true)
this.$get('/visual/panel/snapshot', params, 'blob').then(res => {
let total = 10
let loaded = 0
this.$get('/visual/panel/snapshot', params, {
onDownloadProgress: function (progressEvent) {
// 处理原生进度事件
total = progressEvent.total
loaded = progressEvent.loaded
}
}).then(res => {
this.$store.dispatch('dispatchHomeLoading', false)
const self = this
let fileName = name
@@ -29,6 +38,10 @@ export default {
if (resFileName) {
fileName = resFileName
}
if (loaded < total) {
this.$message.error(res.msg || res.error || res || this.$t('NetWork Error'))
return
}
if (res.type == 'application/json') {
const reader = new FileReader() // 创建一个FileReader实例
reader.readAsText(res, 'utf-8') // 读取文件,结果用字符串形式表示
@@ -54,8 +67,6 @@ export default {
window.URL.revokeObjectURL(href) // 释放blob对象
}
this.$refs.topTool.closeDialog()
}, () => {
this.$message.error('123')
})
}
}

View File

@@ -4256,7 +4256,15 @@ export default {
params.direction = this.$refs.logDetail ? this.$refs.logDetail.getDescending() : 'backward'
}
this.$store.dispatch('dispatchHomeLoading', true)
this.$get('/visual/explore/snapshot', params, 'blob').then(res => {
let total = 10
let loaded = 0
this.$get('/visual/explore/snapshot', params, {
onDownloadProgress: function (progressEvent) {
// 处理原生进度事件
total = progressEvent.total
loaded = progressEvent.loaded
}
}).then(res => {
this.$store.dispatch('dispatchHomeLoading', false)
const self = this
let fileName = this.showMetrics ? 'Metrics explore' : 'Logs explore'
@@ -4264,6 +4272,10 @@ export default {
if (resFileName) {
fileName = resFileName
}
if (loaded < total) {
this.$message.error(res.msg || res.error || res || this.$t('NetWork Error'))
return
}
if (res.type == 'application/json') {
const reader = new FileReader() // 创建一个FileReader实例
reader.readAsText(res, 'utf-8') // 读取文件,结果用字符串形式表示

View File

@@ -103,12 +103,18 @@ axios.interceptors.response.use(
return Promise.reject(error)
}
)
export function get (url, params, responseType) {
const config = {
params: params
}
if (responseType) {
config.responseType = responseType
export function get (url, params, configs) {
let config = {}
if (configs) {
config = {
...configs,
...config,
params: params
}
} else {
config = {
params: params
}
}
return new Promise((resolve) => {
axios.get(url, config).then(response => {