markPage.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. import { store } from "@/store/store";
  2. import { httpApp } from "@/plugins/axiosApp";
  3. import {
  4. Setting,
  5. UISetting,
  6. HistoryQueryParams,
  7. MarkStore,
  8. Group,
  9. Task,
  10. CommonResponse,
  11. } from "@/types";
  12. /** 清除评卷任务(之前锁住的任务之类的) */
  13. export async function clearMarkTask() {
  14. return httpApp.post<void>("/mark/clear");
  15. }
  16. /** 获取评卷设置 */
  17. export async function getSetting() {
  18. return httpApp.post<Setting>("/mark/getSetting");
  19. }
  20. /** 获取评卷状态 */
  21. export async function getStatus() {
  22. return httpApp.post<MarkStore["status"]>("/mark/getStatus");
  23. }
  24. /** 获取评卷分组 */
  25. export async function getGroup() {
  26. return httpApp.post<Group[]>("/mark/getGroup");
  27. }
  28. /** 获取评卷任务 */
  29. export async function getTask() {
  30. return httpApp.post<Task>("/mark/getTask");
  31. }
  32. /** 更新评卷UI */
  33. export async function updateUISetting(
  34. mode?: Setting["mode"],
  35. uiSetting?: UISetting
  36. ) {
  37. const form = new FormData();
  38. uiSetting && form.append("uiSetting", JSON.stringify(uiSetting));
  39. mode && form.append("mode", mode);
  40. return httpApp.post<void>("/mark/updateSetting", form);
  41. }
  42. /** 获取评卷历史任务 */
  43. export async function getHistoryTask({
  44. pageNumber = 1,
  45. pageSize = 20,
  46. order = "markerTime",
  47. sort = "DESC",
  48. secretNumber = null,
  49. }: HistoryQueryParams) {
  50. const form = new FormData();
  51. form.append("pageNumber", pageNumber + "");
  52. form.append("pageSize", pageSize + "");
  53. form.append("order", order);
  54. form.append("sort", sort);
  55. secretNumber && form.append("secretNumber", secretNumber);
  56. return httpApp.post<Task[]>("/mark/getHistory", form);
  57. }
  58. /** 保存评卷任务(正常保存) */
  59. export async function saveTask() {
  60. if (!store.currentTask?.markResult) return;
  61. let markResult = store.currentTask.markResult;
  62. markResult.problem = false;
  63. markResult.unselective = false;
  64. markResult.spent = Date.now() - store.currentTask.__markStartTime;
  65. markResult = { ...markResult };
  66. return httpApp.post<CommonResponse>("/mark/saveTask", markResult, {
  67. setGlobalMask: true,
  68. });
  69. }
  70. /** 获取用户信息 */
  71. export async function changeUserInfo(name: string, password?: string) {
  72. const form = new FormData();
  73. form.append("name", name);
  74. password && form.append("password", password);
  75. return httpApp.post<void>("/mark/changeName", form);
  76. }
  77. /** 评卷用户退出 */
  78. export function doLogout() {
  79. window.location.href = "/mark/logout";
  80. }
  81. /** 评卷用户选择分组 */
  82. export async function doSwitchGroup(markerId: number) {
  83. const form = new FormData();
  84. form.append("markerId", "" + markerId);
  85. return httpApp.post<CommonResponse>("/mark/subjectSelect", form);
  86. }
  87. /** 评卷用户选择试卷的问题类型 */
  88. export async function doProblemType(problemId: number) {
  89. if (!store.currentTask?.markResult) return;
  90. let markResult = store.currentTask?.markResult;
  91. markResult.problem = true;
  92. markResult.unselective = false;
  93. markResult.problemTypeId = problemId;
  94. markResult.markerScore = null;
  95. markResult.scoreList = [];
  96. markResult.specialTagList = [];
  97. markResult.trackList = [];
  98. markResult.spent = Date.now() - store.currentTask.__markStartTime;
  99. markResult = { ...markResult };
  100. return httpApp.post<CommonResponse>("/mark/saveTask", markResult);
  101. }
  102. /** 评卷用户选择试卷的为未选做 */
  103. export async function doUnselectiveType() {
  104. if (!store.currentTask?.markResult) return;
  105. let markResult = store.currentTask?.markResult;
  106. markResult.problem = false;
  107. markResult.unselective = true;
  108. markResult.markerScore = -1;
  109. markResult.scoreList = [];
  110. markResult.specialTagList = [];
  111. markResult.trackList = [];
  112. markResult.spent = Date.now() - store.currentTask.__markStartTime;
  113. markResult = { ...markResult };
  114. return httpApp.post<CommonResponse>("/mark/saveTask", markResult);
  115. }