fix: 修复前端错误信息丢失 & QQscTool filesetId 提取失败

- 前端 axios 对 HTTP 非2xx直接reject,catch块丢失后端错误信息,从 error.response.data.msg 提取实际错误展示给用户

- QQscTool extractFilesetId 正则未适配 Nuxt 转义JSON格式
This commit is contained in:
yukaidi
2026-05-29 13:45:57 +08:00
parent 9b70fb2778
commit 79fab8c0d6
5 changed files with 29 additions and 11 deletions

View File

@@ -500,9 +500,14 @@ export default {
}))
resolve(children)
} else {
this.$message.error(res.data.msg || '获取子节点失败')
resolve([])
}
}).catch(() => resolve([]))
}).catch(err => {
const msg = err.response?.data?.msg || err.message
if (msg) this.$message.error(msg)
resolve([])
})
} else {
resolve([])
}
@@ -540,7 +545,8 @@ export default {
}
} catch (error) {
console.error('进入文件夹失败:', error)
this.$message.error('进入文件夹失败')
const msg = error.response?.data?.msg || error.message || '进入文件夹失败'
this.$message.error(msg)
} finally {
this.loading = false
}
@@ -571,7 +577,8 @@ export default {
}
} catch (error) {
console.error('加载目录失败:', error)
this.$message.error('加载目录失败')
const msg = error.response?.data?.msg || error.message || '加载目录失败'
this.$message.error(msg)
} finally {
this.loading = false
}
@@ -669,7 +676,8 @@ export default {
}
} catch (error) {
console.error('获取下载信息失败:', error)
this.$message.error('获取下载信息失败,尝试直接下载')
const msg = error.response?.data?.msg || '获取下载信息失败,尝试直接下载'
this.$message.error(msg)
this.downloadFile(file)
} finally {
this.downloadLoading = false
@@ -755,7 +763,8 @@ export default {
}
} catch (error) {
console.error('发送到下载器失败:', error)
this.$message.error('发送到下载器失败: ' + error.message)
const msg = error.response?.data?.msg || error.message || '发送到下载器失败'
this.$message.error(msg)
} finally {
this.singleSendLoading = false
}

View File

@@ -1157,17 +1157,24 @@ export default {
params.auth = authParam
}
const response = await axios.get(`${this.baseAPI}${endpoint}`, { params })
if (response.data.code === 200) {
// this.$message.success(response.data.msg || '操作成功')
return response.data
} else {
// 在页面右下角显示一个查看详情”按钮 可以查看原json
// 在页面右下角显示一个查看详情”按钮 可以查看原json
this.errorDetail = response?.data
this.errorButtonVisible = true
throw new Error(response.data.msg || '操作失败')
}
} catch (error) {
// HTTP 非2xx时从响应体中提取后端返回的错误信息
if (error.response?.data?.msg) {
this.errorDetail = error.response.data
this.errorButtonVisible = true
this.$message.error(error.response.data.msg)
throw new Error(error.response.data.msg)
}
this.$message.error(error.message || '网络错误')
throw error
} finally {

View File

@@ -73,7 +73,7 @@ export default {
this.parseResult = res.data
this.downloadUrl = res.data.data?.directLink
} catch (e) {
this.error = '解析失败'
this.error = e.response?.data?.msg || e.response?.data?.error || '解析失败'
} finally {
this.loading = false
}

View File

@@ -55,7 +55,7 @@ export default {
const res = await axios.get('/v2/getFileList', { params: { url: this.url } })
this.directoryData = res.data.data || []
} catch (e) {
this.error = '目录解析失败'
this.error = e.response?.data?.msg || e.response?.data?.error || '目录解析失败'
} finally {
this.loading = false
}