zhangjie 1 rok temu
rodzic
commit
15fce08131

+ 0 - 1
components.d.ts

@@ -14,7 +14,6 @@ declare module '@vue/runtime-core' {
     AForm: typeof import('ant-design-vue/es')['Form']
     AFormItem: typeof import('ant-design-vue/es')['FormItem']
     AInput: typeof import('ant-design-vue/es')['Input']
-    AInputSearch: typeof import('ant-design-vue/es')['InputSearch']
     AMenu: typeof import('ant-design-vue/es')['Menu']
     AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
     AModal: typeof import('ant-design-vue/es')['Modal']

+ 1 - 1
cypress.config.ts

@@ -2,7 +2,7 @@ import { defineConfig } from "cypress";
 
 export default defineConfig({
   e2e: {
-    baseUrl: "http://localhost:9000",
+    baseUrl: "http://localhost:8059",
     // setupNodeEvents(on, config) {},
     viewportWidth: 1280,
     viewportHeight: 660,

+ 1 - 1
cypress/e2e/login.cy.ts

@@ -1,4 +1,4 @@
-describe("The /web/mark Page", () => {
+describe("The /mark/mark Page", () => {
   it("logs in programmatically without using the UI", function () {
     const user = {
       loginType: "mark-login",

+ 11 - 11
cypress/support/commands.ts

@@ -37,14 +37,14 @@
 // }
 
 Cypress.Commands.add("networkStub", () => {
-  cy.intercept("POST", "/login", "true");
-  cy.intercept("POST", "/mark/clear", "true");
-  cy.intercept("POST", "/mark/updateSetting", "true");
-  cy.intercept("GET", "/mark/subject-select", "true");
-  cy.intercept("POST", "/mark/subject-select", "true");
+  cy.intercept("POST", "/api/login", "true");
+  cy.intercept("POST", "/api/mark/clear", "true");
+  cy.intercept("POST", "/api/mark/updateSetting", "true");
+  cy.intercept("GET", "/api/mark/subject-select", "true");
+  cy.intercept("POST", "/api/mark/subject-select", "true");
   cy.intercept(
     "POST",
-    "/mark/subject/query",
+    "/api/mark/subject/query",
     `[
                 {
                   "id": 426,
@@ -53,19 +53,19 @@ Cypress.Commands.add("networkStub", () => {
                 }
               ]`
   );
-  cy.intercept("POST", "/mark/getSetting", {
+  cy.intercept("POST", "/api/mark/getSetting", {
     fixture: "settings-1.json",
   }).as("setting");
-  cy.intercept("POST", "/mark/getStatus", {
+  cy.intercept("POST", "/api/mark/getStatus", {
     fixture: "status-1.json",
   });
-  cy.intercept("POST", "/mark/getGroup", {
+  cy.intercept("POST", "/api/mark/getGroup", {
     fixture: "groups-1.json",
   });
-  cy.intercept("POST", "/mark/getTask", {
+  cy.intercept("POST", "/api/mark/getTask", {
     fixture: "task-1.json",
   }).as("task");
-  cy.intercept("GET", "/slice/**", (req) => {
+  cy.intercept("GET", "/api/slice/**", (req) => {
     function getFixtureFilenameForUrl(url: string) {
       return "assets/" + url.split("/").pop() + ",null";
     }

+ 1 - 1
index.html

@@ -5,7 +5,7 @@
   <meta charset="UTF-8" />
   <link rel="icon" href="/favicon.ico" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>云阅卷</title>
+  <title>知学知考1</title>
 </head>
 
 <body>

BIN
public/favicon.ico


+ 8 - 8
src/api/arbitratePage.ts

@@ -18,14 +18,14 @@ export async function clearArbitrateTask(
   libraryId && form.append("groupNumber", libraryId);
   subjectCode && form.append("subjectCode", subjectCode);
   groupNumber && form.append("groupNumber", groupNumber);
-  return httpApp.post<void>("/admin/exam/arbitrate/clear", form);
+  return httpApp.post<void>("/api/admin/exam/arbitrate/clear", form);
 }
 
 /** 查看单个学生的仲裁任务 */
 export async function getSingleArbitrateTask(historyId: string) {
   const form = new FormData();
   historyId && form.append("historyId", historyId);
-  return httpApp.post<Task>("/admin/exam/arbitrate/getTask", form);
+  return httpApp.post<Task>("/ap/admin/exam/arbitrate/getTask", form);
 }
 
 /** 查看仲裁任务2次分数 */
@@ -33,7 +33,7 @@ export async function getArbitrateList(historyId: string) {
   const form = new FormData();
   historyId && form.append("historyId", historyId);
   return httpApp.post<MarkDetail[]>(
-    "/admin/exam/arbitrate/getArbitrationList",
+    "/ap/admin/exam/arbitrate/getArbitrationList",
     form
   );
 }
@@ -46,7 +46,7 @@ export async function getOneOfArbitrateTask(
   const form = new FormData();
   form.append("subjectCode", subjectCode);
   form.append("groupNumber", groupNumber);
-  return httpApp.post<Task>("/admin/exam/arbitrate/getTask", form, {
+  return httpApp.post<Task>("/ap/admin/exam/arbitrate/getTask", form, {
     setGlobalMask: true,
   });
 }
@@ -63,7 +63,7 @@ export async function getArbitrateTaskStatus(
     valid: boolean;
     totalCount: number;
     markedCount: number;
-  }>("/admin/exam/arbitrate/getStatus", form);
+  }>("/ap/admin/exam/arbitrate/getStatus", form);
 }
 
 /** 批量仲裁设置 */
@@ -76,7 +76,7 @@ export async function getArbitrateSetting(
   historyId && form.append("historyId", historyId);
   subjectCode && form.append("subjectCode", subjectCode);
   groupNumber && form.append("groupNumber", groupNumber);
-  return httpApp.post<Setting>("/admin/exam/arbitrate/getSetting", form);
+  return httpApp.post<Setting>("/ap/admin/exam/arbitrate/getSetting", form);
 }
 
 /** 批量仲裁历史 */
@@ -98,7 +98,7 @@ export async function getArbitrateHistory({
   form.append("order", order);
   form.append("sort", sort);
   secretNumber && form.append("secretNumber", secretNumber);
-  return httpApp.post<Task[]>("/admin/exam/arbitrate/getHistory", form);
+  return httpApp.post<Task[]>("/ap/admin/exam/arbitrate/getHistory", form);
 }
 
 /** 保存仲裁任务 */
@@ -111,7 +111,7 @@ export async function saveArbitrateTask(
   trackList?: any,
   specialTagList?: any
 ) {
-  return httpApp.post<CommonResponse>("/admin/exam/arbitrate/saveTask", {
+  return httpApp.post<CommonResponse>("/ap/admin/exam/arbitrate/saveTask", {
     libraryId,
     studentId,
     markerScore,

+ 6 - 3
src/api/importInspectPage.ts

@@ -5,7 +5,7 @@ export async function getInspectedSettingOfImportInspect(studentId?: string) {
   const form = new FormData();
   studentId && form.append("studentId", studentId);
   return httpApp.post<AdminPageSettingForImport>(
-    "/admin/exam/inspected/import/getSetting",
+    "/api/admin/exam/inspected/import/getSetting",
     form
   );
 }
@@ -14,7 +14,7 @@ export async function getInspectedSettingOfImportInspect(studentId?: string) {
 export async function getSingleInspectedTaskOfImportInspect(studentId: string) {
   const form = new FormData();
   studentId && form.append("studentId", studentId);
-  return httpApp.post<Task>("/admin/exam/inspected/import/getTask", form);
+  return httpApp.post<Task>("/api/admin/exam/inspected/import/getTask", form);
 }
 
 /** 保存复核任务 */
@@ -25,5 +25,8 @@ export async function saveInspectedTaskOfImportInspect(
   const form = new FormData();
   form.append("studentId", studentId);
   form.append("isTag", isTag);
-  return httpApp.post<CommonResponse>("/admin/exam/inspected/import/tag", form);
+  return httpApp.post<CommonResponse>(
+    "/api/admin/exam/inspected/import/tag",
+    form
+  );
 }

+ 157 - 157
src/api/inspectPage.ts

@@ -1,157 +1,157 @@
-import { httpApp } from "@/plugins/axiosApp";
-import {
-  AdminPageSetting,
-  CommonResponse,
-  HistoryQueryParams,
-  Question,
-  Task,
-} from "@/types";
-
-/** 清理复核任务 */
-export async function clearInspectedTask(
-  studentId?: string,
-  subjectCode?: string
-) {
-  const form = new FormData();
-  studentId && form.append("studentId", studentId);
-  subjectCode && form.append("subjectCode", subjectCode);
-  return httpApp.post<void>("/admin/exam/inspected/clear", form);
-}
-
-/** 查看单个学生的复核任务 */
-export async function getSingleInspectedTask(studentId: string) {
-  const form = new FormData();
-  studentId && form.append("studentId", studentId);
-  return httpApp.post<Task>("/admin/exam/inspected/getTask", form);
-}
-
-export interface InspectedParams {
-  subjectCode: string;
-  startScore?: string;
-  endScore?: string;
-  mainNumber?: string;
-  mainStartScore?: string;
-  mainEndScore?: string;
-  questionScore?: string;
-  selectiveStatus?: string;
-  secretNumber?: string;
-}
-
-/** 批量复核得到单个学生的复核任务 */
-export async function getOneOfInspectedTask({
-  subjectCode = "",
-  startScore = "",
-  endScore = "",
-  mainNumber = "",
-  mainStartScore = "",
-  mainEndScore = "",
-  questionScore = "",
-  selectiveStatus = "",
-  secretNumber = "",
-}: InspectedParams) {
-  const form = new FormData();
-  form.append("subjectCode", subjectCode);
-  form.append("startScore", startScore);
-  form.append("endScore", endScore);
-  form.append("mainNumber", mainNumber);
-  form.append("mainStartScore", mainStartScore);
-  form.append("mainEndScore", mainEndScore);
-  form.append("questionScore", questionScore);
-  form.append("selectiveStatus", selectiveStatus);
-  form.append("secretNumber", secretNumber);
-  return httpApp.post<Task>("/admin/exam/inspected/getTask", form);
-}
-
-/** 批量复核得到任务总数 */
-export async function getInspectedTaskStatus({
-  subjectCode = "",
-  startScore = "",
-  endScore = "",
-  mainNumber = "",
-  mainStartScore = "",
-  mainEndScore = "",
-  questionScore = "",
-  selectiveStatus = "",
-  secretNumber = "",
-}: InspectedParams) {
-  const form = new FormData();
-  form.append("subjectCode", subjectCode);
-  form.append("startScore", startScore);
-  form.append("endScore", endScore);
-  form.append("mainNumber", mainNumber);
-  form.append("mainStartScore", mainStartScore);
-  form.append("mainEndScore", mainEndScore);
-  form.append("questionScore", questionScore);
-  form.append("selectiveStatus", selectiveStatus);
-  form.append("secretNumber", secretNumber);
-  return httpApp.post<{ valid: boolean; totalCount: number }>(
-    "/admin/exam/inspected/getStatus",
-    form
-  );
-}
-
-/** 批量复核设置 */
-export async function getAdminPageSetting(subjectCode?: string) {
-  const form = new FormData();
-  subjectCode && form.append("subjectCode", subjectCode);
-  return httpApp.post<AdminPageSetting>(
-    "/admin/exam/inspected/getSetting",
-    form
-  );
-}
-
-/** 批量复核历史 */
-export async function getInspectedHistory({
-  subjectCode,
-  order = "markerTime",
-  sort = "DESC",
-  pageNumber = 1,
-  pageSize = 20,
-  secretNumber,
-}: HistoryQueryParams) {
-  if (!subjectCode) return;
-  const form = new FormData();
-  form.append("subjectCode", subjectCode);
-  secretNumber && form.append("secretNumber", secretNumber);
-  form.append("order", order);
-  form.append("sort", sort);
-  form.append("pageNumber", pageNumber + "");
-  form.append("pageSize", pageSize + "");
-  return httpApp.post<Task[]>("/admin/exam/inspected/getHistory", form);
-}
-
-/** 保存复核任务 */
-export async function saveInspectedTask(studentId: string) {
-  const form = new FormData();
-  form.append("studentId", studentId);
-  return httpApp.post<CommonResponse>("/admin/exam/inspected/save", form);
-}
-
-/** 复核任务打回问题 */
-export async function rejectInspectedTask(
-  studentId: string,
-  questionList: Array<Question>,
-  reason: string
-) {
-  // questionList = questionList.map((item: any) => {
-  //   if (Array.isArray(item.trackList)) {
-  //     item.trackList = item.trackList.map((v: any) => {
-  //       delete v.isByMultMark;
-  //       return v;
-  //     });
-  //   }
-  //   return item;
-  // });
-  questionList = JSON.parse(
-    JSON.stringify(questionList, (key, value) => {
-      const keys: string[] = ["markerId", "color", "isByMultMark"];
-      // eslint-disable-next-line @typescript-eslint/no-unsafe-return
-      return !key.startsWith("__") && !keys.includes(key) ? value : undefined;
-    })
-  );
-  return httpApp.post<CommonResponse>("/admin/exam/inspected/rejected", {
-    studentId,
-    questionList,
-    reason,
-  });
-}
+import { httpApp } from "@/plugins/axiosApp";
+import {
+  AdminPageSetting,
+  CommonResponse,
+  HistoryQueryParams,
+  Question,
+  Task,
+} from "@/types";
+
+/** 清理复核任务 */
+export async function clearInspectedTask(
+  studentId?: string,
+  subjectCode?: string
+) {
+  const form = new FormData();
+  studentId && form.append("studentId", studentId);
+  subjectCode && form.append("subjectCode", subjectCode);
+  return httpApp.post<void>("/api/admin/exam/inspected/clear", form);
+}
+
+/** 查看单个学生的复核任务 */
+export async function getSingleInspectedTask(studentId: string) {
+  const form = new FormData();
+  studentId && form.append("studentId", studentId);
+  return httpApp.post<Task>("/api/admin/exam/inspected/getTask", form);
+}
+
+export interface InspectedParams {
+  subjectCode: string;
+  startScore?: string;
+  endScore?: string;
+  mainNumber?: string;
+  mainStartScore?: string;
+  mainEndScore?: string;
+  questionScore?: string;
+  selectiveStatus?: string;
+  secretNumber?: string;
+}
+
+/** 批量复核得到单个学生的复核任务 */
+export async function getOneOfInspectedTask({
+  subjectCode = "",
+  startScore = "",
+  endScore = "",
+  mainNumber = "",
+  mainStartScore = "",
+  mainEndScore = "",
+  questionScore = "",
+  selectiveStatus = "",
+  secretNumber = "",
+}: InspectedParams) {
+  const form = new FormData();
+  form.append("subjectCode", subjectCode);
+  form.append("startScore", startScore);
+  form.append("endScore", endScore);
+  form.append("mainNumber", mainNumber);
+  form.append("mainStartScore", mainStartScore);
+  form.append("mainEndScore", mainEndScore);
+  form.append("questionScore", questionScore);
+  form.append("selectiveStatus", selectiveStatus);
+  form.append("secretNumber", secretNumber);
+  return httpApp.post<Task>("/api/admin/exam/inspected/getTask", form);
+}
+
+/** 批量复核得到任务总数 */
+export async function getInspectedTaskStatus({
+  subjectCode = "",
+  startScore = "",
+  endScore = "",
+  mainNumber = "",
+  mainStartScore = "",
+  mainEndScore = "",
+  questionScore = "",
+  selectiveStatus = "",
+  secretNumber = "",
+}: InspectedParams) {
+  const form = new FormData();
+  form.append("subjectCode", subjectCode);
+  form.append("startScore", startScore);
+  form.append("endScore", endScore);
+  form.append("mainNumber", mainNumber);
+  form.append("mainStartScore", mainStartScore);
+  form.append("mainEndScore", mainEndScore);
+  form.append("questionScore", questionScore);
+  form.append("selectiveStatus", selectiveStatus);
+  form.append("secretNumber", secretNumber);
+  return httpApp.post<{ valid: boolean; totalCount: number }>(
+    "/api/admin/exam/inspected/getStatus",
+    form
+  );
+}
+
+/** 批量复核设置 */
+export async function getAdminPageSetting(subjectCode?: string) {
+  const form = new FormData();
+  subjectCode && form.append("subjectCode", subjectCode);
+  return httpApp.post<AdminPageSetting>(
+    "/api/admin/exam/inspected/getSetting",
+    form
+  );
+}
+
+/** 批量复核历史 */
+export async function getInspectedHistory({
+  subjectCode,
+  order = "markerTime",
+  sort = "DESC",
+  pageNumber = 1,
+  pageSize = 20,
+  secretNumber,
+}: HistoryQueryParams) {
+  if (!subjectCode) return;
+  const form = new FormData();
+  form.append("subjectCode", subjectCode);
+  secretNumber && form.append("secretNumber", secretNumber);
+  form.append("order", order);
+  form.append("sort", sort);
+  form.append("pageNumber", pageNumber + "");
+  form.append("pageSize", pageSize + "");
+  return httpApp.post<Task[]>("/api/admin/exam/inspected/getHistory", form);
+}
+
+/** 保存复核任务 */
+export async function saveInspectedTask(studentId: string) {
+  const form = new FormData();
+  form.append("studentId", studentId);
+  return httpApp.post<CommonResponse>("/api/admin/exam/inspected/save", form);
+}
+
+/** 复核任务打回问题 */
+export async function rejectInspectedTask(
+  studentId: string,
+  questionList: Array<Question>,
+  reason: string
+) {
+  // questionList = questionList.map((item: any) => {
+  //   if (Array.isArray(item.trackList)) {
+  //     item.trackList = item.trackList.map((v: any) => {
+  //       delete v.isByMultMark;
+  //       return v;
+  //     });
+  //   }
+  //   return item;
+  // });
+  questionList = JSON.parse(
+    JSON.stringify(questionList, (key, value) => {
+      const keys: string[] = ["markerId", "color", "isByMultMark"];
+      // eslint-disable-next-line @typescript-eslint/no-unsafe-return
+      return !key.startsWith("__") && !keys.includes(key) ? value : undefined;
+    })
+  );
+  return httpApp.post<CommonResponse>("/api/admin/exam/inspected/rejected", {
+    studentId,
+    questionList,
+    reason,
+  });
+}

+ 6 - 6
src/api/libraryInspectPage.ts

@@ -9,7 +9,7 @@ export async function clearInspectedTaskOfLibraryInspect(
   const form = new FormData();
   subjectCode && form.append("subjectCode", subjectCode);
   groupNumber && form.append("groupNumber", groupNumber);
-  return httpApp.post<void>("/admin/exam/library/clear", form);
+  return httpApp.post<void>("/api/admin/exam/library/clear", form);
 }
 
 /** 批量复核历史 */
@@ -31,7 +31,7 @@ export async function getLibraryInspectedHistoryOfLibraryInspect({
   form.append("pageNumber", pageNumber + "");
   form.append("pageSize", pageSize + "");
   groupNumber && form.append("groupNumber", groupNumber);
-  return httpApp.post<Task[]>("/admin/exam/library/getHistory", form);
+  return httpApp.post<Task[]>("/api/admin/exam/library/getHistory", form);
 }
 
 /** 批量复核得到单个学生的复核任务 */
@@ -66,7 +66,7 @@ export async function getOneOfInspectedTaskOfLibraryInspect({
   endScore && form.append("endScore", endScore);
   questionScore && form.append("questionScore", questionScore);
   unselective && form.append("unselective", unselective);
-  return httpApp.post<Task>("/admin/exam/library/getTask", form);
+  return httpApp.post<Task>("/api/admin/exam/library/getTask", form);
 }
 
 /** 批量复核得到任务总数 */
@@ -102,7 +102,7 @@ export async function getInspectedTaskStatusOfLibraryInspect({
   questionScore && form.append("questionScore", questionScore);
   unselective && form.append("unselective", unselective);
   return httpApp.post<{ valid: boolean; totalCount: number }>(
-    "/admin/exam/library/getStatus",
+    "/api/admin/exam/library/getStatus",
     form
   );
 }
@@ -112,7 +112,7 @@ export async function saveInspectedTaskOfLibraryInspect(libraryId: string) {
   const form = new FormData();
   form.append("libraryId", libraryId);
   return httpApp.post<CommonResponse>(
-    "/admin/exam/library/inspected/save",
+    "/api/admin/exam/library/inspected/save",
     form
   );
 }
@@ -129,7 +129,7 @@ export async function rejectInspectedTaskOfLibraryInspect(
       !key.startsWith("__") ? value : undefined
     )
   );
-  return httpApp.post<CommonResponse>("/admin/exam/library/rejected", {
+  return httpApp.post<CommonResponse>("/api/admin/exam/library/rejected", {
     libraryId,
     questionList,
     reason,

+ 5 - 2
src/api/libraryTrackPage.ts

@@ -12,7 +12,10 @@ interface LibraryTrackResponse {
 export async function getSingleLibraryTask(libraryId: string) {
   const form = new FormData();
   libraryId && form.append("libraryId", libraryId);
-  return httpApp.post<LibraryTrackResponse>("/admin/exam/track/library", form);
+  return httpApp.post<LibraryTrackResponse>(
+    "/api/admin/exam/track/library",
+    form
+  );
 }
 
 /** 查看单个*试评*评卷任务的试卷轨迹 */
@@ -20,7 +23,7 @@ export async function getSingleLibraryTaskTrial(libraryId: string) {
   const form = new FormData();
   libraryId && form.append("libraryId", libraryId);
   return httpApp.post<LibraryTrackResponse>(
-    "/admin/exam/track/trialLibrary",
+    "/api/admin/exam/track/trialLibrary",
     form
   );
 }

+ 13 - 13
src/api/markPage.ts

@@ -12,27 +12,27 @@ import {
 
 /** 清除评卷任务(之前锁住的任务之类的) */
 export async function clearMarkTask() {
-  return httpApp.post<void>("/mark/clear");
+  return httpApp.post<void>("/api/mark/clear");
 }
 
 /** 获取评卷设置 */
 export async function getSetting() {
-  return httpApp.post<Setting>("/mark/getSetting");
+  return httpApp.post<Setting>("/api/mark/getSetting");
 }
 
 /** 获取评卷状态 */
 export async function getStatus() {
-  return httpApp.post<MarkStore["status"]>("/mark/getStatus");
+  return httpApp.post<MarkStore["status"]>("/api/mark/getStatus");
 }
 
 /** 获取评卷分组 */
 export async function getGroup() {
-  return httpApp.post<Group[]>("/mark/getGroup");
+  return httpApp.post<Group[]>("/api/mark/getGroup");
 }
 
 /** 获取评卷任务 */
 export async function getTask() {
-  return httpApp.post<Task>("/mark/getTask");
+  return httpApp.post<Task>("/api/mark/getTask");
 }
 
 /** 更新评卷UI */
@@ -43,7 +43,7 @@ export async function updateUISetting(
   const form = new FormData();
   uiSetting && form.append("uiSetting", JSON.stringify(uiSetting));
   mode && form.append("mode", mode);
-  return httpApp.post<void>("/mark/updateSetting", form);
+  return httpApp.post<void>("/api/mark/updateSetting", form);
 }
 
 /** 获取评卷历史任务 */
@@ -62,7 +62,7 @@ export async function getHistoryTask({
   form.append("sort", sort);
   secretNumber && form.append("secretNumber", secretNumber);
   markerScore && form.append("markerScore", markerScore);
-  return httpApp.post<Task[]>("/mark/getHistory", form);
+  return httpApp.post<Task[]>("/api/mark/getHistory", form);
 }
 
 /** 保存评卷任务(正常保存) */
@@ -75,7 +75,7 @@ export async function saveTask() {
   markResult.spent = Date.now() - store.currentTask.__markStartTime;
   markResult = { ...markResult };
 
-  return httpApp.post<CommonResponse>("/mark/saveTask", markResult, {
+  return httpApp.post<CommonResponse>("/api/mark/saveTask", markResult, {
     setGlobalMask: true,
   });
 }
@@ -85,19 +85,19 @@ export async function changeUserInfo(name: string, password?: string) {
   const form = new FormData();
   form.append("name", name);
   password && form.append("password", password);
-  return httpApp.post<void>("/mark/changeName", form);
+  return httpApp.post<void>("/api/mark/changeName", form);
 }
 
 /** 评卷用户退出 */
 export function doLogout() {
-  window.location.href = "/mark/logout";
+  window.location.href = "/api/mark/logout";
 }
 
 /** 评卷用户选择分组 */
 export async function doSwitchGroup(markerId: number) {
   const form = new FormData();
   form.append("markerId", "" + markerId);
-  return httpApp.post<CommonResponse>("/mark/subjectSelect", form);
+  return httpApp.post<CommonResponse>("/api/mark/subjectSelect", form);
 }
 
 /** 评卷用户选择试卷的问题类型 */
@@ -116,7 +116,7 @@ export async function doProblemType(problemId: number) {
   markResult.spent = Date.now() - store.currentTask.__markStartTime;
   markResult = { ...markResult };
 
-  return httpApp.post<CommonResponse>("/mark/saveTask", markResult);
+  return httpApp.post<CommonResponse>("/api/mark/saveTask", markResult);
 }
 
 /** 评卷用户选择试卷的为未选做 */
@@ -134,5 +134,5 @@ export async function doUnselectiveType() {
   markResult.spent = Date.now() - store.currentTask.__markStartTime;
   markResult = { ...markResult };
 
-  return httpApp.post<CommonResponse>("/mark/saveTask", markResult);
+  return httpApp.post<CommonResponse>("/api/mark/saveTask", markResult);
 }

+ 1 - 1
src/api/qualityPage.ts

@@ -19,5 +19,5 @@ export async function getQualityHistory({
   form.append("sort", sort);
   form.append("pageNumber", pageNumber + "");
   form.append("pageSize", pageSize + "");
-  return httpApp.post<Task[]>("/admin/exam/quality/history", form);
+  return httpApp.post<Task[]>("/api/admin/exam/quality/history", form);
 }

+ 27 - 27
src/api/scoreVerify.ts

@@ -1,27 +1,27 @@
-import { httpApp } from "@/plugins/axiosApp";
-import { AdminPageSettingForImport, CommonResponse, Task } from "@/types";
-
-export async function getInspectedSettingOfImportInspect(studentId?: string) {
-  const form = new FormData();
-  studentId && form.append("studentId", studentId);
-  return httpApp.post<AdminPageSettingForImport>(
-    "/admin/exam/score/verify/needverify",
-    form
-  );
-}
-
-export async function getSingleInspectedTaskOfImportInspect(studentId: string) {
-  const form = new FormData();
-  studentId && form.append("studentId", studentId);
-  return httpApp.post<any>("/admin/exam/score/verify/info", form);
-}
-
-export async function saveInspectedTaskOfImportInspect(
-  studentId: string,
-  isTag: string
-) {
-  const form = new FormData();
-  form.append("studentId", studentId);
-  form.append("isTag", isTag);
-  return httpApp.post<CommonResponse>("/admin/exam/score/verify/tag", form);
-}
+import { httpApp } from "@/plugins/axiosApp";
+import { AdminPageSettingForImport, CommonResponse } from "@/types";
+
+export async function getInspectedSettingOfImportInspect(studentId?: string) {
+  const form = new FormData();
+  studentId && form.append("studentId", studentId);
+  return httpApp.post<AdminPageSettingForImport>(
+    "/api/admin/exam/score/verify/needverify",
+    form
+  );
+}
+
+export async function getSingleInspectedTaskOfImportInspect(studentId: string) {
+  const form = new FormData();
+  studentId && form.append("studentId", studentId);
+  return httpApp.post<any>("/api/admin/exam/score/verify/info", form);
+}
+
+export async function saveInspectedTaskOfImportInspect(
+  studentId: string,
+  isTag: string
+) {
+  const form = new FormData();
+  form.append("studentId", studentId);
+  form.append("isTag", isTag);
+  return httpApp.post<CommonResponse>("/api/admin/exam/score/verify/tag", form);
+}

+ 1 - 1
src/api/studentTrackPage.ts

@@ -5,5 +5,5 @@ import { Task } from "@/types";
 export async function getSingleStudentTaskOfStudentTrack(studentId: string) {
   const form = new FormData();
   studentId && form.append("studentId", studentId);
-  return httpApp.post<Task>("/admin/exam/track/student", form);
+  return httpApp.post<Task>("/api/admin/exam/track/student", form);
 }

+ 5 - 3
src/devLogin.ts

@@ -11,7 +11,7 @@ export async function initLogin() {
   f.append("loginName", loginName);
   f.append("password", password);
 
-  return fetch("/login", { body: f, method: "POST" })
+  return fetch("/api/login", { body: f, method: "POST" })
     .then(async (r) => {
       const body = await r.text();
       const exams = body.match(
@@ -24,7 +24,7 @@ export async function initLogin() {
       f.append("examId", examId);
       markerId && f.append("markerId", markerId || "");
       if (!isAdmin) {
-        const res = await fetch("/mark/subject/query", {
+        const res = await fetch("/api/mark/subject/query", {
           body: f,
           method: "POST",
         });
@@ -32,7 +32,9 @@ export async function initLogin() {
       }
       return new Promise((resove) => {
         setTimeout(() => {
-          const url = isAdmin ? "/admin/exam/select" : "/mark/subject-select";
+          const url = isAdmin
+            ? "/api/admin/exam/select"
+            : "/api/mark/subject-select";
           resove(fetch(url, { body: f, method: "POST" }));
         }, 1000);
       });

+ 7 - 5
src/features/admin/confirmPaper/ConfirmPaper.vue

@@ -303,13 +303,13 @@ async function getSetting() {
     for (const v of query) {
       form.append(v.name, v.value + "");
     }
-    res = await httpApp.post("/admin/exam/check/answer/getSetting", form);
+    res = await httpApp.post("/api/admin/exam/check/answer/getSetting", form);
   } else {
     const form = new FormData();
     form.append("checkType", route.query.checkType as string);
     form.append("subjectCode", route.query.subjectCode as string);
     form.append("examSite", route.query.examSite as string);
-    res = await httpApp.post(`/admin/exam/check/student/getSetting`, form);
+    res = await httpApp.post(`/api/admin/exam/check/student/getSetting`, form);
   }
 
   setting.fileServer = res.data.fileServer;
@@ -330,7 +330,9 @@ async function getPreviousStudent() {
 
 async function getStudent(studentId: number) {
   const stu: StudentInfo = await (
-    await httpApp.get(`/admin/exam/check/answer/info?studentId=${studentId}`)
+    await httpApp.get(
+      `/api/admin/exam/check/answer/info?studentId=${studentId}`
+    )
   ).data;
   stu?.sheetUrls.forEach((v, i, a) => (a[i] = setting.fileServer + v));
   currentStudentId = stu.id;
@@ -412,8 +414,8 @@ async function saveStudentAnswer() {
 
   const url = extra
     ? // 数据检查
-      "/admin/exam/check/answer/save"
-    : `/admin/exam/check/student/save`;
+      "/api/admin/exam/check/answer/save"
+    : `/api/admin/exam/check/student/save`;
   const res = await httpApp
     .post(url, form)
     .catch(() => message.error("保存失败-接口调用失败"));

+ 1 - 1
src/router/index.ts

@@ -77,7 +77,7 @@ const routes = [
 // keep it simple for now.
 const router = createRouter({
   // 4. Provide the history implementation to use. We are using the hash history for simplicity here.
-  history: createWebHistory("stmms"),
+  history: createWebHistory("mark"),
   routes, // short for `routes: routes`
 });
 

+ 1 - 1
src/store/store.ts

@@ -83,7 +83,7 @@ const useMarkStore = defineStore("mark", {
     /** 评卷端的轨迹模式显示轨迹 && 管理后台都显示轨迹 */
     shouldShowTrack(): boolean {
       // FIXME: 不是最优雅的方式来判断是否是阅卷端
-      const isWebMark = location.pathname === "/web/mark";
+      const isWebMark = location.pathname === "/mark/mark";
       return !isWebMark || this.isTrackMode;
     },
     /* 是否是扫描阅卷 */

+ 16 - 14
vite.config.ts

@@ -23,6 +23,7 @@ function mockDevLogin(): Plugin {
 
 // https://vitejs.dev/config/
 export default defineConfig({
+  base: "./",
   plugins: [
     vue({
       reactivityTransform: true,
@@ -34,28 +35,29 @@ export default defineConfig({
     mockDevLogin(),
   ],
   server: {
-    port: 9000,
+    port: 8059,
     // strictPort: true,
     fs: {
       strict: true,
       allow: ["./"],
     },
     proxy: {
-      "/login": {
-        target: SERVER_URL,
-        changeOrigin: true,
-      },
-      "/mark": {
-        target: SERVER_URL,
-        changeOrigin: true,
-      },
-      "/admin": {
-        target: SERVER_URL,
-        changeOrigin: true,
-      },
-      "/api": {
+      // "/login": {
+      //   target: SERVER_URL,
+      //   changeOrigin: true,
+      // },
+      // "/mark": {
+      //   target: SERVER_URL,
+      //   changeOrigin: true,
+      // },
+      // "/admin": {
+      //   target: SERVER_URL,
+      //   changeOrigin: true,
+      // },
+      "/api/": {
         target: SERVER_URL,
         changeOrigin: true,
+        rewrite: (path) => path.replace(/^\/api/, ""),
       },
     },
   },