fix: add UI state transition and error handling for finish stocktake action
This commit is contained in:
@ -503,11 +503,11 @@ onMounted(async () => {
|
|||||||
|
|
||||||
const checkServerDraft = async () => {
|
const checkServerDraft = async () => {
|
||||||
try {
|
try {
|
||||||
// 只获取未完成的草稿数量
|
// 获取草稿数量(后端已移除 is_finished 字段,直接返回所有记录)
|
||||||
const res: any = await request({
|
const res: any = await request({
|
||||||
url: '/v1/inbound/stock/draft/list',
|
url: '/v1/inbound/stock/draft/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: { is_finished: 'false' }
|
params: {}
|
||||||
})
|
})
|
||||||
serverDraftCount.value = (res && res.length) || 0
|
serverDraftCount.value = (res && res.length) || 0
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
@ -538,11 +538,11 @@ const startNewSession = async () => {
|
|||||||
const resumeSession = async () => {
|
const resumeSession = async () => {
|
||||||
btnLoading.value = true
|
btnLoading.value = true
|
||||||
try {
|
try {
|
||||||
// 获取最新的未完成会话
|
// 获取最新的会话(后端已移除 is_finished 字段)
|
||||||
const drafts: any = await request({
|
const drafts: any = await request({
|
||||||
url: '/v1/inbound/stock/draft/list',
|
url: '/v1/inbound/stock/draft/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: { is_finished: 'false' }
|
params: {}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!drafts || drafts.length === 0) {
|
if (!drafts || drafts.length === 0) {
|
||||||
@ -856,23 +856,32 @@ const finishStocktake = async () => {
|
|||||||
|
|
||||||
printing.value = true
|
printing.value = true
|
||||||
|
|
||||||
// ★ 修改: 调用结束盘点 API,不再删除草稿
|
// 调用结束盘点 API
|
||||||
const res: any = await api.finishStocktake()
|
const res: any = await api.finishStocktake()
|
||||||
|
|
||||||
// 结束会话
|
// 结束会话
|
||||||
scannedMap.value.clear()
|
scannedMap.value.clear()
|
||||||
isSessionActive.value = false
|
isSessionActive.value = false
|
||||||
showFinishDialog.value = false
|
showFinishDialog.value = false
|
||||||
checkServerDraft()
|
// 刷新服务器草稿计数
|
||||||
|
await checkServerDraft()
|
||||||
|
|
||||||
ElMessage.success('盘点已结束,请查看差异报告进行审核')
|
ElMessage.success('盘点已结束,请查看差异报告进行审核')
|
||||||
|
|
||||||
// ★ 新增: 自动打开差异审核对话框
|
// 自动打开差异审核对话框
|
||||||
await openVarianceDialog()
|
await openVarianceDialog()
|
||||||
|
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
if (e !== 'cancel') ElMessage.error(e?.message || '操作失败')
|
// ElMessageBox.cancel 是字符串 'cancel',需要正确判断
|
||||||
} finally { printing.value = false }
|
if (e === 'cancel' || e === 'cancel' as any) {
|
||||||
|
return // 用户取消,不做任何提示
|
||||||
|
}
|
||||||
|
// 其他错误需要提示用户
|
||||||
|
console.error('结束盘点失败:', e)
|
||||||
|
ElMessage.error(e?.message || e?.data?.message || '结束盘点失败,请重试')
|
||||||
|
} finally {
|
||||||
|
printing.value = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ★ 新增: 打开差异审核对话框
|
// ★ 新增: 打开差异审核对话框
|
||||||
|
|||||||
Reference in New Issue
Block a user