|
@@ -2,79 +2,115 @@ export interface MarkStore {
|
|
|
setting: Setting;
|
|
|
groups: Array<Group>;
|
|
|
status: {
|
|
|
- valid: boolean;
|
|
|
- personCount: number;
|
|
|
- markedCount: number;
|
|
|
- totalCount: number;
|
|
|
- problemCount: number;
|
|
|
- arbitrateCount: number;
|
|
|
-
|
|
|
- personCountTweenedNumber: number;
|
|
|
- todoMarkCountTweenedNumber: number;
|
|
|
+
|
|
|
+ valid: boolean;
|
|
|
+
|
|
|
+ personCount: number;
|
|
|
+
|
|
|
+ markedCount: number;
|
|
|
+
|
|
|
+ totalCount: number;
|
|
|
+
|
|
|
+ problemCount: number;
|
|
|
+
|
|
|
+ arbitrateCount: number;
|
|
|
};
|
|
|
- tasks: Array<Task>;
|
|
|
- currentTask?: Task;
|
|
|
+
|
|
|
+ tasks: Array<Task>;
|
|
|
+
|
|
|
+ currentTask?: Task;
|
|
|
currentQuestion?: Question;
|
|
|
currentScore?: number;
|
|
|
currentSpecialTag?: string;
|
|
|
- historyOpen: boolean;
|
|
|
+
|
|
|
+ historyOpen: boolean;
|
|
|
historyTasks: Array<Task>;
|
|
|
+
|
|
|
removeScoreTracks: Array<Track>;
|
|
|
- focusTracks: Array<Track>;
|
|
|
+
|
|
|
+ focusTracks: Array<Track>;
|
|
|
message: string | null;
|
|
|
maxModalZIndex: number;
|
|
|
- minimapScrollToX?: number;
|
|
|
- minimapScrollToY?: number;
|
|
|
- allPaperModal: boolean;
|
|
|
- sheetViewModal: boolean;
|
|
|
- globalMask: boolean;
|
|
|
+
|
|
|
+ minimapScrollToX?: number;
|
|
|
+
|
|
|
+ minimapScrollToY?: number;
|
|
|
+
|
|
|
+ allPaperModal: boolean;
|
|
|
+
|
|
|
+ sheetViewModal: boolean;
|
|
|
+
|
|
|
+ globalMask: boolean;
|
|
|
}
|
|
|
|
|
|
export interface Setting {
|
|
|
- examType: "SCAN_IMAGE" | "MULTI_MEDIA";
|
|
|
- mode: ModeEnum;
|
|
|
- forceMode: boolean;
|
|
|
- sheetView: boolean;
|
|
|
- sheetConfig: Array<SingleSheetConfig>;
|
|
|
- enableAllZero: boolean;
|
|
|
- fileServer: string;
|
|
|
- userName: string;
|
|
|
+
|
|
|
+ examType: "SCAN_IMAGE" | "MULTI_MEDIA";
|
|
|
+
|
|
|
+ mode: "TRACK" | "COMMON";
|
|
|
+
|
|
|
+ forceMode: boolean;
|
|
|
+
|
|
|
+ sheetView: boolean;
|
|
|
+
|
|
|
+ sheetConfig: Array<SingleSheetConfig>;
|
|
|
+
|
|
|
+ enableAllZero: boolean;
|
|
|
+
|
|
|
+ fileServer: string;
|
|
|
+
|
|
|
+ userName: string;
|
|
|
subject: {
|
|
|
-
|
|
|
+
|
|
|
name: string;
|
|
|
code: string;
|
|
|
answerUrl: string;
|
|
|
paperUrl: string;
|
|
|
questions: Array<RichTextQuestion>;
|
|
|
};
|
|
|
- forceSpecialTag: boolean;
|
|
|
+
|
|
|
+ forceSpecialTag: boolean;
|
|
|
uiSetting: UISetting;
|
|
|
- statusValue: "TRIAL" | "FORMAL" | "FINISH";
|
|
|
- problemTypes: Array<{ id: number; name: string }> | [];
|
|
|
- groupNumber: number;
|
|
|
- groupTitle: string;
|
|
|
- topCount: number;
|
|
|
- splitConfig: Array<number>;
|
|
|
- prefetchCount: number;
|
|
|
- startTime: number;
|
|
|
- endTime: number;
|
|
|
- selective: boolean;
|
|
|
+
|
|
|
+ statusValue: "TRIAL" | "FORMAL" | "FINISH";
|
|
|
+
|
|
|
+ problemTypes: Array<{ id: number; name: string }> | [];
|
|
|
+
|
|
|
+ groupNumber: number;
|
|
|
+
|
|
|
+ groupTitle: string;
|
|
|
+
|
|
|
+ topCount: number;
|
|
|
+
|
|
|
+ splitConfig: Array<number>;
|
|
|
+
|
|
|
+ prefetchCount: number;
|
|
|
+
|
|
|
+ startTime: number;
|
|
|
+
|
|
|
+ endTime: number;
|
|
|
+
|
|
|
+ selective: boolean;
|
|
|
}
|
|
|
|
|
|
|
|
|
export interface AdminPageSetting {
|
|
|
- examType: "SCAN_IMAGE" | "MULTI_MEDIA";
|
|
|
- fileServer: string;
|
|
|
- userName: string;
|
|
|
+
|
|
|
+ examType: "SCAN_IMAGE" | "MULTI_MEDIA";
|
|
|
+
|
|
|
+ fileServer: string;
|
|
|
+
|
|
|
+ userName: string;
|
|
|
subject: {
|
|
|
-
|
|
|
+
|
|
|
name: string;
|
|
|
code: string;
|
|
|
answerUrl: string;
|
|
|
paperUrl: string;
|
|
|
questions: Array<RichTextQuestion>;
|
|
|
};
|
|
|
- splitConfig: Array<number>;
|
|
|
+
|
|
|
+ splitConfig: Array<number>;
|
|
|
}
|
|
|
|
|
|
export interface AdminPageSettingForImport extends AdminPageSetting {
|
|
@@ -84,101 +120,135 @@ export interface AdminPageSettingForImport extends AdminPageSetting {
|
|
|
message: string;
|
|
|
}
|
|
|
|
|
|
-export enum ModeEnum {
|
|
|
- TRACK = "TRACK",
|
|
|
- COMMON = "COMMON",
|
|
|
-}
|
|
|
-
|
|
|
interface SingleSheetConfig {
|
|
|
- i: number;
|
|
|
- w: number;
|
|
|
- h: number;
|
|
|
- x: number;
|
|
|
- y: number;
|
|
|
+
|
|
|
+ i: number;
|
|
|
+
|
|
|
+ w: number;
|
|
|
+
|
|
|
+ h: number;
|
|
|
+
|
|
|
+ x: number;
|
|
|
+
|
|
|
+ y: number;
|
|
|
}
|
|
|
|
|
|
export interface Group {
|
|
|
markerId: number;
|
|
|
number: number;
|
|
|
title: string;
|
|
|
- markedCount: number;
|
|
|
- totalCount: number;
|
|
|
+
|
|
|
+ markedCount: number;
|
|
|
+
|
|
|
+ totalCount: number;
|
|
|
}
|
|
|
|
|
|
export interface Task {
|
|
|
libraryId: number;
|
|
|
studentId: number;
|
|
|
secretNumber: string;
|
|
|
- studentName: string;
|
|
|
+
|
|
|
+ studentName: string;
|
|
|
studentCode: string;
|
|
|
examNumber: string;
|
|
|
subject?: {
|
|
|
-
|
|
|
+
|
|
|
name: string;
|
|
|
code: string;
|
|
|
answerUrl: string;
|
|
|
paperUrl: string;
|
|
|
questions: Array<RichTextQuestion>;
|
|
|
};
|
|
|
- sliceUrls: Array<string>;
|
|
|
- sliceConfig: Array<PictureSlice>;
|
|
|
- jsonUrl: string;
|
|
|
+
|
|
|
+ sliceUrls: Array<string>;
|
|
|
+
|
|
|
+ sliceConfig: Array<PictureSlice>;
|
|
|
+
|
|
|
+ jsonUrl: string;
|
|
|
questionList: Array<Question>;
|
|
|
specialTagList: Array<SpecialTag>;
|
|
|
|
|
|
- sheetUrls: Array<string>;
|
|
|
- objectiveScore: number;
|
|
|
+
|
|
|
+ sheetUrls: Array<string>;
|
|
|
+
|
|
|
+ objectiveScore: number;
|
|
|
|
|
|
- markerScore: number;
|
|
|
- markerTime: number;
|
|
|
- inspectTime?: number;
|
|
|
- self: boolean;
|
|
|
- previous: boolean;
|
|
|
- rejected: boolean;
|
|
|
+
|
|
|
+ markerScore: number;
|
|
|
+
|
|
|
+ markerTime: number;
|
|
|
+
|
|
|
+ inspectTime?: number;
|
|
|
+
|
|
|
+ self: boolean;
|
|
|
+
|
|
|
+ previous: boolean;
|
|
|
+
|
|
|
+ rejected: boolean;
|
|
|
message: string | null;
|
|
|
|
|
|
-
|
|
|
+
|
|
|
markResult: MarkResult;
|
|
|
- __markStartTime: number;
|
|
|
+
|
|
|
+ __markStartTime: number;
|
|
|
}
|
|
|
|
|
|
export interface Question {
|
|
|
- groupNumber: number;
|
|
|
- mainNumber: number;
|
|
|
- subNumber: string;
|
|
|
- intervalScore: number;
|
|
|
+
|
|
|
+ groupNumber: number;
|
|
|
+
|
|
|
+ mainNumber: number;
|
|
|
+
|
|
|
+ subNumber: string;
|
|
|
+
|
|
|
+ intervalScore: number;
|
|
|
defaultScore: number;
|
|
|
minScore: number;
|
|
|
maxScore: number;
|
|
|
- title: string;
|
|
|
- trackList: Array<Track>;
|
|
|
- score: number | null;
|
|
|
- __index: number;
|
|
|
+
|
|
|
+ title: string;
|
|
|
+
|
|
|
+ trackList: Array<Track>;
|
|
|
+
|
|
|
+ score: number | null;
|
|
|
+
|
|
|
+ __index: number;
|
|
|
}
|
|
|
|
|
|
export interface Track {
|
|
|
- mainNumber: number;
|
|
|
- subNumber: string;
|
|
|
- number: number;
|
|
|
- offsetIndex: number;
|
|
|
- offsetX: number;
|
|
|
+
|
|
|
+ mainNumber: number;
|
|
|
+
|
|
|
+ subNumber: string;
|
|
|
+
|
|
|
+ number: number;
|
|
|
+
|
|
|
+ offsetIndex: number;
|
|
|
+
|
|
|
+ offsetX: number;
|
|
|
offsetY: number;
|
|
|
- positionX: number;
|
|
|
+
|
|
|
+ positionX: number;
|
|
|
positionY: number;
|
|
|
score: number;
|
|
|
}
|
|
|
|
|
|
export interface SpecialTag {
|
|
|
- offsetIndex: number;
|
|
|
- offsetX: number;
|
|
|
+
|
|
|
+ offsetIndex: number;
|
|
|
+
|
|
|
+ offsetX: number;
|
|
|
offsetY: number;
|
|
|
- positionX: number;
|
|
|
+
|
|
|
+ positionX: number;
|
|
|
positionY: number;
|
|
|
- tagName: string;
|
|
|
+
|
|
|
+ tagName: string;
|
|
|
}
|
|
|
|
|
|
export interface PictureSlice {
|
|
|
- i: number;
|
|
|
+
|
|
|
+ i: number;
|
|
|
w: number;
|
|
|
h: number;
|
|
|
x: number;
|
|
@@ -187,37 +257,43 @@ export interface PictureSlice {
|
|
|
|
|
|
export interface UISetting {
|
|
|
"score.board.collapse": boolean;
|
|
|
- "answer.paper.scale": number;
|
|
|
+
|
|
|
+ "answer.paper.scale": number;
|
|
|
"normal.mode": "keyboard" | "mouse";
|
|
|
"paper.modal": boolean;
|
|
|
"answer.modal": boolean;
|
|
|
"minimap.modal": boolean;
|
|
|
"specialTag.modal": boolean;
|
|
|
"shortCut.modal": boolean;
|
|
|
- "score.fontSize.scale": number;
|
|
|
+
|
|
|
+ "score.fontSize.scale": number;
|
|
|
}
|
|
|
|
|
|
export interface MarkResult {
|
|
|
libraryId: number;
|
|
|
studentId: number;
|
|
|
statusValue: string;
|
|
|
- spent: number;
|
|
|
+
|
|
|
+ spent: number;
|
|
|
|
|
|
|
|
|
markerScore: number | null;
|
|
|
trackList: Array<Track>;
|
|
|
scoreList: Array<number | null>;
|
|
|
- specialTagList: Array<SpecialTag>;
|
|
|
+
|
|
|
+ specialTagList: Array<SpecialTag>;
|
|
|
|
|
|
-
|
|
|
+
|
|
|
problem: boolean;
|
|
|
problemTypeId: number;
|
|
|
- unselective: boolean;
|
|
|
+
|
|
|
+ unselective: boolean;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
export interface SliceImage {
|
|
|
- url: string;
|
|
|
+
|
|
|
+ url: string;
|
|
|
indexInSliceUrls: number;
|
|
|
trackList: Array<Track>;
|
|
|
tagList: Array<SpecialTag>;
|
|
@@ -225,9 +301,14 @@ export interface SliceImage {
|
|
|
|
|
|
sliceImageWidth: number;
|
|
|
sliceImageHeight: number;
|
|
|
- dx: number;
|
|
|
- dy: number;
|
|
|
- accumTopHeight: number;
|
|
|
+
|
|
|
+ dx: number;
|
|
|
+
|
|
|
+ dy: number;
|
|
|
+
|
|
|
+ accumTopHeight: number;
|
|
|
+
|
|
|
+ * 为了能让多张图统一比例的缩放,所以将所有的图的宽度设为一样了。 */
|
|
|
effectiveWidth: number;
|
|
|
}
|
|
|
|
|
@@ -240,7 +321,8 @@ export type MarkHistoryOrderBy =
|
|
|
export type MarkHistorySortField = "ASC" | "DESC" | undefined;
|
|
|
|
|
|
export interface HistoryQueryParams {
|
|
|
- pageNumber?: number;
|
|
|
+
|
|
|
+ pageNumber?: number;
|
|
|
pageSize?: number;
|
|
|
order?: MarkHistoryOrderBy;
|
|
|
sort?: MarkHistorySortField;
|
|
@@ -256,11 +338,13 @@ export interface GetHistory {
|
|
|
}
|
|
|
|
|
|
export interface CommonResponse {
|
|
|
- success: boolean;
|
|
|
- message: string;
|
|
|
+
|
|
|
+ success: boolean;
|
|
|
+
|
|
|
+ message: string;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
export interface MarkDetail {
|
|
|
markerName: string;
|
|
|
markerTime: number;
|
|
@@ -268,9 +352,10 @@ export interface MarkDetail {
|
|
|
scoreList: string;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
export interface RichTextQuestion {
|
|
|
- unionOrder: string;
|
|
|
+
|
|
|
+ unionOrder: string;
|
|
|
body: RichTextJSON;
|
|
|
parentBody: RichTextJSON | null;
|
|
|
answer: Array<RichTextJSON> | null;
|
|
@@ -302,7 +387,7 @@ export interface StudentAnswer {
|
|
|
answer: Array<RichTextJSON> | null;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
export type ECSPaperJSON = {
|
|
|
mainNumber: number;
|
|
|
subNumber: string;
|
|
@@ -311,11 +396,12 @@ export type ECSPaperJSON = {
|
|
|
answer: RichTextJSON;
|
|
|
}[];
|
|
|
|
|
|
-
|
|
|
+
|
|
|
export type OExamPaperJSON = OExamPaperJSONQuestionList[];
|
|
|
|
|
|
interface OExamPaperJSONQuestionList {
|
|
|
- number: number;
|
|
|
+
|
|
|
+ number: number;
|
|
|
questions: OExamPaperJSONQuestion[];
|
|
|
}
|
|
|
interface OExamPaperJSONQuestion {
|
|
@@ -326,4 +412,4 @@ interface OExamPaperJSONQuestion {
|
|
|
options: Array<{ number: number; body: RichTextJSON }>;
|
|
|
subQuestions: OExamPaperJSONQuestion[] | null;
|
|
|
}
|
|
|
-
|
|
|
+
|