refactor(品牌工具页): 历史批量删除抽为 runBatchDelete

16 个品牌页逐字相同的 batchDeleteHistory 循环(逐条删除 + 容忍个别失败计数)
收敛为 shared/utils/batch-delete.ts 的 runBatchDelete;各页仅保留自己的删除调用
与提示文案。补单测 4 例(空列表 / 全成功 / 部分失败继续 / 非 Error 异常)。

净减约 120 行;vue-tsc 构建与 699 个前端单测通过。
This commit is contained in:
2026-09-13 23:32:27 +08:00
parent dc6e8924a9
commit 14a723ab1c
18 changed files with 132 additions and 160 deletions
@@ -127,6 +127,7 @@ import type { UploadFileVo } from '@/shared/api/upload.ts'
import type { UploadedFileRef } from '@/shared/api/types/upload.ts'
import { formatDateTime } from '@/shared/utils/datetime'
import { uploadPathsToJava } from '@/shared/utils/upload-to-java'
import { runBatchDelete } from '@/shared/utils/batch-delete'
const uploadedFiles = ref<UploadFileVo[]>([])
const strategy = ref<'Terms' | 'Simple'>('Simple')
@@ -532,19 +533,12 @@ onBeforeUnmount(() => {
* 历史记录批量删除:复用单条删除逻辑(删除后原函数各自刷新列表)
*/
async function batchDeleteHistory(views: TaskItemView[]) {
if (!views.length) return
let failed = 0
for (const view of views) {
try {
await deleteTask(itemSource(view))
} catch {
failed += 1
}
}
const { total, failed } = await runBatchDelete(views, (view) => deleteTask(itemSource(view)))
if (!total) return
if (failed > 0) {
ElMessage.warning(`删除完成,${failed} 条失败`)
} else {
ElMessage.success(`已删除 ${views.length} 条历史记录`)
ElMessage.success(`已删除 ${total} 条历史记录`)
}
}
</script>