inspectPage.ts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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 InspectedParams {
  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. }
  36. /** 批量复核得到单个学生的复核任务 */
  37. export async function getOneOfInspectedTask({
  38. subjectCode = "",
  39. startScore = "",
  40. endScore = "",
  41. mainNumber = "",
  42. mainStartScore = "",
  43. mainEndScore = "",
  44. questionScore = "",
  45. selectiveStatus = "",
  46. secretNumber = "",
  47. }: InspectedParams) {
  48. const form = new FormData();
  49. form.append("subjectCode", subjectCode);
  50. form.append("startScore", startScore);
  51. form.append("endScore", endScore);
  52. form.append("mainNumber", mainNumber);
  53. form.append("mainStartScore", mainStartScore);
  54. form.append("mainEndScore", mainEndScore);
  55. form.append("questionScore", questionScore);
  56. form.append("selectiveStatus", selectiveStatus);
  57. form.append("secretNumber", secretNumber);
  58. return httpApp.post<Task>("/admin/exam/inspected/getTask", form);
  59. }
  60. /** 批量复核得到任务总数 */
  61. export async function getInspectedTaskStatus({
  62. subjectCode = "",
  63. startScore = "",
  64. endScore = "",
  65. mainNumber = "",
  66. mainStartScore = "",
  67. mainEndScore = "",
  68. questionScore = "",
  69. selectiveStatus = "",
  70. secretNumber = "",
  71. }: InspectedParams) {
  72. const form = new FormData();
  73. form.append("subjectCode", subjectCode);
  74. form.append("startScore", startScore);
  75. form.append("endScore", endScore);
  76. form.append("mainNumber", mainNumber);
  77. form.append("mainStartScore", mainStartScore);
  78. form.append("mainEndScore", mainEndScore);
  79. form.append("questionScore", questionScore);
  80. form.append("selectiveStatus", selectiveStatus);
  81. form.append("secretNumber", secretNumber);
  82. return httpApp.post<{ valid: boolean; totalCount: number }>(
  83. "/admin/exam/inspected/getStatus",
  84. form
  85. );
  86. }
  87. /** 批量复核设置 */
  88. export async function getAdminPageSetting(subjectCode?: string) {
  89. const form = new FormData();
  90. subjectCode && form.append("subjectCode", subjectCode);
  91. return httpApp.post<AdminPageSetting>(
  92. "/admin/exam/inspected/getSetting",
  93. form
  94. );
  95. }
  96. /** 批量复核历史 */
  97. export async function getInspectedHistory({
  98. subjectCode,
  99. order = "markerTime",
  100. sort = "DESC",
  101. pageNumber = 1,
  102. pageSize = 20,
  103. secretNumber,
  104. }: HistoryQueryParams) {
  105. if (!subjectCode) return;
  106. const form = new FormData();
  107. form.append("subjectCode", subjectCode);
  108. secretNumber && form.append("secretNumber", secretNumber);
  109. form.append("order", order);
  110. form.append("sort", sort);
  111. form.append("pageNumber", pageNumber + "");
  112. form.append("pageSize", pageSize + "");
  113. return httpApp.post<Task[]>("/admin/exam/inspected/getHistory", form);
  114. }
  115. /** 保存复核任务 */
  116. export async function saveInspectedTask(studentId: string) {
  117. const form = new FormData();
  118. form.append("studentId", studentId);
  119. return httpApp.post<CommonResponse>("/admin/exam/inspected/save", form);
  120. }
  121. /** 复核任务打回问题 */
  122. export async function rejectInspectedTask(
  123. studentId: string,
  124. questionList: Array<Question>,
  125. reason: string
  126. ) {
  127. // questionList = questionList.map((item: any) => {
  128. // if (Array.isArray(item.trackList)) {
  129. // item.trackList = item.trackList.map((v: any) => {
  130. // delete v.isByMultMark;
  131. // return v;
  132. // });
  133. // }
  134. // return item;
  135. // });
  136. questionList = JSON.parse(
  137. JSON.stringify(questionList, (key, value) => {
  138. const keys: string[] = ["markerId", "color", "isByMultMark"];
  139. // eslint-disable-next-line @typescript-eslint/no-unsafe-return
  140. return !key.startsWith("__") && !keys.includes(key) ? value : undefined;
  141. })
  142. );
  143. return httpApp.post<CommonResponse>("/admin/exam/inspected/rejected", {
  144. studentId,
  145. questionList,
  146. reason,
  147. });
  148. }