refactor: optimize stocktake UI state machine and add confirmation dialogs
This commit is contained in:
@ -25,17 +25,6 @@
|
||||
>
|
||||
继续上次盘点 <span class="sub-text">({{ serverDraftCount }}项)</span>
|
||||
</el-button>
|
||||
|
||||
<!-- ★ 新增: 查看差异报告按钮 -->
|
||||
<el-button
|
||||
type="info"
|
||||
plain
|
||||
size="large"
|
||||
class="action-btn-full"
|
||||
@click="goToVarianceReview"
|
||||
>
|
||||
📋 差异审核 <span class="sub-text">(查看历史差异)</span>
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<div class="safe-tip">
|
||||
@ -346,6 +335,10 @@
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<!-- ★ 新增: 补扫入口 -->
|
||||
<el-button type="primary" plain @click="continueScanning">
|
||||
📷 发现漏扫,继续扫码
|
||||
</el-button>
|
||||
<el-button @click="showVarianceDialog = false">关闭</el-button>
|
||||
<el-button type="success" @click="exportToExcel" :icon="Download">导出差异报告</el-button>
|
||||
</div>
|
||||
@ -534,7 +527,7 @@ const startNewSession = async () => {
|
||||
} finally { btnLoading.value = false }
|
||||
}
|
||||
|
||||
// ★ 重写: 继续上次盘点
|
||||
// ★ 重写: 继续上次盘点 - 直接打开差异列表查看
|
||||
const resumeSession = async () => {
|
||||
btnLoading.value = true
|
||||
try {
|
||||
@ -554,17 +547,12 @@ const resumeSession = async () => {
|
||||
const sessionIds = [...new Set(drafts.map((d: any) => d.session_id))]
|
||||
currentSessionId.value = sessionIds[0]
|
||||
|
||||
const map = new Map<string, number>()
|
||||
drafts.forEach((d: any) => {
|
||||
if (d.session_id === currentSessionId.value) {
|
||||
map.set(d.uuid, d.quantity !== undefined ? parseFloat(d.quantity) : 1)
|
||||
}
|
||||
})
|
||||
scannedMap.value = map
|
||||
await loadData()
|
||||
isSessionActive.value = true
|
||||
// ★ 修改:直接打开差异列表,而不是继续扫码
|
||||
ElMessage.info('正在加载差异审核...')
|
||||
showVarianceDialog.value = true
|
||||
await checkServerDraft()
|
||||
} catch (e) {
|
||||
ElMessage.error('恢复失败')
|
||||
ElMessage.error('加载失败')
|
||||
} finally { btnLoading.value = false }
|
||||
}
|
||||
|
||||
@ -574,6 +562,13 @@ const pauseSession = () => {
|
||||
ElMessage.success('进度已保存')
|
||||
}
|
||||
|
||||
// ★ 新增: 补扫功能 - 从差异面板继续扫码
|
||||
const continueScanning = () => {
|
||||
showVarianceDialog.value = false
|
||||
isSessionActive.value = true
|
||||
ElMessage.info('继续扫码,发现漏扫的物料')
|
||||
}
|
||||
|
||||
// ★★★ 核心修改:数据加载映射修复 ★★★
|
||||
const loadData = async () => {
|
||||
loading.value = true
|
||||
@ -866,8 +861,13 @@ const finishStocktake = async () => {
|
||||
btnLoading.value = false
|
||||
|
||||
try {
|
||||
// ★ 简化流程:用户已在按钮点击时确认过,直接执行结束
|
||||
console.log('--- [结束盘点] 2. 开始执行结束盘点 ---')
|
||||
// ★ 二次确认:防止误触
|
||||
await ElMessageBox.confirm('确认结束当前扫码作业,开始进行差异审核吗?', '结束盘点确认', {
|
||||
confirmButtonText: '确定结束',
|
||||
cancelButtonText: '继续扫码',
|
||||
type: 'warning'
|
||||
})
|
||||
console.log('--- [结束盘点] 2. 用户确认结束盘点 ---')
|
||||
|
||||
printing.value = true
|
||||
console.log('--- [结束盘点] 3. 开始调用 API, session_id:', currentSessionId.value)
|
||||
|
||||
Reference in New Issue
Block a user