|
@@ -1,60 +1,47 @@
|
|
|
-import { AxiosRequestConfig } from 'axios'
|
|
|
|
|
-
|
|
|
|
|
export type ID = number | string
|
|
export type ID = number | string
|
|
|
|
|
|
|
|
export interface AxiosResponseInfo {}
|
|
export interface AxiosResponseInfo {}
|
|
|
|
|
|
|
|
export interface ReceivedData<R = {}, E = 0> extends AxiosResponseInfo {
|
|
export interface ReceivedData<R = {}, E = 0> extends AxiosResponseInfo {
|
|
|
- err?: E | 0 | 401
|
|
|
|
|
- res?: R
|
|
|
|
|
|
|
+ code: E | 0 | 401
|
|
|
|
|
+ result: R
|
|
|
|
|
+ msg: string
|
|
|
page?: PageSerializer
|
|
page?: PageSerializer
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+export type QuestionType = 'choice' | 'blank' | 'code' | 'multi_choice'
|
|
|
export interface ErrorData extends AxiosResponseInfo {
|
|
export interface ErrorData extends AxiosResponseInfo {
|
|
|
err: number
|
|
err: number
|
|
|
msg: string
|
|
msg: string
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export interface PageSerializer {
|
|
export interface PageSerializer {
|
|
|
- page?: number
|
|
|
|
|
- limit?: number
|
|
|
|
|
- size?: number
|
|
|
|
|
- total?: number
|
|
|
|
|
|
|
+ pageNum?: number
|
|
|
|
|
+ pageSize?: number
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export type Pageable<T = {}> = T & {
|
|
export type Pageable<T = {}> = T & {
|
|
|
- page?: number
|
|
|
|
|
- limit?: number
|
|
|
|
|
|
|
+ pageNum?: number
|
|
|
|
|
+ pageSize?: number
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+//yyyy-MM-dd HH:mm:ss
|
|
|
export type LocalDateTime = string
|
|
export type LocalDateTime = string
|
|
|
|
|
|
|
|
export type UserRole = 'STUDENT' | 'TEACHER'
|
|
export type UserRole = 'STUDENT' | 'TEACHER'
|
|
|
|
|
|
|
|
-export type ExamStatus =
|
|
|
|
|
- | 'READY' // 考试已准备好,考试尚未开始
|
|
|
|
|
- | 'AVAILABLE' // 考试可用,表示考试正在进行
|
|
|
|
|
- | 'FINISHED' // 考试已完成,在考试结束后使用
|
|
|
|
|
- | 'CLOSED' // 考试已关闭,表示考试生命周期结束
|
|
|
|
|
-
|
|
|
|
|
export interface ExamSerializer {
|
|
export interface ExamSerializer {
|
|
|
- id?: number
|
|
|
|
|
- title?: string
|
|
|
|
|
- startAt?: LocalDateTime
|
|
|
|
|
- endAt?: LocalDateTime
|
|
|
|
|
- status?: ExamStatus
|
|
|
|
|
- creator?: {
|
|
|
|
|
- id?: number
|
|
|
|
|
- username?: string
|
|
|
|
|
- }
|
|
|
|
|
- joined?: boolean
|
|
|
|
|
- // result?: ResultSerializer
|
|
|
|
|
- isReentryPermitted?: boolean
|
|
|
|
|
- inviteCode?: string
|
|
|
|
|
|
|
+ antiCheating?: boolean
|
|
|
comment?: string
|
|
comment?: string
|
|
|
- participantsNumber?: number
|
|
|
|
|
- lastTime?: number
|
|
|
|
|
|
|
+ creatorId?: number
|
|
|
difficulty?: number
|
|
difficulty?: number
|
|
|
|
|
+ endTime?: LocalDateTime
|
|
|
|
|
+ examId?: number
|
|
|
|
|
+ position?: string
|
|
|
|
|
+ skills?: Array<string>
|
|
|
|
|
+ startTime?: LocalDateTime
|
|
|
|
|
+ examName?: string
|
|
|
|
|
+ // 上边是创建考试所需的信息
|
|
|
|
|
+ inviteCode?: string
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export interface ResultSerializer {
|
|
export interface ResultSerializer {
|
|
@@ -77,42 +64,48 @@ export interface ResultSerializer {
|
|
|
}>
|
|
}>
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export interface OptionSerializer {
|
|
|
|
|
- label?: string
|
|
|
|
|
- content?: string
|
|
|
|
|
-}
|
|
|
|
|
|
|
+export type OptionSerializer = Map<string, string>
|
|
|
|
|
|
|
|
-export interface QuestionSerializer {
|
|
|
|
|
|
|
+export interface QuestionStemSerializer {
|
|
|
id?: number
|
|
id?: number
|
|
|
stem?: string
|
|
stem?: string
|
|
|
- index?: number
|
|
|
|
|
|
|
+ type?: QuestionType
|
|
|
|
|
+ options?: OptionSerializer
|
|
|
|
|
+ keyPoints?: string
|
|
|
|
|
+ tags?: Array<string>
|
|
|
|
|
+ knowledgeId?: Array<string>
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+export interface ExtendedQuestionSerializer extends QuestionStemSerializer {
|
|
|
|
|
+ answer?: string
|
|
|
|
|
+ analysis?: string
|
|
|
|
|
+ lastModifiedTime?: LocalDateTime
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export type ChoiceAnswer = string
|
|
export type ChoiceAnswer = string
|
|
|
|
|
|
|
|
-export interface ChoiceQuestionSerializer extends QuestionSerializer {
|
|
|
|
|
- studentId?: number
|
|
|
|
|
- single?: boolean
|
|
|
|
|
- options?: Array<OptionSerializer>
|
|
|
|
|
- lastCommitAnswer?: ChoiceAnswer
|
|
|
|
|
-}
|
|
|
|
|
|
|
+// export interface ChoiceQuestionSerializer extends ExtendedQuestionSerializer {
|
|
|
|
|
+// studentId?: number
|
|
|
|
|
+// single?: boolean
|
|
|
|
|
+// lastCommitAnswer?: ChoiceAnswer
|
|
|
|
|
+// }
|
|
|
|
|
|
|
|
export interface CodeTuple {
|
|
export interface CodeTuple {
|
|
|
lang?: string
|
|
lang?: string
|
|
|
code?: string
|
|
code?: string
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export interface CodeQuestionSerializer extends QuestionSerializer {
|
|
|
|
|
- studentId?: number
|
|
|
|
|
- codeTuples?: Array<CodeTuple>
|
|
|
|
|
- lastCommitCodes?: Array<CodeTuple>
|
|
|
|
|
-}
|
|
|
|
|
|
|
+// export interface CodeQuestionSerializer extends ExtendedQuestionSerializer {
|
|
|
|
|
+// studentId?: number
|
|
|
|
|
+// codeTuples?: Array<CodeTuple>
|
|
|
|
|
+// lastCommitCodes?: Array<CodeTuple>
|
|
|
|
|
+// }
|
|
|
|
|
|
|
|
export interface ExamQuestionSerializer {
|
|
export interface ExamQuestionSerializer {
|
|
|
id?: number
|
|
id?: number
|
|
|
- singleChoiceQuestions?: Array<ChoiceQuestionSerializer>
|
|
|
|
|
- multiChoiceQuestions?: Array<ChoiceQuestionSerializer>
|
|
|
|
|
- codeQuestions?: Array<CodeQuestionSerializer>
|
|
|
|
|
|
|
+ name?: string
|
|
|
|
|
+ questionAndScore?: QuestionAndScore
|
|
|
|
|
+ // codeQuestions?: Array<CodeQuestionSerializer>
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export interface UserSerializer {
|
|
export interface UserSerializer {
|
|
@@ -123,3 +116,5 @@ export interface UserSerializer {
|
|
|
role?: UserRole
|
|
role?: UserRole
|
|
|
createdAt?: LocalDateTime
|
|
createdAt?: LocalDateTime
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+export type QuestionAndScore = Map<string, number>
|