inspectPage.ts 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. import { httpApp } from "@/plugins/axiosApp";
  2. import {
  3. AdminPageSetting,
  4. CommonResponse,
  5. HistoryQueryParams,
  6. Question,
  7. Task,
  8. } from "@/types";
  9. /** 清理复核任务 */
  10. export async function clearInspectedTask(
  11. studentId?: string,
  12. subjectCode?: string
  13. ) {
  14. const form = new FormData();
  15. studentId && form.append("studentId", studentId);
  16. subjectCode && form.append("subjectCode", subjectCode);
  17. return httpApp.post<void>("/admin/exam/inspected/clear", form);
  18. }
  19. /** 查看单个学生的复核任务 */
  20. export async function getSingleInspectedTask(studentId: string) {
  21. const form = new FormData();
  22. studentId && form.append("studentId", studentId);
  23. return httpApp.post<Task>("/admin/exam/inspected/getTask", form);
  24. }
  25. export interface InspectedStatusParams {
  26. subjectCode: string;
  27. startScore?: string;
  28. endScore?: string;
  29. mainNumber?: string;
  30. mainStartScore?: string;
  31. mainEndScore?: string;
  32. questionScore?: string;
  33. selectiveStatus?: string;
  34. secretNumber?: string;
  35. college?: string;
  36. }
  37. export interface InspectedParams {
  38. subjectCode: string;
  39. startScore?: string;
  40. endScore?: string;
  41. mainNumber?: string;
  42. mainStartScore?: string;
  43. mainEndScore?: string;
  44. questionScore?: string;
  45. selectiveStatus?: string;
  46. secretNumber?: string;
  47. college?: string;
  48. }
  49. /** 批量复核得到单个学生的复核任务 */
  50. export async function getOneOfInspectedTask({
  51. subjectCode = "",
  52. startScore = "",
  53. endScore = "",
  54. mainNumber = "",
  55. mainStartScore = "",
  56. mainEndScore = "",
  57. questionScore = "",
  58. selectiveStatus = "",
  59. secretNumber = "",
  60. college = "",
  61. }: InspectedParams) {
  62. const form = new FormData();
  63. form.append("subjectCode", subjectCode);
  64. form.append("startScore", startScore);
  65. form.append("endScore", endScore);
  66. form.append("mainNumber", mainNumber);
  67. form.append("mainStartScore", mainStartScore);
  68. form.append("mainEndScore", mainEndScore);
  69. form.append("questionScore", questionScore);
  70. form.append("selectiveStatus", selectiveStatus);
  71. form.append("secretNumber", secretNumber);
  72. form.append("college", college);
  73. return httpApp.post<Task>("/admin/exam/inspected/getTask", form);
  74. }
  75. /** 批量复核得到任务总数 */
  76. export async function getInspectedTaskStatus({
  77. subjectCode = "",
  78. startScore = "",
  79. endScore = "",
  80. mainNumber = "",
  81. mainStartScore = "",
  82. mainEndScore = "",
  83. questionScore = "",
  84. selectiveStatus = "",
  85. secretNumber = "",
  86. college = "",
  87. }: InspectedStatusParams) {
  88. const form = new FormData();
  89. form.append("subjectCode", subjectCode);
  90. form.append("startScore", startScore);
  91. form.append("endScore", endScore);
  92. form.append("mainNumber", mainNumber);
  93. form.append("mainStartScore", mainStartScore);
  94. form.append("mainEndScore", mainEndScore);
  95. form.append("questionScore", questionScore);
  96. form.append("selectiveStatus", selectiveStatus);
  97. form.append("secretNumber", secretNumber);
  98. form.append("college", college);
  99. return httpApp.post<{ valid: boolean; totalCount: number }>(
  100. "/admin/exam/inspected/getStatus",
  101. form
  102. );
  103. }
  104. /** 批量复核设置 */
  105. export async function getAdminPageSetting(subjectCode?: string) {
  106. const form = new FormData();
  107. subjectCode && form.append("subjectCode", subjectCode);
  108. return httpApp.post<AdminPageSetting>(
  109. "/admin/exam/inspected/getSetting",
  110. form
  111. );
  112. }
  113. /** 批量复核历史 */
  114. export async function getInspectedHistory({
  115. subjectCode,
  116. order = "markerTime",
  117. sort = "DESC",
  118. pageNumber = 1,
  119. pageSize = 20,
  120. secretNumber,
  121. }: HistoryQueryParams) {
  122. if (!subjectCode) return;
  123. const form = new FormData();
  124. form.append("subjectCode", subjectCode);
  125. secretNumber && form.append("secretNumber", secretNumber);
  126. form.append("order", order);
  127. form.append("sort", sort);
  128. form.append("pageNumber", pageNumber + "");
  129. form.append("pageSize", pageSize + "");
  130. return httpApp.post<Task[]>("/admin/exam/inspected/getHistory", form);
  131. }
  132. /** 保存复核任务 */
  133. export async function saveInspectedTask(studentId: string) {
  134. const form = new FormData();
  135. form.append("studentId", studentId);
  136. return httpApp.post<CommonResponse>("/admin/exam/inspected/save", form);
  137. }
  138. /** 复核任务打回问题 */
  139. export async function rejectInspectedTask(
  140. studentId: string,
  141. questionList: Array<Question>,
  142. reason: string
  143. ) {
  144. // questionList = questionList.map((item: any) => {
  145. // if (Array.isArray(item.trackList)) {
  146. // item.trackList = item.trackList.map((v: any) => {
  147. // delete v.isByMultMark;
  148. // return v;
  149. // });
  150. // }
  151. // return item;
  152. // });
  153. questionList = JSON.parse(
  154. JSON.stringify(questionList, (key, value) => {
  155. const keys: string[] = [
  156. "markerId",
  157. "color",
  158. "isByMultMark",
  159. "hasSetUnselective",
  160. ];
  161. // eslint-disable-next-line @typescript-eslint/no-unsafe-return
  162. return !key.startsWith("__") && !keys.includes(key) ? value : undefined;
  163. })
  164. );
  165. return httpApp.post<CommonResponse>("/admin/exam/inspected/rejected", {
  166. studentId,
  167. questionList,
  168. reason,
  169. });
  170. }