This commit is contained in:
parent
c5ad343f61
commit
6b77e1a3f4
|
|
@ -97,6 +97,7 @@ export default {
|
|||
type,
|
||||
toType,
|
||||
publicFolderId,
|
||||
fileName, // 添加文件名参数,用于错误提示
|
||||
) {
|
||||
const params = {
|
||||
id: fileId,
|
||||
|
|
@ -109,11 +110,24 @@ export default {
|
|||
}
|
||||
try {
|
||||
const res = await copyDocCenterAPI(params)
|
||||
// 检查返回状态码,如果不是200,抛出错误
|
||||
if (res.code !== 200) {
|
||||
throw new Error(res.msg || res.message || '添加副本失败')
|
||||
const errorMsg = res.msg || res.message || '添加副本失败'
|
||||
throw new Error(`"${fileName}"添加副本失败:${errorMsg}`)
|
||||
}
|
||||
return res
|
||||
} catch (error) {
|
||||
// 如果是HTTP 500错误
|
||||
if (error.response && error.response.status === 500) {
|
||||
throw new Error(`"${fileName}"添加副本失败:服务器内部错误`)
|
||||
}
|
||||
// 如果错误消息中不包含文件名,则添加文件名信息
|
||||
if (error.message && !error.message.includes(fileName)) {
|
||||
throw new Error(
|
||||
`"${fileName}"添加副本失败:${error.message}`,
|
||||
)
|
||||
}
|
||||
// 如果错误消息已包含文件名,直接抛出
|
||||
throw error
|
||||
}
|
||||
},
|
||||
|
|
@ -131,29 +145,60 @@ export default {
|
|||
}
|
||||
|
||||
this.loading = true
|
||||
let successCount = 0
|
||||
let failedFile = null
|
||||
|
||||
try {
|
||||
// 批量移动文件
|
||||
const movePromises = this.selectedFiles.map((file) =>
|
||||
this.moveDocument(
|
||||
file.id,
|
||||
this.selectedFolder.id,
|
||||
file.parentId,
|
||||
file.parentIds,
|
||||
file.type,
|
||||
this.selectedFolder.type,
|
||||
file.publicFolderId,
|
||||
),
|
||||
)
|
||||
// 使用 for...of 循环顺序执行,遇到失败立即停止
|
||||
for (const file of this.selectedFiles) {
|
||||
try {
|
||||
await this.moveDocument(
|
||||
file.id,
|
||||
this.selectedFolder.id,
|
||||
file.parentId,
|
||||
file.parentIds,
|
||||
file.type,
|
||||
this.selectedFolder.type,
|
||||
file.publicFolderId,
|
||||
file.name || file.fileName || '未知文件', // 传递文件名用于错误提示
|
||||
)
|
||||
successCount++
|
||||
} catch (error) {
|
||||
// 捕获添加副本失败的错误,记录失败的文件信息
|
||||
failedFile = {
|
||||
name: file.name || file.fileName || '未知文件',
|
||||
error: error.message || '添加副本失败',
|
||||
}
|
||||
// 立即停止后续操作
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
await Promise.all(movePromises)
|
||||
// 如果有失败的文件,提示用户
|
||||
if (failedFile) {
|
||||
this.$message.error(
|
||||
failedFile.error || `"${failedFile.name}"添加副本失败`,
|
||||
)
|
||||
return Promise.reject(
|
||||
new Error(
|
||||
failedFile.error ||
|
||||
`"${failedFile.name}"添加副本失败`,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
this.$message.success('添加副本成功')
|
||||
// 全部成功
|
||||
if (successCount > 0) {
|
||||
this.$message.success(`成功添加 ${successCount} 个副本`)
|
||||
}
|
||||
return Promise.resolve({
|
||||
success: true,
|
||||
movedCount: this.selectedFiles.length,
|
||||
movedCount: successCount,
|
||||
})
|
||||
} catch (error) {
|
||||
// this.$message.error(error.message || '添加副本失败')
|
||||
// 兜底错误处理
|
||||
const errorMsg = error.message || '添加副本失败'
|
||||
this.$message.error(errorMsg)
|
||||
return Promise.reject(error)
|
||||
} finally {
|
||||
this.loading = false
|
||||
|
|
|
|||
|
|
@ -102,6 +102,7 @@ export default {
|
|||
type,
|
||||
toType,
|
||||
publicFolderId,
|
||||
fileName, // 添加文件名参数,用于错误提示
|
||||
) {
|
||||
const params = {
|
||||
id: fileId,
|
||||
|
|
@ -114,11 +115,22 @@ export default {
|
|||
}
|
||||
try {
|
||||
const res = await moveDocCenterAPI(params)
|
||||
// 检查返回状态码,如果不是200,抛出错误
|
||||
if (res.code !== 200) {
|
||||
throw new Error(res.msg || res.message || '移动失败')
|
||||
const errorMsg = res.msg || res.message || '移动失败'
|
||||
throw new Error(`"${fileName}"移动失败:${errorMsg}`)
|
||||
}
|
||||
return res
|
||||
} catch (error) {
|
||||
// 如果是HTTP 500错误
|
||||
if (error.response && error.response.status === 500) {
|
||||
throw new Error(`文"${fileName}"移动失败:服务器内部错误`)
|
||||
}
|
||||
// 如果错误消息中不包含文件名,则添加文件名信息
|
||||
if (error.message && !error.message.includes(fileName)) {
|
||||
throw new Error(`"${fileName}"移动失败:${error.message}`)
|
||||
}
|
||||
// 如果错误消息已包含文件名,直接抛出
|
||||
throw error
|
||||
}
|
||||
},
|
||||
|
|
@ -136,29 +148,59 @@ export default {
|
|||
}
|
||||
|
||||
this.loading = true
|
||||
let successCount = 0
|
||||
let failedFile = null
|
||||
|
||||
try {
|
||||
// 批量移动文件
|
||||
const movePromises = this.selectedFiles.map((file) =>
|
||||
this.moveDocument(
|
||||
file.id,
|
||||
this.selectedFolder.id,
|
||||
file.parentId,
|
||||
file.parentIds,
|
||||
file.type,
|
||||
this.selectedFolder.type,
|
||||
file.publicFolderId,
|
||||
),
|
||||
)
|
||||
// 使用 for...of 循环顺序执行,遇到失败立即停止
|
||||
for (const file of this.selectedFiles) {
|
||||
try {
|
||||
await this.moveDocument(
|
||||
file.id,
|
||||
this.selectedFolder.id,
|
||||
file.parentId,
|
||||
file.parentIds,
|
||||
file.type,
|
||||
this.selectedFolder.type,
|
||||
file.publicFolderId,
|
||||
file.name || file.fileName || '未知文件', // 传递文件名用于错误提示
|
||||
)
|
||||
successCount++
|
||||
} catch (error) {
|
||||
// 捕获移动失败的错误,记录失败的文件信息
|
||||
failedFile = {
|
||||
name: file.name || file.fileName || '未知文件',
|
||||
error: error.message || '移动失败',
|
||||
}
|
||||
// 立即停止后续操作
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
await Promise.all(movePromises)
|
||||
// 如果有失败的文件,提示用户
|
||||
if (failedFile) {
|
||||
this.$message.error(
|
||||
failedFile.error || `"${failedFile.name}"移动失败`,
|
||||
)
|
||||
return Promise.reject(
|
||||
new Error(
|
||||
failedFile.error || `"${failedFile.name}"移动失败`,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
this.$message.success('移动成功')
|
||||
// 全部成功
|
||||
if (successCount > 0) {
|
||||
this.$message.success(`成功移动 ${successCount} 个文件夹`)
|
||||
}
|
||||
return Promise.resolve({
|
||||
success: true,
|
||||
movedCount: this.selectedFiles.length,
|
||||
movedCount: successCount,
|
||||
})
|
||||
} catch (error) {
|
||||
// this.$message.error(error.message || '移动失败')
|
||||
// 兜底错误处理
|
||||
const errorMsg = error.message || '移动失败'
|
||||
this.$message.error(errorMsg)
|
||||
return Promise.reject(error)
|
||||
} finally {
|
||||
this.loading = false
|
||||
|
|
|
|||
Loading…
Reference in New Issue