瀏覽代碼

科组长查询标记

zhangjie 3 年之前
父節點
當前提交
d626183ad1

+ 8 - 0
src/api.js

@@ -223,6 +223,10 @@ export const userGroupList = ({ workId, subject }) => {
   // workId=&subject=&stage=  stage非必填
   // workId=&subject=&stage=  stage非必填
   return $get("/api/admin/users/list_group", { workId, subject });
   return $get("/api/admin/users/list_group", { workId, subject });
 };
 };
+export const leaderMarkUserList = datas => {
+  // workId=&subject=&stage=&markerId=
+  return $get("/api/admin/users/list_group_users", datas);
+};
 // grading-progress
 // grading-progress
 export const gradingProgressDetail = ({ workId, subject }) => {
 export const gradingProgressDetail = ({ workId, subject }) => {
   return $get("/api/markers/stat/progress", { workId, subject });
   return $get("/api/markers/stat/progress", { workId, subject });
@@ -331,6 +335,10 @@ export const markerTaskList = datas => {
   // ?stage=LEVEL&markerId=49&size=6&page=0&sort=updatedOn,desc&questionId=73&isSample=false&level=C
   // ?stage=LEVEL&markerId=49&size=6&page=0&sort=updatedOn,desc&questionId=73&isSample=false&level=C
   return $get("/api/marktasks", datas);
   return $get("/api/marktasks", datas);
 };
 };
+export const markTaskPaperList = datas => {
+  // ?workId=&stage=&subject=&markerId=
+  return $get("/api/marktasks/list_mark_task", datas);
+};
 // grading or scoring
 // grading or scoring
 export const paperSelectLevelOrScore = (taskId, result, stage) => {
 export const paperSelectLevelOrScore = (taskId, result, stage) => {
   // stage => LEVEL or SCORE
   // stage => LEVEL or SCORE

+ 48 - 11
src/modules/grading/leader/LeaderGrading.vue

@@ -12,7 +12,7 @@
       @to-standard="toStandard"
       @to-standard="toStandard"
       @to-statistics="toStatistics"
       @to-statistics="toStatistics"
       @on-code-search="serachPaperByCode"
       @on-code-search="serachPaperByCode"
-      @on-mark-search="serachPaperByCode"
+      @on-mark-search="serachMarkPaper"
     ></marker-header>
     ></marker-header>
 
 
     <div
     <div
@@ -164,6 +164,7 @@ import ModifyLeaderGrading from "../components/ModifyLeaderGrading";
 
 
 import {
 import {
   paperList,
   paperList,
+  markTaskPaperList,
   markLeaderLevelStatData,
   markLeaderLevelStatData,
   workLevelList,
   workLevelList,
   taskSnSearch,
   taskSnSearch,
@@ -203,6 +204,7 @@ export default {
           arbi: true
           arbi: true
         }
         }
       },
       },
+      speFilter: null,
       workId: this.$route.params.workId,
       workId: this.$route.params.workId,
       subjectId: this.$route.params.subjectId,
       subjectId: this.$route.params.subjectId,
       levels: [],
       levels: [],
@@ -278,15 +280,21 @@ export default {
     },
     },
     async getList() {
     async getList() {
       this.multipleGradingList = [];
       this.multipleGradingList = [];
-      const datas = {
-        ...this.filter,
-        ...this.typeFilter[this.curStep.type],
-        page: this.page.current - 1,
-        size: this.page.size
+
+      let data = {
+        data: [],
+        totalCount: 0,
+        pageCount: 0
       };
       };
-      if (this.curStep.type === "done") datas.level = this.curStep.name;
+      if (this.speFilter) {
+        const { type, params } = this.speFilter;
+        if (type === "mark") {
+          data = await this.getMarkList(params);
+        }
+      } else {
+        data = await this.getCommonList();
+      }
 
 
-      const data = await paperList(datas);
       this.papers = data.data.map(paper => {
       this.papers = data.data.map(paper => {
         paper.key = this.$randomCode();
         paper.key = this.$randomCode();
         paper.title = `NO.${paper.sn}`;
         paper.title = `NO.${paper.sn}`;
@@ -299,6 +307,31 @@ export default {
         totalPage: data.pageCount
         totalPage: data.pageCount
       });
       });
     },
     },
+    async getCommonList() {
+      const datas = {
+        ...this.filter,
+        ...this.typeFilter[this.curStep.type],
+        page: this.page.current - 1,
+        size: this.page.size
+      };
+      if (this.curStep.type === "done") datas.level = this.curStep.name;
+
+      const data = await paperList(datas);
+      return data;
+    },
+    async getMarkList(params) {
+      const datas = {
+        ...params,
+        workId: this.workId,
+        subject: this.subject,
+        stage: "LEVEL",
+        page: this.page.current - 1,
+        size: this.page.size
+      };
+
+      const data = await markTaskPaperList(datas);
+      return data;
+    },
     async toPage(page) {
     async toPage(page) {
       this.setPage({
       this.setPage({
         current: page
         current: page
@@ -377,6 +410,7 @@ export default {
       this.selectPaper(this.curPaperIndex);
       this.selectPaper(this.curPaperIndex);
     },
     },
     async stepChange(step) {
     async stepChange(step) {
+      this.speFilter = null;
       this.setCurStep(step);
       this.setCurStep(step);
       this.setPage({ current: 1 });
       this.setPage({ current: 1 });
       this.isFullscreenMarking = false;
       this.isFullscreenMarking = false;
@@ -389,6 +423,7 @@ export default {
       }
       }
     },
     },
     async areaChange(curArea) {
     async areaChange(curArea) {
+      this.speFilter = null;
       this.setCurArea(curArea);
       this.setCurArea(curArea);
       this.filter.questionId = curArea.id;
       this.filter.questionId = curArea.id;
       await this.getStepLevels();
       await this.getStepLevels();
@@ -494,6 +529,7 @@ export default {
       this.selectPaper(this.curPaperIndex);
       this.selectPaper(this.curPaperIndex);
     },
     },
     async serachPaperByCode(params) {
     async serachPaperByCode(params) {
+      this.speFilter = null;
       const data = await taskSnSearch(
       const data = await taskSnSearch(
         params.codeType,
         params.codeType,
         params.code,
         params.code,
@@ -508,9 +544,10 @@ export default {
       this.setPage({ current: 1, total: 1, totalPage: 1 });
       this.setPage({ current: 1, total: 1, totalPage: 1 });
       this.selectPaper(0);
       this.selectPaper(0);
     },
     },
-    async serachMarkPaper(params) {
-      console.log(params);
-      // TODO:
+    serachMarkPaper(data) {
+      console.log(data);
+      this.speFilter = { type: data.type, params: data.params };
+      this.toPage(1);
     },
     },
     async leaderSelectLevel(levelInfo, markers) {
     async leaderSelectLevel(levelInfo, markers) {
       // 唯一权限时,直接操作
       // 唯一权限时,直接操作

+ 18 - 5
src/modules/grading/marker/MarkerHeader.vue

@@ -138,9 +138,9 @@
               >
               >
                 <Option
                 <Option
                   v-for="item in markers"
                   v-for="item in markers"
-                  :key="item.key"
-                  :value="item.key"
-                  :label="item.val"
+                  :key="item.id"
+                  :value="item.id"
+                  :label="item.name"
                 ></Option>
                 ></Option>
               </Select>
               </Select>
               <Button
               <Button
@@ -264,7 +264,7 @@
 
 
 <script>
 <script>
 import { mapState, mapMutations } from "vuex";
 import { mapState, mapMutations } from "vuex";
-import { areaList, logout } from "@/api";
+import { areaList, leaderMarkUserList, logout } from "@/api";
 import ResetPwd from "@/modules/login/ResetPwd";
 import ResetPwd from "@/modules/login/ResetPwd";
 import { CODE_TYPE } from "@/constants/enumerate";
 import { CODE_TYPE } from "@/constants/enumerate";
 
 
@@ -330,6 +330,7 @@ export default {
     this.filter.workId = subjectId[0];
     this.filter.workId = subjectId[0];
     this.filter.subject = subjectId[1];
     this.filter.subject = subjectId[1];
     this.getAreaList();
     this.getAreaList();
+    this.getLeaderMarkerList();
     document.addEventListener("keydown", this.keyEvent);
     document.addEventListener("keydown", this.keyEvent);
 
 
     this.codeTypes = Object.entries(CODE_TYPE)
     this.codeTypes = Object.entries(CODE_TYPE)
@@ -358,6 +359,15 @@ export default {
         this.$emit("area-change", areas[0]);
         this.$emit("area-change", areas[0]);
       }
       }
     },
     },
+    async getLeaderMarkerList() {
+      const markerId = this.$ls.get("user", { id: "" }).id;
+      const data = await leaderMarkUserList({
+        ...this.filter,
+        stage: this.curSubject.stage,
+        markerId
+      });
+      this.markers = data.data || [];
+    },
     keyEvent(e) {
     keyEvent(e) {
       if (!e.altKey && !e.shiftKey && !e.repeat) {
       if (!e.altKey && !e.shiftKey && !e.repeat) {
         // 左右键切换分页
         // 左右键切换分页
@@ -452,7 +462,10 @@ export default {
         this.$Message.error("请选择评卷员!");
         this.$Message.error("请选择评卷员!");
         return;
         return;
       }
       }
-      this.$emit("on-mark-search", this.markFilter);
+      this.$emit("on-mark-search", {
+        type: "mark",
+        params: this.markFilter
+      });
     },
     },
     userClick(name) {
     userClick(name) {
       if (!name) return;
       if (!name) return;

+ 3 - 3
src/modules/mark/components/MarkAction.vue

@@ -274,9 +274,9 @@ export default {
           shift: ["search", "gradeChangeSearch", "gradeChange"]
           shift: ["search", "gradeChangeSearch", "gradeChange"]
         },
         },
         MARK_LEADER: {
         MARK_LEADER: {
-          undo: ["search", "gradeList", "gradeInfo", "markInfo"],
-          done: ["search", "gradeList", "markHis", "gradeInfo", "markInfo"],
-          shift: ["search", "gradeList", "gradeChange"]
+          undo: ["gradeList", "gradeInfo", "markInfo"],
+          done: ["gradeList", "markHis", "gradeInfo", "markInfo"],
+          shift: ["gradeList", "gradeChange"]
         },
         },
         MARKER: {
         MARKER: {
           done: ["levelList", "gradeInfo", "markInfo"],
           done: ["levelList", "gradeInfo", "markInfo"],

+ 68 - 25
src/modules/mark/leader/LeaderMarking.vue

@@ -9,6 +9,8 @@
       @to-progress="toProgress"
       @to-progress="toProgress"
       @to-history="toHistory"
       @to-history="toHistory"
       @to-statistics="toStatistics"
       @to-statistics="toStatistics"
+      @on-code-search="serachPaperByCode"
+      @on-mark-search="serachMarkPaper"
     ></marker-header>
     ></marker-header>
 
 
     <div
     <div
@@ -23,8 +25,6 @@
         :levels="levels"
         :levels="levels"
         :key="curPaper.key"
         :key="curPaper.key"
         @on-leader-level="leaderSelectLevel"
         @on-leader-level="leaderSelectLevel"
-        @on-code-search="serachPaperByCode"
-        @on-grade-change-search="searchGradeChangeList"
         v-if="curPaper.id"
         v-if="curPaper.id"
         ref="GradeAction"
         ref="GradeAction"
       ></mark-action>
       ></mark-action>
@@ -105,7 +105,8 @@ import {
   workLevelList,
   workLevelList,
   taskSnSearch,
   taskSnSearch,
   markStepChangeLevel,
   markStepChangeLevel,
-  getParamsSet
+  getParamsSet,
+  markTaskPaperList
 } from "@/api";
 } from "@/api";
 
 
 export default {
 export default {
@@ -125,6 +126,7 @@ export default {
         questionId: "",
         questionId: "",
         sort: "score,desc"
         sort: "score,desc"
       },
       },
+      speFilter: null,
       stage: "SCORE",
       stage: "SCORE",
       workId: this.$route.params.workId,
       workId: this.$route.params.workId,
       subjectId: this.$route.params.subjectId,
       subjectId: this.$route.params.subjectId,
@@ -182,28 +184,24 @@ export default {
       this.setCurSubject(curSubject || {});
       this.setCurSubject(curSubject || {});
     },
     },
     async getList() {
     async getList() {
-      let data = [];
-      if (this.curStep.type === "shift") {
-        const datas = {
-          workId: this.workId,
-          subject: this.subject,
-          questionId: this.filter.questionId,
-          status: this.applyChangeLevelStatus,
-          page: this.page.current - 1,
-          size: this.page.size
-        };
-        data = await changeLevelPaperList(datas);
+      let data = {
+        data: [],
+        totalCount: 0,
+        pageCount: 0
+      };
+      if (this.speFilter) {
+        const { type, params } = this.speFilter;
+        if (type === "mark") {
+          data = await this.getMarkList(params);
+        }
       } else {
       } else {
-        const datas = {
-          ...this.filter,
-          isScore: true,
-          page: this.page.current - 1,
-          size: this.page.size
-        };
-        if (this.curStep.type === "done") datas.level = this.curStep.name;
-
-        data = await paperList(datas);
+        if (this.curStep.type === "shift") {
+          data = await this.getChangeLevelList();
+        } else {
+          data = await this.getCommonList();
+        }
       }
       }
+
       this.papers = data.data.map(paper => {
       this.papers = data.data.map(paper => {
         paper.key = this.$randomCode();
         paper.key = this.$randomCode();
         paper.title = this.IS_ADMIN ? paper.examNumber : `NO.${paper.sn}`;
         paper.title = this.IS_ADMIN ? paper.examNumber : `NO.${paper.sn}`;
@@ -215,6 +213,43 @@ export default {
         totalPage: data.pageCount
         totalPage: data.pageCount
       });
       });
     },
     },
+    async getCommonList() {
+      const datas = {
+        ...this.filter,
+        isScore: true,
+        page: this.page.current - 1,
+        size: this.page.size
+      };
+      if (this.curStep.type === "done") datas.level = this.curStep.name;
+
+      const data = await paperList(datas);
+      return data;
+    },
+    async getChangeLevelList() {
+      const datas = {
+        workId: this.workId,
+        subject: this.subject,
+        questionId: this.filter.questionId,
+        status: this.applyChangeLevelStatus,
+        page: this.page.current - 1,
+        size: this.page.size
+      };
+      const data = await changeLevelPaperList(datas);
+      return data;
+    },
+    async getMarkList(params) {
+      const datas = {
+        ...params,
+        workId: this.workId,
+        subject: this.subject,
+        stage: "SCORE",
+        page: this.page.current - 1,
+        size: this.page.size
+      };
+
+      const data = await markTaskPaperList(datas);
+      return data;
+    },
     async toPage(page) {
     async toPage(page) {
       this.setPage({
       this.setPage({
         current: page
         current: page
@@ -290,6 +325,7 @@ export default {
       this.selectPaper(this.curPaperIndex);
       this.selectPaper(this.curPaperIndex);
     },
     },
     async stepChange(step) {
     async stepChange(step) {
+      this.speFilter = null;
       this.applyChangeLevelStatus = 1;
       this.applyChangeLevelStatus = 1;
       this.setCurStep(step);
       this.setCurStep(step);
       this.setPage({ current: 1 });
       this.setPage({ current: 1 });
@@ -303,6 +339,7 @@ export default {
       }
       }
     },
     },
     async areaChange(curArea) {
     async areaChange(curArea) {
+      this.speFilter = null;
       this.setCurArea(curArea);
       this.setCurArea(curArea);
       this.filter.questionId = curArea.id;
       this.filter.questionId = curArea.id;
       await this.getStepLevels();
       await this.getStepLevels();
@@ -368,6 +405,7 @@ export default {
       this.selectPaper(this.curPaperIndex);
       this.selectPaper(this.curPaperIndex);
     },
     },
     async serachPaperByCode(params) {
     async serachPaperByCode(params) {
+      this.speFilter = null;
       const data = await taskSnSearch(
       const data = await taskSnSearch(
         params.codeType,
         params.codeType,
         params.code,
         params.code,
@@ -382,8 +420,13 @@ export default {
       this.setPage({ current: 1, total: 1, totalPage: 1 });
       this.setPage({ current: 1, total: 1, totalPage: 1 });
       this.selectPaper(0);
       this.selectPaper(0);
     },
     },
-    searchGradeChangeList(applyChangeLevelStatus) {
-      this.applyChangeLevelStatus = applyChangeLevelStatus;
+    // searchGradeChangeList(applyChangeLevelStatus) {
+    //   this.applyChangeLevelStatus = applyChangeLevelStatus;
+    //   this.toPage(1);
+    // },
+    serachMarkPaper(data) {
+      console.log(data);
+      this.speFilter = { type: data.type, params: data.params };
       this.toPage(1);
       this.toPage(1);
     },
     },
     leaderSelectLevel(levelInfo) {
     leaderSelectLevel(levelInfo) {