task.ts 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. import { PageResult, PageParams } from './common';
  2. export interface SemesterItem {
  3. id: string;
  4. name: string;
  5. }
  6. export interface ExamItem {
  7. id: string;
  8. name: string;
  9. }
  10. export interface CourseItem {
  11. id: string;
  12. name: string;
  13. code: string;
  14. }
  15. export interface CourseQueryParams {
  16. semesterId: string;
  17. examId: string;
  18. }
  19. export interface PaperNumberQueryParams {
  20. semesterId: string;
  21. examId: string;
  22. courseId: string;
  23. }
  24. export interface CardData {
  25. id: string;
  26. content: string;
  27. }
  28. // task --------->
  29. interface SplitConfig {
  30. /** index of sheets */
  31. i: number;
  32. /** 覆盖区域的width */
  33. w: number;
  34. /** 覆盖区域的height */
  35. h: number;
  36. /** 从哪里开始覆盖 左上角为 (0, 0) */
  37. x: number;
  38. /** 从哪里开始覆盖 左上角为 (0, 0) */
  39. y: number;
  40. }
  41. export interface Track {
  42. /** 大题号 */
  43. mainNumber: number;
  44. /** 小题号,当前api中只有number // 特殊标记中没有 */
  45. subNumber: string;
  46. /** 前端使用,暂时用不着,赋0 */
  47. number: number;
  48. /** 第几张图 */
  49. offsetIndex: number;
  50. /** 左上角为原点 */
  51. offsetX: number;
  52. offsetY: number;
  53. /** 相对slice的位置比例 */
  54. positionX: number;
  55. positionY: number;
  56. /** 评分数 */
  57. score: number;
  58. /** 是否此处未作答,未作答时,score默认是-0分 */
  59. unanswered: boolean;
  60. userId: string;
  61. userName: string;
  62. // 是否是科组长评卷轨迹
  63. headerMarkScore?: boolean;
  64. color?: string;
  65. isByMultMark?: boolean;
  66. }
  67. export interface Question {
  68. /** 分组序号 */
  69. groupNumber: number;
  70. /** 大题号 */
  71. mainNumber: number;
  72. /** 小题号 */
  73. subNumber: string;
  74. /** 分数间隔 */
  75. intervalScore: number;
  76. /** 默认分数 */
  77. defaultScore: number;
  78. /** 限制最小分数 */
  79. minScore: number;
  80. /** 限制最大分数 */
  81. maxScore: number;
  82. /** 题目名称 */
  83. title: string;
  84. /** 轨迹列表 */
  85. trackList: Array<Track>;
  86. /** 得分;null的值时是为打回时可以被评卷修改的;null也是从未评分过的情况,要通过rejected来判断 */
  87. score: number | null;
  88. /** 未计分 */
  89. uncalculate: boolean;
  90. /** 选做题分组 */
  91. selectiveIndex: number | null;
  92. rejected?: boolean;
  93. questionName?: string;
  94. headerTrack?: Array<Track>;
  95. }
  96. export interface SpecialTag {
  97. /** 第几张图 */
  98. offsetIndex: number;
  99. /** 左上角为原点(原图的原点),及相对原图的位置比例 */
  100. offsetX: number;
  101. offsetY: number;
  102. /** 相对裁切图的位置比例 */
  103. positionX: number;
  104. positionY: number;
  105. /** 特殊标记的字符串,勾叉 */
  106. tagName: string;
  107. tagType: 'TEXT' | 'CIRCLE' | 'RIGHT' | 'WRONG' | 'HALF_RIGTH' | 'LINE';
  108. // 分组号
  109. groupNumber?: number;
  110. userId?: number;
  111. color?: string;
  112. isByMultMark?: boolean;
  113. }
  114. export interface Task {
  115. /** 学生ID */
  116. studentId: string;
  117. /** 任务编号 */
  118. secretNumber: string;
  119. /** 学生名称 */
  120. studentName: string;
  121. /** 学生编号 */
  122. studentCode: string;
  123. /** 科目名称 */
  124. courseName: string;
  125. /** 科目编号 */
  126. courseCode: string;
  127. /** 试卷编号 */
  128. paperNumber: string;
  129. /** 最高显示优先级,有sliceConfig就用sliceConfig,否则使用sheetConfig */
  130. sliceConfig: Array<SplitConfig>;
  131. jsonUrl: string;
  132. questionList: Array<Question>;
  133. specialTagList: Array<SpecialTag>;
  134. /** 原图url */
  135. sheetUrls: Array<string>;
  136. /** 客观分 复核也用到 */
  137. objectiveScore: number;
  138. /** 评卷总分 */
  139. markerScore: number;
  140. /** 评卷时间 */
  141. markerTime: number;
  142. }
  143. export type StudentObjectiveInfo = {
  144. studentId: string;
  145. studentName: string;
  146. studentCode: string;
  147. campusName: string;
  148. courseCode: string;
  149. courseName: string;
  150. paperNumber: string;
  151. objectiveScore: number;
  152. subjectiveScore: number;
  153. upload: boolean;
  154. absent: boolean;
  155. paperType: string;
  156. sheetUrls: Array<{ index: number; url: string; recogData: string }>;
  157. answers: Array<{
  158. mainNumber: number;
  159. subNumber: string;
  160. answer: string;
  161. exist: boolean;
  162. questionType: string;
  163. standardAnswer: string;
  164. score: number;
  165. totalScore: number;
  166. }>;
  167. titles: { [index: number]: string };
  168. success: boolean;
  169. };
  170. // card --------->
  171. // page --------->
  172. export interface TrackExportListFilter {
  173. semesterId: string;
  174. examId: string;
  175. courseId: string;
  176. }
  177. export type TrackExportListParams = PageParams<TrackExportListFilter>;
  178. export interface TrackExportItem {
  179. examId: string;
  180. courseCode: string;
  181. courseName: string;
  182. paperNumber: string;
  183. studentCount: number;
  184. }
  185. export type TrackExportListPageRes = PageResult<TrackExportItem>;
  186. export interface TrackExportDetailListFilter {
  187. examId: string;
  188. paperNumber: string;
  189. college?: string;
  190. majorName?: string;
  191. teachClassName?: string;
  192. className?: string;
  193. studentName?: string;
  194. studentCode?: string;
  195. startStudentCode?: string;
  196. endStudentCode?: string;
  197. startScore?: number;
  198. endScore?: number;
  199. objectiveStartScore?: number;
  200. objectiveEndScore?: number;
  201. subjectiveStartScore?: number;
  202. subjectiveEndScore?: number;
  203. orderType?: string;
  204. orderField?: string;
  205. }
  206. export type TrackExportDetailListParams =
  207. PageParams<TrackExportDetailListFilter>;
  208. export interface TrackExportDetailItem {
  209. teachClassName: string; // 教学班
  210. className: string; // 行政班
  211. college: string;
  212. courseCode: string;
  213. courseName: string;
  214. examEndTime: number;
  215. examStartTime: number;
  216. majorName: number;
  217. studentCode: string;
  218. studentId: string;
  219. studentName: string;
  220. sheetUrls: string[] | null;
  221. totalScore: number;
  222. }
  223. export type TrackExportDetailListPageRes = PageResult<TrackExportDetailItem>;