feat: persist stocktake phase in local storage for smart resumption routing

This commit is contained in:
DXC
2026-03-13 13:14:49 +08:00
parent 6dc1d69d7d
commit 403bbe281f

View File

@ -519,6 +519,8 @@ const startNewSession = async () => {
scannedMap.value.clear() scannedMap.value.clear()
await loadData() await loadData()
isSessionActive.value = true isSessionActive.value = true
// ★ 标记当前阶段为 scanning扫码中
localStorage.setItem('stocktake_phase', 'scanning')
ElMessage.success('新盘点会话已开始') ElMessage.success('新盘点会话已开始')
} catch (e: any) { } catch (e: any) {
if (e !== 'cancel') { if (e !== 'cancel') {
@ -559,9 +561,17 @@ const resumeSession = async () => {
// 加载完整库存数据 // 加载完整库存数据
await loadData() await loadData()
// ★ 恢复扫码作业 // ★ 智能路由:根据本地记忆的阶段决定下一步
const phase = localStorage.getItem('stocktake_phase')
if (phase === 'review') {
// 如果记忆中已经是核对阶段,直接打开差异弹窗
await openVarianceDialog()
ElMessage.info('已恢复差异审核')
} else {
// 默认打开扫码镜头
isSessionActive.value = true isSessionActive.value = true
ElMessage.success('已恢复扫码,继续盘点') ElMessage.success('已恢复扫码,继续盘点')
}
} catch (e) { } catch (e) {
ElMessage.error('恢复失败') ElMessage.error('恢复失败')
} finally { btnLoading.value = false } } finally { btnLoading.value = false }
@ -577,6 +587,8 @@ const pauseSession = () => {
const returnToScan = () => { const returnToScan = () => {
showVarianceDialog.value = false showVarianceDialog.value = false
isSessionActive.value = true isSessionActive.value = true
// ★ 标记当前阶段为 scanning扫码中
localStorage.setItem('stocktake_phase', 'scanning')
ElMessage.info('继续扫码,发现漏扫的物料') ElMessage.info('继续扫码,发现漏扫的物料')
} }
@ -884,6 +896,9 @@ const finishStocktake = async () => {
ElMessage.success('盘点扫描结束,请核对差异') ElMessage.success('盘点扫描结束,请核对差异')
await openVarianceDialog() // 自动弹出差异审核列表 await openVarianceDialog() // 自动弹出差异审核列表
// ★ 标记当前阶段为 review差异审核
localStorage.setItem('stocktake_phase', 'review')
} catch (e: any) { } catch (e: any) {
if (e === 'cancel' || e === 'close' || String(e).includes('cancel')) { if (e === 'cancel' || e === 'close' || String(e).includes('cancel')) {
// 用户取消,停留在扫码界面继续盘点 // 用户取消,停留在扫码界面继续盘点