fix: add debug trace and robust UI unlocking to finish stocktake action
This commit is contained in:
@ -849,38 +849,63 @@ const openFinishDialog = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const finishStocktake = async () => {
|
const finishStocktake = async () => {
|
||||||
|
// ====== 强制重置状态,防止锁死 ======
|
||||||
|
console.log('--- [结束盘点] 1. 函数触发,当前状态: ---', {
|
||||||
|
printing: printing.value,
|
||||||
|
btnLoading: btnLoading.value,
|
||||||
|
sessionId: currentSessionId.value,
|
||||||
|
isSessionActive: isSessionActive.value
|
||||||
|
})
|
||||||
|
printing.value = false
|
||||||
|
btnLoading.value = false
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
console.log('--- [结束盘点] 2. 准备弹窗确认 ---')
|
||||||
await ElMessageBox.confirm('确定要结束本次盘点吗?结束后将进入差异审核流程。', '结束确认', {
|
await ElMessageBox.confirm('确定要结束本次盘点吗?结束后将进入差异审核流程。', '结束确认', {
|
||||||
type: 'warning', confirmButtonText: '确定结束', cancelButtonText: '取消'
|
type: 'warning', confirmButtonText: '确定结束', cancelButtonText: '取消'
|
||||||
})
|
})
|
||||||
|
console.log('--- [结束盘点] 3. 用户确认结束盘点 ---')
|
||||||
|
|
||||||
printing.value = true
|
printing.value = true
|
||||||
|
console.log('--- [结束盘点] 4. 开始调用 API, session_id:', currentSessionId.value)
|
||||||
|
|
||||||
// 调用结束盘点 API
|
// 调用结束盘点 API
|
||||||
const res: any = await api.finishStocktake()
|
const res: any = await api.finishStocktake()
|
||||||
|
console.log('--- [结束盘点] 5. API 返回:', res)
|
||||||
|
|
||||||
// 结束会话
|
// 结束会话
|
||||||
scannedMap.value.clear()
|
scannedMap.value.clear()
|
||||||
isSessionActive.value = false
|
isSessionActive.value = false
|
||||||
showFinishDialog.value = false
|
showFinishDialog.value = false
|
||||||
|
console.log('--- [结束盘点] 6. 会话已清理 ---')
|
||||||
|
|
||||||
// 刷新服务器草稿计数
|
// 刷新服务器草稿计数
|
||||||
await checkServerDraft()
|
await checkServerDraft()
|
||||||
|
console.log('--- [结束盘点] 7. 草稿计数已刷新 ---')
|
||||||
|
|
||||||
ElMessage.success('盘点已结束,请查看差异报告进行审核')
|
ElMessage.success('盘点已结束,请查看差异报告进行审核')
|
||||||
|
console.log('--- [结束盘点] 8. 成功提示已显示 ---')
|
||||||
|
|
||||||
// 自动打开差异审核对话框
|
// ====== 强行打开差异审核对话框 ======
|
||||||
await openVarianceDialog()
|
console.log('--- [结束盘点] 9. 准备打开差异面板 ---')
|
||||||
|
showVarianceDialog.value = true
|
||||||
|
console.log('--- [结束盘点] 10. showVarianceDialog 已设为 true ---')
|
||||||
|
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
// ElMessageBox.cancel 是字符串 'cancel',需要正确判断
|
console.error('--- [结束盘点] 捕获异常:', e)
|
||||||
if (e === 'cancel' || e === 'cancel' as any) {
|
// 判断用户取消
|
||||||
return // 用户取消,不做任何提示
|
if (e === 'cancel' || String(e).includes('cancel')) {
|
||||||
|
console.log('--- [结束盘点] 用户取消操作 ---')
|
||||||
|
return
|
||||||
}
|
}
|
||||||
// 其他错误需要提示用户
|
// 其他错误需要提示用户
|
||||||
console.error('结束盘点失败:', e)
|
const errMsg = e?.message || e?.data?.message || String(e) || '结束盘点失败'
|
||||||
ElMessage.error(e?.message || e?.data?.message || '结束盘点失败,请重试')
|
console.error('--- [结束盘点] 错误详情:', errMsg)
|
||||||
|
ElMessage.error(errMsg)
|
||||||
} finally {
|
} finally {
|
||||||
printing.value = false
|
printing.value = false
|
||||||
|
btnLoading.value = false
|
||||||
|
console.log('--- [结束盘点] 11. finally 块执行完成,loading 已重置 ---')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user