云
2026-10-31 964cfa12263cf51b2a3d1ef281130d0e808e9078
src/views/mes/pro/feedback/modules/batch-feedback.vue
@@ -5,7 +5,7 @@
import { useVbenModal } from '@vben/common-ui';
import { Button, message, Tag } from 'ant-design-vue';
import { Button, message, Modal as AntModal, Tag } from 'ant-design-vue';
import { batchCreateFeedback } from '#/api/mes/pro/feedback';
import ProTaskSelectDialog from '#/views/mes/pro/task/components/select-dialog.vue';
@@ -73,12 +73,18 @@
      remark: formData.value.remark || undefined,
    });
    if (result.failCount) {
      message.warning(
        `批量报工完成:成功 ${result.successCount} 个,失败 ${result.failCount} 个`,
      );
    } else {
      message.success(`批量报工成功,共 ${result.successCount} 个`);
      const failures = (result.results ?? []).filter((row) => !row.success);
      const names = new Map(selectedTasks.value.map((task) => [task.id, task.code]));
      AntModal.warning({
        title: `成功 ${result.successCount} 个,失败 ${result.failCount} 个`,
        content: failures.map((row) => `${names.get(row.taskId) ?? row.taskId}:${row.errorMsg ?? '报工失败'}`).join(';'),
      });
      const failedIds = new Set(failures.map((row) => row.taskId));
      selectedTasks.value = selectedTasks.value.filter((task) => failedIds.has(task.id!));
      emit('success');
      return;
    }
    message.success(`批量报工成功,共 ${result.successCount} 个`);
    modalApi.close();
    emit('success');
  } finally {