This commit is contained in:
parent
c5ad343f61
commit
6b77e1a3f4
|
|
@ -97,6 +97,7 @@ export default {
|
||||||
type,
|
type,
|
||||||
toType,
|
toType,
|
||||||
publicFolderId,
|
publicFolderId,
|
||||||
|
fileName, // 添加文件名参数,用于错误提示
|
||||||
) {
|
) {
|
||||||
const params = {
|
const params = {
|
||||||
id: fileId,
|
id: fileId,
|
||||||
|
|
@ -109,11 +110,24 @@ export default {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await copyDocCenterAPI(params)
|
const res = await copyDocCenterAPI(params)
|
||||||
|
// 检查返回状态码,如果不是200,抛出错误
|
||||||
if (res.code !== 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
|
return res
|
||||||
} catch (error) {
|
} 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
|
throw error
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -131,29 +145,60 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
let successCount = 0
|
||||||
|
let failedFile = null
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 批量移动文件
|
// 使用 for...of 循环顺序执行,遇到失败立即停止
|
||||||
const movePromises = this.selectedFiles.map((file) =>
|
for (const file of this.selectedFiles) {
|
||||||
this.moveDocument(
|
try {
|
||||||
file.id,
|
await this.moveDocument(
|
||||||
this.selectedFolder.id,
|
file.id,
|
||||||
file.parentId,
|
this.selectedFolder.id,
|
||||||
file.parentIds,
|
file.parentId,
|
||||||
file.type,
|
file.parentIds,
|
||||||
this.selectedFolder.type,
|
file.type,
|
||||||
file.publicFolderId,
|
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({
|
return Promise.resolve({
|
||||||
success: true,
|
success: true,
|
||||||
movedCount: this.selectedFiles.length,
|
movedCount: successCount,
|
||||||
})
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// this.$message.error(error.message || '添加副本失败')
|
// 兜底错误处理
|
||||||
|
const errorMsg = error.message || '添加副本失败'
|
||||||
|
this.$message.error(errorMsg)
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
} finally {
|
} finally {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,7 @@ export default {
|
||||||
type,
|
type,
|
||||||
toType,
|
toType,
|
||||||
publicFolderId,
|
publicFolderId,
|
||||||
|
fileName, // 添加文件名参数,用于错误提示
|
||||||
) {
|
) {
|
||||||
const params = {
|
const params = {
|
||||||
id: fileId,
|
id: fileId,
|
||||||
|
|
@ -114,11 +115,22 @@ export default {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await moveDocCenterAPI(params)
|
const res = await moveDocCenterAPI(params)
|
||||||
|
// 检查返回状态码,如果不是200,抛出错误
|
||||||
if (res.code !== 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
|
return res
|
||||||
} catch (error) {
|
} 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
|
throw error
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -136,29 +148,59 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
let successCount = 0
|
||||||
|
let failedFile = null
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 批量移动文件
|
// 使用 for...of 循环顺序执行,遇到失败立即停止
|
||||||
const movePromises = this.selectedFiles.map((file) =>
|
for (const file of this.selectedFiles) {
|
||||||
this.moveDocument(
|
try {
|
||||||
file.id,
|
await this.moveDocument(
|
||||||
this.selectedFolder.id,
|
file.id,
|
||||||
file.parentId,
|
this.selectedFolder.id,
|
||||||
file.parentIds,
|
file.parentId,
|
||||||
file.type,
|
file.parentIds,
|
||||||
this.selectedFolder.type,
|
file.type,
|
||||||
file.publicFolderId,
|
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({
|
return Promise.resolve({
|
||||||
success: true,
|
success: true,
|
||||||
movedCount: this.selectedFiles.length,
|
movedCount: successCount,
|
||||||
})
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// this.$message.error(error.message || '移动失败')
|
// 兜底错误处理
|
||||||
|
const errorMsg = error.message || '移动失败'
|
||||||
|
this.$message.error(errorMsg)
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
} finally {
|
} finally {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue