qiangdanxitong/frontend/src/api/delayPenalty.ts

62 lines
1.5 KiB
TypeScript

import request from './request'
export interface DelayPenaltyRecord {
id: number
taskId: number
designerId: number
delayDays: number
delayHours: number
delayLevel: 'light' | 'general' | 'severe' | 'major'
penaltyScore: number
originalDeadline: string
actualTime: string
status: 'confirmed' | 'appealed' | 'approved' | 'rejected'
appealReason?: string
appealTime?: string
appealResult?: string
approverId?: number
approveTime?: string
createTime: string
updateTime: string
}
/**
* 根据任务ID查询延误记录
*/
export const getDelayRecordsByTaskId = (taskId: number) => {
return request.get<DelayPenaltyRecord[]>(`/delay-penalty/task/${taskId}`)
}
/**
* 根据设计师ID查询延误记录
*/
export const getDelayRecordsByDesignerId = (designerId: number) => {
return request.get<DelayPenaltyRecord[]>(`/delay-penalty/designer/${designerId}`)
}
/**
* 统计设计师的延误扣分总数
*/
export const getTotalPenaltyScore = (designerId: number) => {
return request.get<number>(`/delay-penalty/designer/${designerId}/total`)
}
/**
* 申诉延误扣分
*/
export const appealDelayPenalty = (recordId: number, appealReason: string) => {
return request.post<string>(`/delay-penalty/${recordId}/appeal`, null, {
params: { appealReason }
})
}
/**
* 管理员审批申诉
*/
export const approveAppeal = (recordId: number, approved: boolean, appealResult?: string) => {
return request.post<string>(`/delay-penalty/${recordId}/approve`, null, {
params: { approved, appealResult }
})
}