67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import request from './index'
|
|
import type { ApiResponse, PaginatedResponse } from '@/types'
|
|
|
|
export interface DisposalRecord {
|
|
id: number
|
|
equipment_id: number
|
|
equipment_code: string
|
|
disposal_reason: string
|
|
disposal_method: string
|
|
estimated_value: number
|
|
actual_value?: number
|
|
status: 'pending' | 'approved' | 'rejected' | 'completed'
|
|
applied_by: number
|
|
applied_at: string
|
|
approved_by?: number
|
|
approved_at?: string
|
|
completed_at?: string
|
|
notes?: string
|
|
equipment?: {
|
|
equipment_name: string
|
|
equipment_type: string
|
|
unit_price: number
|
|
}
|
|
applier?: { id: number; name: string; username: string }
|
|
approver?: { id: number; name: string; username: string }
|
|
}
|
|
|
|
export interface CreateDisposalParams {
|
|
equipment_id: number
|
|
disposal_reason: string
|
|
disposal_method: string
|
|
estimated_value: number
|
|
notes?: string
|
|
}
|
|
|
|
// 创建报废申请
|
|
export const createDisposal = (data: CreateDisposalParams) => {
|
|
return request.post('/disposal', data)
|
|
}
|
|
|
|
// 获取报废记录列表
|
|
export const getDisposalList = (params: { page?: number; pageSize?: number; status?: string; keyword?: string; equipment_id?: number }) => {
|
|
return request
|
|
.get<ApiResponse<PaginatedResponse<DisposalRecord>>>('/disposal/list', { params })
|
|
.then((response) => response.data)
|
|
}
|
|
|
|
// 获取报废记录详情
|
|
export const getDisposalDetail = (id: number) => {
|
|
return request.get(`/disposal/${id}`)
|
|
}
|
|
|
|
// 审批报废申请
|
|
export const approveDisposal = (id: number, data: { approved: boolean; reject_reason?: string }) => {
|
|
return request.put(`/disposal/${id}/approve`, data)
|
|
}
|
|
|
|
// 完成报废处置
|
|
export const completeDisposal = (id: number, data: { actual_value?: number; notes?: string }) => {
|
|
return request.put(`/disposal/${id}/complete`, data)
|
|
}
|
|
|
|
// 获取资产报废历史
|
|
export const getEquipmentDisposalHistory = (equipmentId: number) => {
|
|
return request.get(`/disposal/equipment/${equipmentId}/history`)
|
|
}
|