Ver Fonte

fix: 主观题进度问题

zhangjie há 2 meses atrás
pai
commit
8835ce7d34

+ 1 - 1
src/features/check-objective/composables/useStudent.ts

@@ -95,7 +95,7 @@ export default function useStudent() {
   }
   }
 
 
   async function updateCurStudent() {
   async function updateCurStudent() {
-    await getStudent(checkObjectiveStore.studentIds[currentIndex]);
+    await getStudent(checkObjectiveStore.studentIds[currentIndex.value]);
   }
   }
 
 
   return {
   return {

+ 10 - 5
src/features/check-subjective/CheckSubjective.vue

@@ -169,13 +169,18 @@ vls.set("mark", {
 
 
 const markStore = useMarkStore();
 const markStore = useMarkStore();
 useTaskWatch();
 useTaskWatch();
-const { getNextStudent, getPreviousStudent, studentIds, isMultiStudent } =
-  useTask(sids);
+const {
+  getNextStudent,
+  getPreviousStudent,
+  studentIds,
+  isMultiStudent,
+  currentIndex,
+} = useTask(sids);
 
 
 const { updateSetting } = useSetting();
 const { updateSetting } = useSetting();
 
 
 onMounted(async () => {
 onMounted(async () => {
-  if (studentIds.length === 0) {
+  if (studentIds.value.length === 0) {
     void message.info("没有需要处理的考生,请返回。");
     void message.info("没有需要处理的考生,请返回。");
     return;
     return;
   }
   }
@@ -327,7 +332,7 @@ const saveTaskToServer = async () => {
     return;
     return;
   }
   }
 
 
-  if (!isMultiStudent) {
+  if (!isMultiStudent.value) {
     void message.success({
     void message.success({
       content: "保存成功,页面将在3秒钟之后关闭",
       content: "保存成功,页面将在3秒钟之后关闭",
       duration: 2,
       duration: 2,
@@ -362,7 +367,7 @@ const checkTask = async () => {
     return;
     return;
   }
   }
 
 
-  if (!isMultiStudent) {
+  if (!isMultiStudent.value) {
     void message.success({
     void message.success({
       content: "保存成功,页面将在3秒钟之后关闭",
       content: "保存成功,页面将在3秒钟之后关闭",
       key: mkey,
       key: mkey,

+ 16 - 11
src/features/check-subjective/composables/useTask.ts

@@ -1,31 +1,36 @@
 import { message } from "ant-design-vue";
 import { message } from "ant-design-vue";
 import { studentSubjectiveConfirmData } from "@/api/checkPage";
 import { studentSubjectiveConfirmData } from "@/api/checkPage";
 import { useMarkStore } from "@/store";
 import { useMarkStore } from "@/store";
+import { computed, ref } from "vue";
 
 
 export default function useTask(ids: string[]) {
 export default function useTask(ids: string[]) {
   const markStore = useMarkStore();
   const markStore = useMarkStore();
-  const studentIds = $ref(ids);
+  const studentIds = ref(ids);
 
 
-  let currentStudentId = $ref("");
-  const currentIndex = $computed(() => studentIds.indexOf(currentStudentId));
-  const isFirst = $computed(() => currentIndex === 0);
-  const isLast = $computed(() => currentIndex === studentIds.length - 1);
-  const isMultiStudent = $computed(() => studentIds.length > 1);
+  const currentStudentId = ref("");
+  const currentIndex = computed(() =>
+    studentIds.value.indexOf(currentStudentId.value)
+  );
+  const isFirst = computed(() => currentIndex.value === 0);
+  const isLast = computed(
+    () => currentIndex.value === studentIds.value.length - 1
+  );
+  const isMultiStudent = computed(() => studentIds.value.length > 1);
 
 
   async function getNextStudent() {
   async function getNextStudent() {
-    if (isLast) {
+    if (isLast.value) {
       void message.warning("已经是最后一份!");
       void message.warning("已经是最后一份!");
       return;
       return;
     }
     }
-    await updateTask(studentIds[currentIndex + 1]);
+    await updateTask(studentIds.value[currentIndex.value + 1]);
   }
   }
 
 
   async function getPreviousStudent() {
   async function getPreviousStudent() {
-    if (isFirst) {
+    if (isFirst.value) {
       void message.warning("已经是第一份!");
       void message.warning("已经是第一份!");
       return;
       return;
     }
     }
-    await updateTask(studentIds[currentIndex - 1]);
+    await updateTask(studentIds.value[currentIndex.value - 1]);
   }
   }
 
 
   async function updateTask(studentId) {
   async function updateTask(studentId) {
@@ -39,7 +44,7 @@ export default function useTask(ids: string[]) {
     newTask.sheetUrls = newTask.sheetUrls || [];
     newTask.sheetUrls = newTask.sheetUrls || [];
     newTask.sliceUrls = [...newTask.sheetUrls];
     newTask.sliceUrls = [...newTask.sheetUrls];
     markStore.currentTask = newTask;
     markStore.currentTask = newTask;
-    currentStudentId = studentId;
+    currentStudentId.value = studentId;
   }
   }
 
 
   return {
   return {