From 9dc6a7c82a1accacf3ff4660aace0817d6e2d6c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Wed, 3 Dec 2025 10:30:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=89=B9=E6=AE=8A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/warehouse/changeHUSpecialItem.vue | 126 ++++++++---------- 1 file changed, 53 insertions(+), 73 deletions(-) diff --git a/src/views/modules/warehouse/changeHUSpecialItem.vue b/src/views/modules/warehouse/changeHUSpecialItem.vue index 342bb91..3574608 100644 --- a/src/views/modules/warehouse/changeHUSpecialItem.vue +++ b/src/views/modules/warehouse/changeHUSpecialItem.vue @@ -760,21 +760,10 @@ export default { batchChangeWdr(requestData).then(({ data }) => { if (data && data.code == 0) { const result = data.row - if (result.failCount === 0) { - this.$message.success(`W/D/R修改成功,共处理${result.successCount}个标签`) - } else { - // 部分失败,显示详细信息 - rqrq - this.$alert( - `成功:${result.successCount}个标签
失败:${result.failCount}个标签

失败标签:${result.failedUnitIds ? result.failedUnitIds.join(', ') : '无'}`, - 'W/D/R修改结果', - { - dangerouslyUseHTMLString: true, - confirmButtonText: '确定' - } - ) - } - this.closeWdrDialog() - this.getDataList() + this.showChangeResult(result, 'W/D/R修改', () => { + this.closeWdrDialog() + this.getDataList() + }) } else { this.$alert(data.msg || 'W/D/R修改失败', '错误') } @@ -854,36 +843,10 @@ export default { batchChangeExpiryDate(requestData).then(({ data }) => { if (data && data.code == 0) { const result = data.row - - if (result.allSuccess) { - // 全部成功 - rqrq - this.$message.success(`失效日期修改成功,共更新 ${result.successCount} 行ERP库存`) + this.showChangeResult(result, '失效日期修改', () => { this.closeExpDateDialog() - } else { - // 部分失败,弹窗显示失败的标签 - rqrq - let failedMsg = `成功:${result.successCount} 行,失败:${result.failCount} 行\n\n` - failedMsg += `以下标签更新失败:\n` - - for (let i = 0; i < result.failedUnitIds.length; i++) { - failedMsg += `- ${result.failedUnitIds[i]}` - if (result.failedReasons && result.failedReasons[i]) { - failedMsg += `(${result.failedReasons[i]})` - } - failedMsg += '\n' - } - - this.$alert(failedMsg, '部分更新失败', { - confirmButtonText: '确定', - type: 'warning', - callback: () => { - this.closeExpDateDialog() - this.getDataList() - } - }) - return - } - - this.getDataList() + this.getDataList() + }) } else { this.$alert(data.msg || '修改失败', '提示', { type: 'error' }) } @@ -1032,36 +995,10 @@ export default { batchChangeAvailabilityControlId(requestData).then(({ data }) => { if (data && data.code == 0) { const result = data.row - - if (result.allSuccess) { - // 全部成功 - rqrq - this.$message.success(`Availability Control ID修改成功,共更新 ${result.successCount} 行ERP库存`) + this.showChangeResult(result, 'Availability Control ID修改', () => { this.closeAvailDialog() - } else { - // 部分失败,弹窗显示失败的标签 - rqrq - let failedMsg = `成功:${result.successCount} 行,失败:${result.failCount} 行\n\n` - failedMsg += `以下标签更新失败:\n` - - for (let i = 0; i < result.failedUnitIds.length; i++) { - failedMsg += `- ${result.failedUnitIds[i]}` - if (result.failedReasons && result.failedReasons[i]) { - failedMsg += `(${result.failedReasons[i]})` - } - failedMsg += '\n' - } - - this.$alert(failedMsg, '部分更新失败', { - confirmButtonText: '确定', - type: 'warning', - callback: () => { - this.closeAvailDialog() - this.getDataList() - } - }) - return - } - - this.getDataList() + this.getDataList() + }) } else { this.$alert(data.msg || '修改失败', '提示', { type: 'error' }) } @@ -1070,6 +1007,49 @@ export default { }).finally(() => { this.availSaveLoading = false }) + }, + + // ==================== 通用结果显示方法 - rqrq ==================== + + /** + * 显示修改结果弹窗 - rqrq + * @param result 后端返回的结果对象 + * @param title 操作标题 + * @param callback 弹窗关闭后的回调 + */ + showChangeResult(result, title, callback) { + const successCount = result.successCount || 0 + const failCount = result.failCount || 0 + const failedUnitIds = result.failedUnitIds || [] + const failedReasons = result.failedReasons || [] + + // 构建弹窗内容 - rqrq + let htmlContent = `
` + htmlContent += `

成功数量:${successCount}

` + htmlContent += `

失败数量:${failCount}

` + + if (failCount > 0 && failedUnitIds.length > 0) { + // 失败序列号(用逗号分隔)- rqrq + htmlContent += `

失败序列号:${failedUnitIds.join(', ')}

` + + // 失败报错(只显示第一个)- rqrq + const firstError = failedReasons.length > 0 ? failedReasons[0] : '未知错误' + htmlContent += `

失败报错:${firstError}

` + } + htmlContent += `
` + + // 根据是否有失败决定弹窗类型 - rqrq + const dialogType = failCount > 0 ? 'warning' : 'success' + const dialogTitle = failCount > 0 ? `${title}结果(部分失败)` : `${title}结果` + + this.$alert(htmlContent, dialogTitle, { + dangerouslyUseHTMLString: true, + confirmButtonText: '确定', + type: dialogType, + callback: () => { + if (callback) callback() + } + }) } } }