- PurchaseRequest.to_dict() 新增 requester_email - 导入时自动填入: 采购人(requester_name) + 邮箱(requester_email) + 详情链接(supplier_link) - 移除原始链接/详情链接的历史 autocomplete, 改为纯输入框+权限守卫 - 采购单导入搜索改为实时输入搜索(300ms防抖), 保留搜索按钮
127 lines
2.5 KiB
TypeScript
127 lines
2.5 KiB
TypeScript
import request from '@/utils/request'
|
|
|
|
export interface PurchaseItem {
|
|
id?: number
|
|
request_no?: string
|
|
base_id?: number
|
|
name: string
|
|
spec_model?: string
|
|
quantity: number
|
|
purchase_date: string
|
|
supplier_link?: string
|
|
remark?: string
|
|
images?: string[]
|
|
unit_price?: number
|
|
total_price?: number
|
|
status: number
|
|
status_text?: string
|
|
requester_id?: number
|
|
requester_name?: string
|
|
requester_email?: string
|
|
approver_id?: number
|
|
approver_name?: string
|
|
approved_at?: string
|
|
reject_reason?: string
|
|
created_at?: string
|
|
updated_at?: string
|
|
// [新增] 关联物料基础信息(已审批未入库列表返回)
|
|
material?: {
|
|
id: number
|
|
company_name: string
|
|
name: string
|
|
spec_model: string
|
|
category: string
|
|
unit: string
|
|
type: string
|
|
is_inspection_required: boolean
|
|
} | null
|
|
}
|
|
|
|
export interface Approver {
|
|
id: number
|
|
username: string
|
|
email: string
|
|
role: string
|
|
}
|
|
|
|
// 获取采购申请列表
|
|
export function getPurchaseList(params: {
|
|
page?: number
|
|
limit?: number
|
|
status?: number
|
|
}) {
|
|
return request({
|
|
url: '/purchase',
|
|
method: 'get',
|
|
params
|
|
})
|
|
}
|
|
|
|
// 创建采购申请
|
|
export function createPurchase(data: PurchaseItem) {
|
|
return request({
|
|
url: '/purchase',
|
|
method: 'post',
|
|
data
|
|
})
|
|
}
|
|
|
|
// 获取采购申请详情
|
|
export function getPurchaseDetail(id: number) {
|
|
return request({
|
|
url: `/purchase/${id}`,
|
|
method: 'get'
|
|
})
|
|
}
|
|
|
|
// 审批采购申请
|
|
export function approvePurchase(id: number, data: {
|
|
action: 'approve' | 'reject'
|
|
reject_reason?: string
|
|
}) {
|
|
return request({
|
|
url: `/purchase/${id}/approve`,
|
|
method: 'patch',
|
|
data
|
|
})
|
|
}
|
|
|
|
// 获取可选审批人列表
|
|
export function getPurchaseApprovers() {
|
|
return request({
|
|
url: '/purchase/approvers',
|
|
method: 'get'
|
|
})
|
|
}
|
|
|
|
// 根据名称/规格自动补全
|
|
export function autoFillPurchase(keyword: string) {
|
|
return request({
|
|
url: '/purchase/auto-fill',
|
|
method: 'get',
|
|
params: { keyword }
|
|
})
|
|
}
|
|
|
|
// 物料基础信息搜索(分页),用于采购申请弹窗
|
|
export function searchMaterialPurchase(keyword: string, page: number = 1) {
|
|
return request({
|
|
url: '/purchase/search-material',
|
|
method: 'get',
|
|
params: { keyword, page }
|
|
})
|
|
}
|
|
|
|
// [新增] 获取已审批通过且未入库的采购单列表(供库管按单入库使用)
|
|
export function getApprovedUnstockedRequests(params: {
|
|
page?: number
|
|
limit?: number
|
|
keyword?: string
|
|
}) {
|
|
return request({
|
|
url: '/purchase/approved-unstocked',
|
|
method: 'get',
|
|
params
|
|
})
|
|
}
|