115 lines
2.6 KiB
TypeScript
115 lines
2.6 KiB
TypeScript
import request from '@/utils/request'
|
|
import type { Result, PageResult } from '@/api/types'
|
|
|
|
// 团队PK接口类型
|
|
export interface TeamPK {
|
|
id: number
|
|
name: string
|
|
description: string
|
|
teamADeptId: number
|
|
teamAName: string
|
|
teamBDeptId: number
|
|
teamBName: string
|
|
startTime: string
|
|
endTime: string
|
|
dimensions: Record<string, { weight: number }>
|
|
teamAScore: number
|
|
teamBScore: number
|
|
teamATaskCount: number
|
|
teamBTaskCount: number
|
|
teamAFiveStarCount: number
|
|
teamBFiveStarCount: number
|
|
teamAOnTimeRate: number
|
|
teamBOnTimeRate: number
|
|
rewards: { winnerReward: number; loserReward: number; mvpReward?: number }
|
|
status: 'draft' | 'scheduled' | 'active' | 'ended' | 'cancelled'
|
|
winner?: 'A' | 'B' | 'draw'
|
|
mvpUserId?: number
|
|
creatorId: number
|
|
createTime: string
|
|
updateTime: string
|
|
}
|
|
|
|
export interface TeamPKCreateRequest {
|
|
name: string
|
|
description?: string
|
|
teamADeptId: number
|
|
teamAName: string
|
|
teamBDeptId: number
|
|
teamBName: string
|
|
startTime: string
|
|
endTime: string
|
|
dimensions: string
|
|
rewards: string
|
|
}
|
|
|
|
// ==================== 团队PK API ====================
|
|
|
|
/**
|
|
* 创建团队PK
|
|
*/
|
|
export function createTeamPK(data: TeamPKCreateRequest): Promise<TeamPK> {
|
|
return request.post<Result<TeamPK>>('/team-pk', data)
|
|
.then(res => res.data)
|
|
}
|
|
|
|
/**
|
|
* 发布团队PK
|
|
*/
|
|
export function publishTeamPK(id: number): Promise<TeamPK> {
|
|
return request.post<Result<TeamPK>>(`/team-pk/${id}/publish`)
|
|
.then(res => res.data)
|
|
}
|
|
|
|
/**
|
|
* 结束团队PK
|
|
*/
|
|
export function endTeamPK(id: number): Promise<void> {
|
|
return request.post<Result<void>>(`/team-pk/${id}/end`)
|
|
.then(res => res.data)
|
|
}
|
|
|
|
/**
|
|
* 取消团队PK
|
|
*/
|
|
export function cancelTeamPK(id: number): Promise<void> {
|
|
return request.post<Result<void>>(`/team-pk/${id}/cancel`)
|
|
.then(res => res.data)
|
|
}
|
|
|
|
/**
|
|
* 删除团队PK
|
|
*/
|
|
export function deleteTeamPK(id: number): Promise<void> {
|
|
return request.delete<Result<void>>(`/team-pk/${id}`)
|
|
.then(res => res.data)
|
|
}
|
|
|
|
/**
|
|
* 获取团队PK列表
|
|
*/
|
|
export function getTeamPKList(params: {
|
|
page?: number
|
|
pageSize?: number
|
|
status?: string
|
|
}): Promise<PageResult<TeamPK>> {
|
|
return request.get<Result<PageResult<TeamPK>>>('/team-pk', { params })
|
|
.then(res => res.data)
|
|
}
|
|
|
|
/**
|
|
* 获取团队PK详情
|
|
*/
|
|
export function getTeamPKById(id: number): Promise<TeamPK> {
|
|
return request.get<Result<TeamPK>>(`/team-pk/${id}`)
|
|
.then(res => res.data)
|
|
}
|
|
|
|
/**
|
|
* 刷新PK数据
|
|
*/
|
|
export function refreshTeamPK(id: number): Promise<TeamPK> {
|
|
return request.post<Result<TeamPK>>(`/team-pk/${id}/refresh`)
|
|
.then(res => res.data)
|
|
}
|