WEB/src/utils/showResult.ts

64 lines
1.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}