fix(web): 继续上次盘点不再拉取全量草稿,直接复用首条草稿的 session_id

resumeSession 原在 limit=1 探测后,又发起 limit=500 请求只为取出 session_id,
会触发后端 /draft/list 的全量 N+1 查询导致启动卡顿。
改为直接从第一条草稿提取 session_id,恢复会话零冗余请求。
This commit is contained in:
yueli
2026-08-31 16:00:06 +08:00
parent 5249649cfa
commit 7ac41bf6fd

View File

@ -666,24 +666,16 @@ const resumeSession = async () => {
}) })
const total = res?.total || 0 const total = res?.total || 0
const firstDraft = res?.items?.[0]
if (total === 0) { if (total === 0 || !firstDraft) {
ElMessage.warning('没有找到未完成的盘点记录') ElMessage.warning('没有找到未完成的盘点记录')
return return
} }
// ★ 获取实际草稿数据用于恢复分页加载单次最多500条 // ★ 直接从第一条草稿恢复 session_id不再拉取全量草稿
const fullRes = await request({ // 避免 limit=500 请求触发后端 query.all() + N+1 性能瓶颈
url: '/v1/inbound/stock/draft/list', currentSessionId.value = firstDraft.session_id || ''
method: 'get',
params: { page: 1, limit: 500 }
})
const drafts = fullRes?.items || []
// 恢复已扫描的数据 - 简化为直接激活会话
// 从草稿中获取 session_id
const sessionIds = [...new Set(drafts.map((d: any) => d.session_id))]
currentSessionId.value = sessionIds[0]
// 直接恢复会话状态 // 直接恢复会话状态
isSessionActive.value = true isSessionActive.value = true