markPage.ts 3.6 KB

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