You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
4.1 KiB

8 months ago
import req1 from '@/utils/requset'
import { AxiosInstance } from 'axios'
function copyRequest(req1: AxiosInstance, instanceConfig = {}) {
8 months ago
let request: AxiosInstance, copyStatus: boolean
try {
// @ts-ignore
const req2 = req1.create(instanceConfig)
function acopyInterceptors(target: any, interceptorManager: any) {
const handlers = interceptorManager.handlers
for (let index = 0; index < handlers?.length; index++) {
const { fulfilled, rejected, runWhen, synchronous } = handlers[index]
let options
if (synchronous !== false || runWhen !== null)
options = { synchronous, runWhen }
target.use(fulfilled, rejected, options)
}
8 months ago
}
8 months ago
acopyInterceptors(req2.interceptors.request, req1.interceptors.request)
acopyInterceptors(req2.interceptors.response, req1.interceptors.response)
request = req2
copyStatus = true
} catch (error) {
console.warn('拷贝失败,私有拦截器可能失效:\n', error)
request = req1
copyStatus = false
}
8 months ago
return { request, copyStatus }
}
8 months ago
const { request, copyStatus } = copyRequest(req1)
// 若拷贝成功,添加自己独有的拦截器
if (copyStatus) {
8 months ago
request.interceptors.response.use((response: any) => {
if (response.code >= 200 && response.code < 300) return response
else return Promise.reject(response)
})
8 months ago
}
// =============================================================================
enum api {
8 months ago
liststu = '/abilityEvaluation/personalAbilityEvaluationCollect/liststu', // 个人能力评价列表
integral = '/annualScore/personalCompTotalScore/liststu', // 个人积分列表
PAGE_XSFXBG = '/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/xsfxbg', // 个人能力报告
competition = '/AnnualCompPoint/annualCompPoint/findcompp', // 比赛项目列表
competitionOne = '/AnnualCompPoint/annualCompPoint/findcomppxq', // 比赛项目单个
signUp = '/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/edit', // 年度比赛项目报名 POST
membersList = '/online/cgreport/api/getData/1696139786651197442', // 团队成员列表
adviserList = '/online/cgreport/api/getData/1828357196360998913', // 指导老师列表
listStudent = '/AnnualCompPoint/annualCompPoint/listStudent', // 比赛项目报名表
findndbswxq = '/annualcomp/annualComp/findndbswxq', // 年度比赛详情
findcomppxq = '/AnnualCompPoint/annualCompPoint/findcomppxq', // 年度比赛项目详情
}
// http://10.115.2.247:3300/jeecgboot/AnnualCompPoint/annualCompPoint/listStudent?column=createTime&order=desc&pageNo=1&pageSize=10&_t=1727422864387
interface SignUpData {
8 months ago
annualCompid: string
entryFormat: '团队' | '个人'
id: string
instructorSheetList?: any[]
3 months ago
teamManagementList?: any[],
file:string
WorkName:any
}
interface MembersOrAdviser {
8 months ago
pageNo: number
pageSize: number
onlRepUrlParamStr: `annualCompid=${string}`
entryFormat: '团队' | '个人'
id: string
column?: string
order?: 'asc' | 'desc'
}
8 months ago
export const getlEvaluateApi = (
params: Record<'pageNo' | 'pageSize', number>,
) => request.get(api.liststu, { params })
export const getlIntegralApi = (
params: Record<'pageNo' | 'pageSize', number>,
) => request.get(api.integral, { params })
export const getXsfxbgApi = (params = {}) => {
8 months ago
const par = { recreateFlag: false, annualid: '' }
Object.assign(par, params)
return request.get(api.PAGE_XSFXBG, { params: par })
}
8 months ago
export const getCompetitionApi = (id: string) =>
request.get(api.competition, { params: { id } })
export const getCompetitionOneApi = (id: string) =>
request.get(api.competitionOne, { params: { id } })
8 months ago
export const getSignUpApi = (data: SignUpData) => request.post(api.signUp, data)
8 months ago
export const getMembersList = (params: MembersOrAdviser) =>
request.get(api.membersList, { params })
export const getAdviserList = (params: MembersOrAdviser) =>
request.get(api.adviserList, { params })
8 months ago
export const getNdbswxqList = (id: string) =>
request.get(api.findndbswxq, { params: { id } })
export const getComppxqList = (id: string) =>
request.get(api.findcomppxq, { params: { id } })