浏览代码

命题申请修改

zhangjie 2 年之前
父节点
当前提交
be50d35bdf

+ 1 - 1
src/modules/admin/views/Admin.vue

@@ -55,7 +55,7 @@
     </div>
 
     <div class="home-body">
-      <div class="home-main">
+      <div class="home-body-content">
         <div class="home-breadcrumb" v-if="breadcrumbs.length">
           <span class="breadcrumb-tips">
             <i class="icon icon-location"></i>

+ 5 - 0
src/modules/analysis/views/DataInitManage.vue

@@ -59,6 +59,11 @@
           label="试卷编码"
           min-width="160"
         ></el-table-column>
+        <el-table-column
+          prop="paperType"
+          label="试卷类型"
+          width="100"
+        ></el-table-column>
         <el-table-column prop="status" label="状态" width="100">
         </el-table-column>
         <el-table-column

+ 6 - 0
src/modules/exam/api.js

@@ -155,6 +155,12 @@ export const teacherCancelTaskApply = examTaskId => {
 export const switchCardCreateMethod = examTaskId => {
   return $postParam("/api/admin/exam/task/switch_card", { examTaskId });
 };
+export const uploadOrFindExamTaskStudent = datas => {
+  return $postParam(
+    "/api/admin/exam/task/find_exam_task_student_object",
+    datas
+  );
+};
 
 // task-review-manage
 export const taskReviewUnauditedListPage = datas => {

+ 1 - 2
src/modules/exam/components/createExamAndPrintTask/CreateExamAndPrintTask.vue

@@ -105,6 +105,7 @@ const initExamTask = {
   semesterId: "",
   examId: "",
   examModel: "",
+  courseId: "",
   courseCode: "",
   courseName: "",
   paperNumber: "",
@@ -117,8 +118,6 @@ const initExamTask = {
 const initExamTaskDetail = {
   operateType: "STAGE",
   paperType: "A",
-  cardId: "",
-  cardType: "",
   paperAttachmentIds: "[]",
   paperConfirmAttachmentIds: "[]",
   drawCount: 2,

+ 48 - 40
src/modules/exam/components/createExamAndPrintTask/InfoExamTask.vue

@@ -29,7 +29,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item prop="teachingRoomId" label="机构:">
+            <el-form-item prop="teachingRoomId" label="部门:">
               <teaching-room-select
                 v-model="examTask.teachingRoomId"
                 class="width-full"
@@ -95,14 +95,12 @@
           <colgroup>
             <col width="100" />
             <col width="280" />
-            <col width="140" />
             <col />
             <col width="60" />
           </colgroup>
           <tr>
             <th>试卷类型</th>
             <th>试卷文件</th>
-            <th>答题卡创建方式</th>
             <th>答题卡</th>
             <th>操作</th>
           </tr>
@@ -127,17 +125,14 @@
                 }}
               </el-button>
             </td>
-            <td :rowspan="paperAttachments.length" v-if="index === 0">
-              {{ createCardTypeName }}
-            </td>
-            <td :rowspan="paperAttachments.length" v-if="index === 0">
+            <td>
               <el-select
                 class="mr-2"
-                v-model="examTaskDetail.cardId"
+                v-model="attachment.cardId"
                 placeholder="请选择"
                 style="width: 200px"
                 filterable
-                @change="cardChange"
+                @change="cardChange(attachment)"
               >
                 <el-option
                   v-for="item in cards"
@@ -150,25 +145,24 @@
               <el-button
                 class="btn-primary"
                 type="text"
-                :disabled="!examTaskDetail.cardId"
-                @click="toViewCard"
+                :disabled="!attachment.cardId"
+                @click="toViewCard(attachment)"
                 >预览</el-button
               >
               <el-button
                 class="btn-primary"
                 type="text"
                 :disabled="
-                  !examTaskDetail.cardId ||
-                    examTaskDetail.cardType === 'GENERIC'
+                  !attachment.cardId || attachment.cardType === 'GENERIC'
                 "
-                @click="toEditCard"
+                @click="toEditCard(attachment)"
                 >编辑</el-button
               >
               <el-button
                 class="btn-primary"
                 type="text"
                 :disabled="!canCreateCard"
-                @click="toCreateCard"
+                @click="toCreateCard(attachment)"
                 >新建</el-button
               >
             </td>
@@ -403,22 +397,19 @@ export default {
         : [];
 
       this.getCourses();
-      this.getCardList(true);
+      this.getCardList();
 
       this.$nextTick(() => {
         this.$refs.examTaskComp.clearValidate();
       });
     },
-    async getCardList(selectDefaultCard = false) {
+    async getCardList() {
       if (!this.examTask.courseCode || !this.examTask.examId) return;
       const data = await cardForSelectList({
         courseCode: this.examTask.courseCode,
         examId: this.examTask.examId
       });
       this.cards = data || [];
-      if (this.cards.length && selectDefaultCard) {
-        this.examTaskDetail.cardId = data[0].id;
-      }
     },
     async getCourses() {
       if (!this.examTask.teachingRoomId) return;
@@ -433,7 +424,10 @@ export default {
     examChange(val) {
       console.log(val);
       this.examTask.examModel = val.examModel;
-      this.examTaskDetail.cardId = "";
+      this.paperAttachments.forEach(item => {
+        item.cardId = "";
+        item.cardType = "";
+      });
       this.cards = [];
       this.getCardList();
     },
@@ -441,7 +435,10 @@ export default {
       this.examTask.courseCode = "";
       this.examTask.courseName = "";
       this.courses = [];
-      this.examTaskDetail.cardId = "";
+      this.paperAttachments.forEach(item => {
+        item.cardId = "";
+        item.cardType = "";
+      });
       this.cards = [];
       this.getCourses();
     },
@@ -449,11 +446,15 @@ export default {
       if (val) {
         const course = this.courses.find(item => item.code === val);
         this.examTask.courseName = course.name;
+        this.examTask.courseId = course.id;
       } else {
         this.examTask.courseName = "";
+        this.examTask.courseId = "";
       }
-
-      this.examTaskDetail.cardId = "";
+      this.paperAttachments.forEach(item => {
+        item.cardId = "";
+        item.cardType = "";
+      });
       this.cards = [];
       this.getCardList();
       this.updateTaskInfo({ infoExamTask: this.examTask });
@@ -478,19 +479,18 @@ export default {
         });
       }
     },
-    cardChange() {
-      const card = this.cards.find(
-        item => item.id === this.examTaskDetail.cardId
-      );
+    cardChange(attachment) {
+      const card = this.cards.find(item => item.id === attachment.cardId);
       if (card) {
-        this.examTaskDetail.cardType = card.type;
+        attachment.cardType = card.type;
       }
     },
-    toCreateCard() {
+    toCreateCard(attachment) {
       if (!this.examTask.cardRuleId) {
         this.$message.error("题卡规则缺失!");
         return;
       }
+      this.curAttachment = { ...attachment };
       this.$ls.set("prepareTcPCard", {
         courseCode: this.examTask.courseCode,
         courseName: this.examTask.courseName,
@@ -502,9 +502,10 @@ export default {
       });
       this.$refs.ModifyCard.open();
     },
-    toEditCard() {
+    toEditCard(attachment) {
+      this.curAttachment = { ...attachment };
       this.$ls.set("prepareTcPCard", {
-        id: this.examTaskDetail.cardId,
+        id: attachment.cardId,
         courseCode: this.examTask.courseCode,
         courseName: this.examTask.courseName,
         schoolName: this.$ls.get("schoolName"),
@@ -515,12 +516,12 @@ export default {
       });
       this.$refs.ModifyCard.open();
     },
-    toViewCard() {
+    toViewCard(attachment) {
       window.open(
         this.getRouterPath({
           name: "CardPreview",
           params: {
-            cardId: this.examTaskDetail.cardId,
+            cardId: attachment.cardId,
             viewType: "view"
           }
         })
@@ -529,12 +530,16 @@ export default {
     async cardModified(cardId) {
       if (!cardId) return;
       let card = this.cards.find(item => item.id === cardId);
-      if (card) {
-        this.examTaskDetail.cardId = card.id;
-      } else {
+      if (!card) {
         await this.getCardList();
         card = this.cards.find(item => item.id === cardId);
-        this.examTaskDetail.cardId = card.id;
+      }
+
+      const aind = this.paperAttachments.findIndex(
+        item => item.name === this.curAttachment.name
+      );
+      if (aind !== -1) {
+        this.paperAttachments[aind].cardId = card.id;
       }
     },
     async checkData() {
@@ -554,8 +559,9 @@ export default {
       //   return;
       // }
 
-      if (!this.examTaskDetail.cardId) {
-        this.$message.error("请选择题卡!");
+      const cardValid = !this.paperAttachments.some(item => !item.cardId);
+      if (!cardValid) {
+        this.$message.error("有试卷类型未选择题卡!");
         return Promise.reject();
       }
 
@@ -578,6 +584,8 @@ export default {
       const newAttachment = {
         name: this.abc[this.paperAttachments.length],
         attachmentId: "",
+        cardId: "",
+        cardType: "",
         filename: "",
         pages: 0
       };

+ 81 - 108
src/modules/exam/components/createExamAndPrintTask/InfoPrintTask.vue

@@ -80,16 +80,19 @@
     </div>
     <div v-else class="part-box">
       <div class="box-justify mb-2">
-        <p>
-          共{{ packageInfos.packageCount }}个卷袋,{{
-            packageInfos.studentCount
-          }}个考生,共印试卷{{ packageInfos.paperCount }}份(正式{{
-            packageInfos.paperReleaseCount
-          }}份,备用{{ packageInfos.paperBackupCount }}份)
-        </p>
-        <el-button type="primary" @click="toAdd" :disabled="cannotAdd"
-          >新增考试对象</el-button
-        >
+        <div>
+          <p>
+            每个卷袋包含一个考场全部文件(试卷、题卡、卷袋贴、签到表等文件)
+          </p>
+          <p>
+            共{{ packageInfos.packageCount }}个卷袋,{{
+              packageInfos.studentCount
+            }}个考生,共印试卷{{ packageInfos.paperCount }}份(正式{{
+              packageInfos.paperReleaseCount
+            }}份,备用{{ packageInfos.paperBackupCount }}份)
+          </p>
+        </div>
+        <el-button type="primary" @click="toAdd">新增考试对象</el-button>
       </div>
       <el-table ref="TableList" :data="tableData" border>
         <el-table-column type="index" width="50" label="卷袋序号">
@@ -167,33 +170,37 @@
               @click="toDelete(scope.row)"
               >取消</el-button
             >
+            <el-button
+              class="btn-primary"
+              type="text"
+              @click="toViewStudent(scope.row)"
+              >查看考生</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
     </div>
 
-    <!-- ModifyPrintTask -->
-    <modify-print-task
-      ref="ModifyPrintTask"
-      :instance="curRow"
-      :print-houses="printHouses"
-      :class-list="unusedClassList"
-      :extend-fields="extendFields"
-      @modified="modified"
-    ></modify-print-task>
+    <!-- ModifyExamStudent -->
+    <modify-exam-student
+      ref="ModifyExamStudent"
+      :selected-ids="selectedStudentIds"
+      :course-id="infoExamTask.courseId"
+      @modified="examStudentModified"
+    ></modify-exam-student>
   </div>
 </template>
 
 <script>
 import { calcSum, getTimeDatestamp } from "@/plugins/utils";
 import { examRuleDetail } from "../../../base/api";
-import { listTaskPrintHouse, listTaskApplyClass } from "../../api";
-import ModifyPrintTask from "./ModifyPrintTask";
+import { listTaskPrintHouse } from "../../api";
+import ModifyExamStudent from "./ModifyExamStudent";
 import { mapState, mapMutations } from "vuex";
 
 export default {
   name: "info-print-task",
-  components: { ModifyPrintTask },
+  components: { ModifyExamStudent },
   data() {
     return {
       modalForm: {
@@ -207,9 +214,6 @@ export default {
       },
       tableData: [],
       curRow: {},
-      classList: [],
-      validClassList: [],
-      unusedClassList: [],
       printHouses: [],
       extendFields: [],
       packageInfos: {
@@ -219,6 +223,7 @@ export default {
         paperReleaseCount: 0,
         paperBackupCount: 0
       },
+      selectedStudentIds: [],
       // date-picker
       curCreateTime: [],
       createDate: "",
@@ -232,9 +237,6 @@ export default {
       "infoPrintTask",
       "infoExamPrintPlan"
     ]),
-    cannotAdd() {
-      return !this.unusedClassList.length;
-    },
     IS_MODEL2() {
       return this.infoExamTask.examModel === "MODEL2";
     }
@@ -258,7 +260,7 @@ export default {
   },
   methods: {
     ...mapMutations("exam", ["updateTaskInfo"]),
-    async initData() {
+    initData() {
       if (this.IS_MODEL2) return;
 
       this.modalForm = Object.assign(this.modalForm, {
@@ -267,8 +269,6 @@ export default {
         courseCode: this.infoExamTask.courseCode
       });
 
-      await this.getClassList();
-
       const { examStartTime, examEndTime } = this.infoPrintTask;
       if (examStartTime && examEndTime) {
         this.createTime = [examStartTime, examEndTime];
@@ -278,10 +278,8 @@ export default {
       }
 
       this.tableData = [];
-      this.unusedClassList = [];
-      this.buildTableData();
       this.updatePackageInfos();
-      this.updeteData();
+      this.updateData();
     },
     planBackupCountChange() {
       this.tableData.forEach(item => {
@@ -345,7 +343,7 @@ export default {
       }
       return Promise.resolve(true);
     },
-    updeteData() {
+    updateData() {
       const tableList = this.tableData.map(row => {
         let nrow = { ...row };
         let extendFields = this.extendFields.map(field => {
@@ -367,43 +365,6 @@ export default {
         }
       });
     },
-    updateData() {
-      this.$emit("data-change", this.getData());
-    },
-    buildTableData() {
-      this.tableData = this.classList.map(clazz => {
-        let modalFormData = { ...this.modalForm };
-        delete modalFormData.printHouseId;
-        let data = {
-          examPlace: "",
-          examRoom: "",
-          classId: clazz.id,
-          className: clazz.name,
-          studentCount: clazz.studentCount,
-          printHouseId: clazz.printHouseId,
-          printHouseName: clazz.printHouseName,
-          extendFields: "",
-          backupCount: this.infoExamPrintPlan.backupCount,
-          ...modalFormData
-        };
-        let extendFieldModal = {};
-        this.extendFields.forEach(field => {
-          extendFieldModal[field.code] = "";
-        });
-        data.extends = extendFieldModal;
-        return data;
-      });
-    },
-    updateUnusedClassList() {
-      let usedClassIds = [];
-      this.tableData.forEach(row => {
-        usedClassIds = [...usedClassIds, ...row.classId.split(",")];
-      });
-
-      this.unusedClassList = this.classList.filter(
-        item => !usedClassIds.includes(item.id)
-      );
-    },
     updatePackageInfos() {
       this.packageInfos.packageCount = this.tableData.length;
       this.packageInfos.studentCount = calcSum(
@@ -426,25 +387,6 @@ export default {
     async getPrintHouses() {
       this.printHouses = await listTaskPrintHouse();
     },
-    async getClassList() {
-      this.classList = [];
-      if (!this.infoExamTask.courseCode) return;
-
-      const data = await listTaskApplyClass({
-        courseCode: this.infoExamTask.courseCode
-      });
-      if (!data) return;
-
-      this.classList = data.map(item => {
-        return {
-          id: item.classId,
-          name: item.className,
-          studentCount: item.studentCount,
-          printHouseId: item.printHouseId,
-          printHouseName: item.printHouseName
-        };
-      });
-    },
     timeChange() {
       if (!this.createDate || !this.createTime) {
         this.modalForm.examStartTime = null;
@@ -470,42 +412,73 @@ export default {
       }
     },
     toAdd() {
-      if (!this.checkTime()) return;
+      if (!this.infoExamTask.courseId) {
+        this.$message.error("请先选择课程");
+        return;
+      }
 
-      this.curRow = {
+      this.selectedStudentIds = this.getTabelStudentIds();
+      this.$refs.ModifyExamStudent.open();
+    },
+    getTabelStudentIds() {
+      let ids = [];
+      this.tableData.forEach(item => {
+        item.examTaskStudentObjectParamList.forEach(elem => {
+          ids.push(elem.studentId);
+        });
+      });
+      return ids;
+    },
+    getInitTableRow() {
+      let modalFormData = { ...this.modalForm };
+      delete modalFormData.printHouseId;
+      let data = {
         examPlace: "",
         examRoom: "",
         classId: "",
         className: "",
-        studentCount: null,
-        printHouseId: null,
-        printHouseName: null,
+        studentCount: "",
+        printHouseId: "",
+        printHouseName: "",
         extendFields: "",
-        backupCount: this.infoExamPrintPlan.backupCount,
-        ...this.modalForm
+        backupCount: 0,
+        examTaskStudentObjectParamList: [],
+        ...modalFormData
       };
       let extendFieldModal = {};
       this.extendFields.forEach(field => {
         extendFieldModal[field.code] = "";
       });
-      this.curRow.extends = extendFieldModal;
-      this.$refs.ModifyPrintTask.open();
+      data.extends = extendFieldModal;
+      return data;
     },
-    toEdit(row) {
-      this.curRow = { ...row };
-      this.$refs.ModifyPrintTask.open();
+    examStudentModified(selectedStudents) {
+      let tableMap = {};
+      const initTableRow = this.getInitTableRow();
+      this.tableData.forEach(item => {
+        tableMap[item.classId] = item;
+      });
+
+      this.tableData = selectedStudents.map(item => {
+        const prevData = tableMap[item.classId] || initTableRow;
+        return this.$objAssign(prevData, {
+          backupCount: this.infoExamPrintPlan.backupCount,
+          classId: item.classId,
+          className: item.className,
+          studentCount: item.children.length,
+          examTaskStudentObjectParamList: item.children
+        });
+      });
+      this.updatePackageInfos();
     },
     toDelete(row) {
       this.tableData = this.tableData.filter(
         item => item.classId !== row.classId
       );
-      this.updateUnusedClassList();
       this.updatePackageInfos();
     },
-    modified(data) {
-      this.tableData.push(data);
-      this.updateUnusedClassList();
-      this.updatePackageInfos();
+    toViewStudent(row) {
+      console.log(row);
     }
   }
 };

+ 232 - 0
src/modules/exam/components/createExamAndPrintTask/ModifyExamStudent.vue

@@ -0,0 +1,232 @@
+<template>
+  <el-dialog
+    class="modify-exam-student"
+    :visible.sync="modalIsShow"
+    title="选择考试对象"
+    top="10px"
+    width="600px"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    @opened="visibleChange"
+  >
+    <div class="mb-4 tab-btns">
+      <el-button
+        v-for="(val, key) in EXAM_OBJECT_TYPE"
+        :key="key"
+        size="medium"
+        :type="examObjectType === key ? 'primary' : 'default'"
+        @click="selectMenu(key)"
+        >{{ val }}
+      </el-button>
+    </div>
+
+    <div v-if="isExportType">
+      <el-button type="success" icon="el-icon-download"
+        ><a :href="downloadUrl" :download="dfilename">模板下载</a></el-button
+      >
+      <upload-button
+        btn-icon="el-icon-circle-plus-outline"
+        btn-content="批量导入"
+        btn-type="success"
+        :upload-url="uploadUrl"
+        :format="['xls', 'xlsx']"
+        accept=".xls,.xlsx"
+        @valid-error="validError"
+        @upload-success="uploadSuccess"
+      >
+      </upload-button>
+    </div>
+
+    <el-row v-else type="flex" :gutter="10">
+      <el-col :span="12">
+        <h3 class="user-part-title">班级/学生</h3>
+        <el-tree
+          ref="UserTree"
+          :data="userTree"
+          node-key="id"
+          show-checkbox
+          highlight-current
+          :props="defaultProps"
+          @check-change="checkChange"
+        >
+        </el-tree>
+      </el-col>
+      <el-col :span="12">
+        <div class="user-part-title">已选范围</div>
+        <el-tree
+          ref="UserSelectedTree"
+          :data="selectedUsers"
+          node-key="id"
+          show-checkbox
+          highlight-current
+          :props="defaultProps"
+        >
+          <span class="custom-tree-node" slot-scope="{ node, data }">
+            <el-button
+              v-if="data.isUser"
+              type="text"
+              icon="el-icon-remove"
+              @click="removeSelectStudent(node, data)"
+            >
+              {{ data.label }}
+            </el-button>
+          </span>
+        </el-tree>
+      </el-col>
+    </el-row>
+    <p v-show="!selectValid" class="tips-info tips-error"></p>
+
+    <div slot="footer">
+      <el-button type="primary" :disabled="!selectValid" @click="submit"
+        >确认</el-button
+      >
+      <el-button @click="cancel">取消</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { uploadOrFindExamTaskStudent } from "../../api";
+import UploadButton from "@/components/UploadButton";
+
+const EXAM_OBJECT_TYPE = {
+  TEACH_CLAZZ_STUDENT: "我教课程选择",
+  BASIC_CLAZZ_STUDENT: "学生库选择",
+  IMPORT_STUDENT: "批量导入"
+};
+
+export default {
+  name: "modify-exam-student",
+  props: {
+    selectedIds: {
+      type: Array,
+      default() {
+        return [];
+      }
+    },
+    courseId: {
+      type: String,
+      default: ""
+    }
+  },
+  components: { UploadButton },
+  data() {
+    return {
+      modalIsShow: false,
+      examObjectType: "TEACH_CLAZZ_STUDENT",
+      EXAM_OBJECT_TYPE,
+      dataTree: {
+        TEACH_CLAZZ_STUDENT: [],
+        BASIC_CLAZZ_STUDENT: []
+      },
+      userTree: [],
+      selectedUsers: [],
+      selectedUserIds: [],
+      selectValid: true,
+      defaultProps: {
+        children: "children",
+        label: "label"
+      },
+      // import
+      uploadUrl: "/api/admin/exam/task/find_exam_task_student_object",
+      downloadUrl: "/temps/studentTemplate.xlsx",
+      dfilename: "学生导入模板.xlsx"
+    };
+  },
+  computed: {
+    isExportType() {
+      return this.examObjectType === "IMPORT_STUDENT";
+    }
+  },
+  methods: {
+    async getStudents(examObjectType) {
+      let datas = {
+        examObjectType: examObjectType || this.examObjectType
+      };
+      if (this.examObjectType === "TEACH_CLAZZ_STUDENT")
+        datas.basicCourseId = this.courseId;
+      const data = await uploadOrFindExamTaskStudent(datas);
+      this.userTree = this.dataTree[
+        this.examObjectType
+      ] = this.parseStudentData(data);
+    },
+    parseStudentData(data) {
+      return data.map(item => {
+        let nitem = {
+          id: item.clazzId,
+          label: item.clazzName,
+          classId: item.clazzId,
+          className: item.clazzName,
+          studentClazzType: item.studentClazzType,
+          children: []
+        };
+
+        nitem.children = item.studentInfoList.map(elem => {
+          return {
+            ...elem,
+            isUser: true,
+            id: elem.studentId,
+            label: elem.studentName,
+            studentClazzType: item.studentClazzType
+          };
+        });
+
+        return nitem;
+      });
+    },
+    selectMenu(val) {
+      this.examObjectType = val;
+      if (val === "IMPORT_STUDENT") return;
+
+      this.selectedUserIds = [];
+      this.selectedUsers = [];
+
+      if (this.dataTree[val].length) {
+        this.userTree = this.dataTree[val];
+      } else {
+        this.getStudents();
+      }
+    },
+    checkChange() {
+      let selectedNode = this.$refs.UserTree.getCheckedNodes(false, true);
+      console.log(selectedNode);
+    },
+    removeSelectStudent(node) {
+      console.log(node);
+
+      this.$refs.UserSelectedTree.remove(node);
+    },
+    async visibleChange() {
+      if (this.examObjectType === "TEACH_CLAZZ_STUDENT") {
+        await this.getStudents();
+      }
+      this.$refs.UserTree.setCheckedKeys(this.selectedIds);
+      this.$nextTick(() => {
+        this.checkChange();
+      });
+    },
+    cancel() {
+      this.modalIsShow = false;
+    },
+    open() {
+      this.modalIsShow = true;
+    },
+    // import
+    validError(errorData) {
+      this.$message.error(errorData.message);
+    },
+    uploadSuccess(res) {
+      console.log(res);
+    },
+    submit() {
+      if (!this.selectedUsers.length) {
+        this.$message.error("请选择考试对象");
+        return;
+      }
+      this.$emit("modified", this.selectedUsers);
+      this.cancel();
+    }
+  }
+};
+</script>

+ 2 - 1
src/modules/stmms/components/markParam/MarkPaperMarker.vue

@@ -165,7 +165,8 @@ export default {
       const data = await examStructureFindJpg({
         examId: this.datas.basicPaperInfo.examId,
         courseCode: this.datas.basicPaperInfo.courseCode,
-        paperNumber: this.datas.basicPaperInfo.paperNumber
+        paperNumber: this.datas.basicPaperInfo.paperNumber,
+        paperType: this.datas.basicPaperInfo.paperType
       });
       const papers = data || [];
       papers.sort((a, b) => a.index - b.index);