diff --git a/src/views/modules/warehouse/labelTransactionLog.vue b/src/views/modules/warehouse/labelTransactionLog.vue index 8bcd445..2d5ddbb 100644 --- a/src/views/modules/warehouse/labelTransactionLog.vue +++ b/src/views/modules/warehouse/labelTransactionLog.vue @@ -169,6 +169,13 @@ @click="batchRetryHandle"> 手动重试 + + 异常重试 + @@ -544,6 +551,67 @@ export default { this.dataListSelections = val }, + // 异常重试 + exceptionRetryHandle() { + if (this.dataListSelections.length === 0) { + this.$message.warning('请选择要重试的记录!') + return + } + + const count = this.dataListSelections.length + this.$confirm(`确定要异常重试选中的 ${count} 条记录吗?`, '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + const loading = this.$loading({ + lock: true, + text: `正在重试 ${count} 条记录,请稍候...`, + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)' + }) + + // 构造批量重试参数 + const retryList = this.dataListSelections.map(item => ({ + site: item.site, + buNo: item.buNo, + transactionId: item.transactionId + })) + + // 调用批量重试接口 + labelTransactionLogRetry({ retryList, isExceptionRetry: true }).then(({ data }) => { + loading.close() + if (data && data.code === 0) { + const result = data.result || {} + const successCount = result.successCount || 0 + const failureCount = result.failureCount || 0 + + let message = `重试完成!成功:${successCount},失败:${failureCount}` + if (successCount === count) { + this.$message.success(message) + } else if (successCount > 0) { + this.$message.warning(message) + } else { + this.$message.error(message) + } + + // 显示详细结果对话框 + if (result.details && result.details.length > 0) { + this.showRetryResultDialog(result.details) + } + + // 刷新列表 + this.getDataList() + } else { + this.$message.error(data.msg || '重试失败') + } + }).catch(error => { + loading.close() + this.$message.error('重试失败:' + (error.message || '网络错误')) + }) + }).catch(() => {}) + }, + // 批量手动重试 batchRetryHandle() { if (this.dataListSelections.length === 0) {