WEB/src/utils/showResult.ts

64 lines
1.6 KiB
TypeScript

import { message } from 'antd';
/**
* 批量操作错误项接口
*/
export interface BatchErrorItem {
identifier: string;
error: string;
}
/**
* 批量操作结果接口
*/
export interface BatchOperationResult {
total: number;
processed: number;
created?: number;
updated?: number;
deleted?: number;
synced?: number;
errors?: BatchErrorItem[];
}
/**
* 显示批量操作结果(导入、删除等)
* @param result 批量操作结果对象
* @param operationType 操作类型,用于显示在消息中
*/
export function showBatchOperationResult(
result: BatchOperationResult,
operationType: string = '操作',
): string {
// 从 result.data 中获取实际数据(因为后端返回格式为 { success: true, data: {...} })
const data = (result as any).data || result;
const { total, processed, created, updated, deleted, errors } = data;
// 构建结果消息
let messageContent = `${operationType}结果:共 ${total} 条,成功 ${processed}`;
if (created) {
messageContent += `,创建 ${created}`;
}
if (updated) {
messageContent += `,更新 ${updated}`;
}
if (deleted) {
messageContent += `,删除 ${deleted}`;
}
// 处理错误情况
if (errors && errors.length > 0) {
messageContent += `,失败 ${errors.length}`;
// 显示错误详情
const errorDetails = errors
.map((err: BatchErrorItem) => `${err.identifier}: ${err.error}`)
.join('\n');
message.warning(messageContent + '\n\n错误详情:\n' + errorDetails);
} else {
message.success(messageContent);
}
return messageContent;
}