import request from '@/utils/request' // 获取BOM列表 export function getBomList(params?: any) { return request({ url: '/v1/bom/list', method: 'get', params }) } // 获取BOM分组摘要(懒加载用,轻量 GROUP BY category + COUNT) export function getBomSummary(params?: { keyword?: string }) { return request({ url: '/v1/bom/summary', method: 'get', params }) } // 获取BOM详情(含库存信息) export function getBomWithStock(bomNo: string) { const trimmed = bomNo.replace(/^\/+|\/+$/g, ''); const encoded = encodeURIComponent(trimmed); return request({ url: `/v1/bom/stock/${encoded}`, method: 'get' }) } // 获取BOM详情 export function getBomDetail(bomNo: string, version?: string) { // 去除首尾斜杠,保留中间斜杠并进行 URL 编码 const trimmed = bomNo.replace(/^\/+|\/+$/g, ''); const encoded = encodeURIComponent(trimmed); const url = version ? `/v1/bom/detail/${encoded}?version=${encodeURIComponent(version)}` : `/v1/bom/detail/${encoded}`; return request({ url, method: 'get' }) } // 保存BOM export function saveBom(data: any) { return request({ url: '/v1/bom/save', method: 'post', data }) } // 删除BOM export function deleteBom(bomNo: string, version: string) { // 去除首尾斜杠,保留中间斜杠并进行 URL 编码 const trimmed = bomNo.replace(/^\/+|\/+$/g, ''); const encoded = encodeURIComponent(trimmed); return request({ url: `/v1/bom/${encoded}?version=${encodeURIComponent(version)}`, method: 'delete' }) } // ========================================== // BOM 草稿相关接口 // ========================================== // 1. 暂存草稿 export function saveDraft(data: any) { return request({ url: '/v1/bom/draft/save', method: 'post', data }) } // 2. 读取草稿详情 export function getDraftDetail(params: { bom_no: string; version?: string }) { return request({ url: '/v1/bom/draft/detail', method: 'get', params }) } // 3. 发布草稿 export function publishDraft(data: { bom_no: string; version: string }) { return request({ url: '/v1/bom/draft/publish', method: 'post', data }) }