| | |
| | | import type { ExamPaperView, ExamScoreDetail, ExamScorePageQuery } from '#/views/x/tms/examScore/types'; |
| | | import type { ExamPaperView, ExamScoreDetail, ExamScoreDetailRow, ExamScorePageQuery, ExamScoreSummaryItem } from '#/views/x/tms/examScore/types'; |
| | | |
| | | import { defHttp } from '#/api/request'; |
| | | import { |
| | | mockGetExamPaperView, |
| | | mockGetExamScoreDetail, |
| | | mockQueryExamScores, |
| | | } from '#/views/x/tms/examScore/mock'; |
| | | |
| | | /** 后端未就绪前走 mock;联调后改为 false */ |
| | | const USE_MOCK = true; |
| | | const prefix = '/api/tms/exam-score'; |
| | | |
| | | async function unwrapData<T>(promise: Promise<any>): Promise<T> { |
| | | const res = await promise; |
| | | if (res && typeof res === 'object' && 'data' in res && ('code' in res || 'msg' in res)) { |
| | | return res.data as T; |
| | | } |
| | | return res as T; |
| | | } |
| | | |
| | | export function getExamScoreList(params: ExamScorePageQuery) { |
| | | if (USE_MOCK) return mockQueryExamScores(params); |
| | | return defHttp.get({ url: `${prefix}/list`, params }); |
| | | return unwrapData<{ list: ExamScoreSummaryItem[]; pagination: Record<string, any> }>( |
| | | defHttp.get({ url: `${prefix}/list`, params }), |
| | | ); |
| | | } |
| | | |
| | | export function getExamScoreDetail(id: string) { |
| | | if (USE_MOCK) return mockGetExamScoreDetail(id); |
| | | return defHttp.get<ExamScoreDetail>({ url: `${prefix}/${id}` }); |
| | | return unwrapData<ExamScoreDetail>(defHttp.get({ url: `${prefix}/${id}` })); |
| | | } |
| | | |
| | | export function getExamPaperView(examId: string) { |
| | | if (USE_MOCK) return mockGetExamPaperView(examId); |
| | | return defHttp.get<ExamPaperView>({ url: `${prefix}/paper/${examId}` }); |
| | | return unwrapData<ExamPaperView>(defHttp.get({ url: `${prefix}/paper/${examId}` })); |
| | | } |
| | | |
| | | export function exportExamScores(ids: string[]) { |
| | | return unwrapData<ExamScoreDetailRow[]>(defHttp.post({ url: `${prefix}/export`, data: { ids } })); |
| | | } |