feat(purchase): 新增「待采购清单」页面
路由 router/index.ts:
/purchase 下新增子路由 pending(name: PurchasePendingPool)。
★ 父路由刻意不加 permissions —— 加了会让没有 pending_pool 权限的用户
整个「采购管理」模块从侧边栏消失。
页面 views/purchase/PendingPool.vue:
筛选栏 + 表格 + 分页,列含产品图、规格、当前库存、在途、有效供给、
预警、建议采购量(tooltip 展示完整算式)、参考单价、采购链接、操作。
采购链接渲染走 safeHref 白名单,非法地址不渲染成可点击链接。
api/purchase.ts:
新增 getPendingPurchasePool 与 PendingPoolItem 类型。
★ 需告知业务方的可见变化:「采购管理」从扁平单项变为可展开子菜单
(Sidebar 在子路由只有 1 个时渲染 el-menu-item,2 个时渲染 el-sub-menu)。
This commit is contained in:
@ -163,3 +163,46 @@ export function getApprovedUnstockedRequests(params: {
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 待采购池的单条物料(防重复采购)
|
||||
export interface PendingPoolItem {
|
||||
material_id: number
|
||||
name: string
|
||||
spec_model: string
|
||||
unit: string
|
||||
category: string
|
||||
material_type: string
|
||||
company_name: string
|
||||
image: string
|
||||
purchase_link: string
|
||||
reference_price: number | null
|
||||
inventory_count: number
|
||||
available_count: number
|
||||
// 在途量 = 该物料所有活跃采购单的剩余待入库量之和
|
||||
in_transit_qty: number
|
||||
// 有效供给 = 库存 + 在途。判缺货与算建议量都基于它
|
||||
effective_supply: number
|
||||
warning_status: number // 0=正常 1=黄色 2=红色(进池的必然非 0)
|
||||
warning_red: number | null
|
||||
warning_yellow: number | null
|
||||
target_threshold: number | null
|
||||
suggested_qty: number | null
|
||||
is_ordered: boolean
|
||||
}
|
||||
|
||||
// 待采购清单:库存已触及预警线、且没有活跃采购单的物料。
|
||||
// 物料一旦有在途采购单(待审批/已通过/部分到货未齐)就会从这里消失。
|
||||
export function getPendingPurchasePool(params: {
|
||||
page?: number
|
||||
limit?: number
|
||||
keyword?: string
|
||||
category?: string
|
||||
type?: string
|
||||
warning_status?: number
|
||||
}) {
|
||||
return request({
|
||||
url: '/purchase/pending-pool',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user