fix(stocktake): fetch inventory baseline immediately upon session start to show correct initial stats

This commit is contained in:
DXC
2026-03-27 08:56:43 +08:00
parent dc42335ae0
commit 8259a74c57

View File

@ -79,7 +79,7 @@
</div> </div>
</div> </div>
<div class="stats-dashboard" @click="openInventoryList"> <div class="stats-dashboard" @click="openInventoryList" v-loading="listLoading">
<div class="stat-card"> <div class="stat-card">
<div class="stat-val">{{ stats.total }}</div> <div class="stat-val">{{ stats.total }}</div>
<div class="stat-label">总品项</div> <div class="stat-label">总品项</div>
@ -625,6 +625,9 @@ const doStartNewSession = async () => {
isSessionActive.value = true isSessionActive.value = true
// ★ 标记当前阶段为 scanning扫码中 // ★ 标记当前阶段为 scanning扫码中
localStorage.setItem('stocktake_phase', 'scanning') localStorage.setItem('stocktake_phase', 'scanning')
// ★ 立即加载统计基数
await fetchAllStockItems()
await fetchInventoryList()
ElMessage.success('新盘点会话已开始') ElMessage.success('新盘点会话已开始')
} catch (e: any) { } catch (e: any) {
if (e !== 'cancel') { if (e !== 'cancel') {
@ -674,6 +677,10 @@ const resumeSession = async () => {
// 直接恢复会话状态 // 直接恢复会话状态
isSessionActive.value = true isSessionActive.value = true
// ★ 立即加载统计基数
await fetchAllStockItems()
await fetchInventoryList()
// ★ 智能路由:根据本地记忆的阶段决定下一步 // ★ 智能路由:根据本地记忆的阶段决定下一步
const phase = localStorage.getItem('stocktake_phase') const phase = localStorage.getItem('stocktake_phase')
if (phase === 'review') { if (phase === 'review') {
@ -1039,9 +1046,10 @@ const openInventoryList = async () => {
listPage.value = 1 listPage.value = 1
listKeyword.value = '' listKeyword.value = ''
listStatusFilter.value = 'all' listStatusFilter.value = 'all'
// 获取盘点基数(应盘物资清单) // 如果基数未加载则先加载,否则只刷新已盘点记录
if (allStockItems.value.length === 0) {
await fetchAllStockItems() await fetchAllStockItems()
// 获取已盘点列表 }
await fetchInventoryList() await fetchInventoryList()
} }