import { store } from "@/features/mark/store"; import { httpApp } from "@/plugins/axiosApp"; import { Setting, UISetting, MarkHistorySortField, MarkHistoryOrderBy, } from "@/types"; /** 清除评卷任务(之前锁住的任务之类的) */ export async function clearMarkTask() { return httpApp.post("/mark/clear"); } /** 获取评卷设置 */ export async function getSetting() { return httpApp.post("/mark/getSetting"); } /** 获取评卷状态 */ export async function getStatus() { return httpApp.post("/mark/getStatus"); } /** 获取评卷分组 */ export async function getGroup() { return httpApp.post("/mark/getGroup"); } /** 获取评卷任务 */ export async function getTask() { const res = await httpApp.post("/mark/getTask"); return res; } /** 更新评卷UI */ export async function updateUISetting( mode?: Setting["mode"], uiSetting?: UISetting ) { const form = new FormData(); uiSetting && form.append("uiSetting", JSON.stringify(uiSetting)); mode && form.append("mode", mode); return httpApp.post("/mark/updateSetting", form); } /** 获取评卷历史任务 */ export async function getHistoryTask({ pageNumber = 1, pageSize = 10, order = "markerTime", sort = "DESC", secretNumber = null, }: { pageNumber?: number; // 从1开始 pageSize?: number; order?: MarkHistoryOrderBy; sort?: MarkHistorySortField; secretNumber?: string | null; }) { const form = new FormData(); form.append("pageNumber", pageNumber + ""); form.append("pageSize", pageSize + ""); form.append("order", order); form.append("sort", sort); secretNumber && form.append("secretNumber", secretNumber); return httpApp.post("/mark/getHistory", form); } /** 保存评卷任务 */ export async function saveTask() { let markResult = store.currentMarkResult; if (markResult) { // markResult.specialTagList = []; markResult.problem = false; markResult.spent = Date.now() - markResult.__markStartTime; markResult = { ...markResult }; // @ts-ignore markResult.__markStartTime = undefined; // @ts-ignore markResult.__previous = undefined; return httpApp.post("/mark/saveTask", markResult, { setGlobalMask: true }); } } /** 获取分组列表 */ export async function getGroups() { return httpApp.post("/mark/getGroup"); } /** 获取用户信息 */ export async function changeUserInfo(name: string, password?: string) { const form = new FormData(); form.append("name", name); password && form.append("password", password); return httpApp.post("/mark/changeName", form); } /** 评卷用户退出 */ export async function doLogout() { window.location.href = "/mark/logout"; } /** 评卷用户选择分组 */ export async function doSwitchGroup(markerId: number) { const form = new FormData(); form.append("markerId", "" + markerId); return httpApp.post("/mark/subjectSelect", form); } /** 评卷用户选择试卷的问题类型 */ export async function doProblemType(problemId: number) { let markResult = store.currentMarkResult; if (markResult) { markResult.problem = true; markResult.problemTypeId = problemId; // @ts-ignore FIXME: should allow null markResult.markerScore = null; markResult.scoreList = []; markResult.specialTagList = []; markResult.trackList = []; markResult.spent = Date.now() - markResult.__markStartTime; markResult = { ...markResult }; // @ts-ignore markResult.__markStartTime = undefined; // @ts-ignore markResult.__previous = undefined; return httpApp.post("/mark/saveTask", markResult); } else { console.error("无当前评卷结果"); } }