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 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 { return request.post>('/team-pk', data) .then(res => res.data) } /** * 发布团队PK */ export function publishTeamPK(id: number): Promise { return request.post>(`/team-pk/${id}/publish`) .then(res => res.data) } /** * 结束团队PK */ export function endTeamPK(id: number): Promise { return request.post>(`/team-pk/${id}/end`) .then(res => res.data) } /** * 取消团队PK */ export function cancelTeamPK(id: number): Promise { return request.post>(`/team-pk/${id}/cancel`) .then(res => res.data) } /** * 删除团队PK */ export function deleteTeamPK(id: number): Promise { return request.delete>(`/team-pk/${id}`) .then(res => res.data) } /** * 获取团队PK列表 */ export function getTeamPKList(params: { page?: number pageSize?: number status?: string }): Promise> { return request.get>>('/team-pk', { params }) .then(res => res.data) } /** * 获取团队PK详情 */ export function getTeamPKById(id: number): Promise { return request.get>(`/team-pk/${id}`) .then(res => res.data) } /** * 刷新PK数据 */ export function refreshTeamPK(id: number): Promise { return request.post>(`/team-pk/${id}/refresh`) .then(res => res.data) }