perf: 消除 outbound/borrow BOM 匹配的 while(true) 全量加载

## 后端
- outbound.py: 新增 POST /api/v1/outbound/bom-match-stock 端点
  接收 child_ids[],服务端按 base_id IN 查询三表有库存记录并返回

## 前端
- outbound.ts: 新增 bomMatchStock(childIds) API 函数
- Selection.vue: loadAllStockForBom (while(true) 全量) → loadStockForBom (单次 API)
- borrow/apply/index.vue: 同上

## 效果
- BOM 匹配从 ~90 次 HTTP 请求降为 1 次
- 浏览器内存从 ~18000 条降为 ~8-50 条
This commit is contained in:
yueli
2026-07-15 17:52:08 +08:00
parent 2556b77530
commit 329820117f
4 changed files with 131 additions and 55 deletions

View File

@ -122,4 +122,16 @@ export function approveRequest(id: number, data: { action: 'approve' | 'reject';
method: 'patch',
data
})
}
/**
* BOM 匹配库存(替代前端 while(true) 全量加载)
* 根据 BOM 子件的 base_id 列表,服务端精确查询有库存的记录
*/
export function bomMatchStock(childIds: number[]) {
return request({
url: '/v1/outbound/bom-match-stock',
method: 'post',
data: { child_ids: childIds }
})
}