64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import request from '@/utils/request'
|
||
|
||
export interface DesignerStats {
|
||
userId: number
|
||
userName: string
|
||
avatar?: string
|
||
deptName?: string
|
||
inProgressCount: number
|
||
queueCount: number
|
||
totalScore: number
|
||
delayedCount: number
|
||
totalTaskCount: number
|
||
completedCount: number
|
||
avgRating: number
|
||
goodReviewCount: number
|
||
completionRate: number
|
||
ontimeRate: number
|
||
onlineStatus: number
|
||
lastActiveTime: string
|
||
// 前端扩展字段
|
||
showTasks?: boolean
|
||
loadingTasks?: boolean
|
||
inProgressTasks?: any[]
|
||
}
|
||
|
||
/**
|
||
* 获取所有设计师统计信息
|
||
*/
|
||
export const getAllDesignerStats = () => {
|
||
return request.get<any>('/designers/stats')
|
||
}
|
||
|
||
/**
|
||
* 获取单个设计师统计信息
|
||
*/
|
||
export const getDesignerStats = (userId: number) => {
|
||
return request.get<any>(`/designers/stats/${userId}`)
|
||
}
|
||
|
||
/**
|
||
* 获取排行榜
|
||
* @param type 类型:score-积分榜,efficiency-效率榜,quality-好评榜,diligence-勤勉榜
|
||
* @param limit 返回数量
|
||
* @param month 月份:YYYY-MM格式,可选,不传则查询当月
|
||
*/
|
||
export const getLeaderboard = (type: string = 'score', limit: number = 10, month?: string) => {
|
||
const params: any = { type, limit }
|
||
if (month) {
|
||
params.month = month
|
||
}
|
||
return request.get<any>('/designers/leaderboard', {
|
||
params
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取设计师进行中的任务列表
|
||
* @param userId 设计师ID
|
||
*/
|
||
export const getDesignerInProgressTasks = (userId: number) => {
|
||
return request.get<any>(`/designers/${userId}/in-progress-tasks`)
|
||
}
|
||
|