This commit is contained in:
BianLzhaoMin 2025-11-25 11:06:29 +08:00
parent c5ad343f61
commit 6b77e1a3f4
2 changed files with 121 additions and 34 deletions

View File

@ -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,10 +145,14 @@ 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 {
await this.moveDocument(
file.id, file.id,
this.selectedFolder.id, this.selectedFolder.id,
file.parentId, file.parentId,
@ -142,18 +160,45 @@ export default {
file.type, file.type,
this.selectedFolder.type, this.selectedFolder.type,
file.publicFolderId, file.publicFolderId,
file.name || file.fileName || '未知文件', //
)
successCount++
} catch (error) {
//
failedFile = {
name: file.name || file.fileName || '未知文件',
error: error.message || '添加副本失败',
}
//
break
}
}
//
if (failedFile) {
this.$message.error(
failedFile.error || `"${failedFile.name}"添加副本失败`,
)
return Promise.reject(
new Error(
failedFile.error ||
`"${failedFile.name}"添加副本失败`,
), ),
) )
}
await Promise.all(movePromises) //
if (successCount > 0) {
this.$message.success('添加副本成功') 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

View File

@ -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,10 +148,14 @@ 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 {
await this.moveDocument(
file.id, file.id,
this.selectedFolder.id, this.selectedFolder.id,
file.parentId, file.parentId,
@ -147,18 +163,44 @@ export default {
file.type, file.type,
this.selectedFolder.type, this.selectedFolder.type,
file.publicFolderId, file.publicFolderId,
file.name || file.fileName || '未知文件', //
)
successCount++
} catch (error) {
//
failedFile = {
name: file.name || file.fileName || '未知文件',
error: error.message || '移动失败',
}
//
break
}
}
//
if (failedFile) {
this.$message.error(
failedFile.error || `"${failedFile.name}"移动失败`,
)
return Promise.reject(
new Error(
failedFile.error || `"${failedFile.name}"移动失败`,
), ),
) )
}
await Promise.all(movePromises) //
if (successCount > 0) {
this.$message.success('移动成功') 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