Pārlūkot izejas kodu

备份数量修改

zhangjie 2 gadi atpakaļ
vecāks
revīzija
235cbe26a3

+ 23 - 10
src/modules/exam/components/createExamAndPrintTask/InfoPrintTask.vue

@@ -123,9 +123,10 @@
         </div>
       </div>
       <el-table ref="TableList" :data="tableData" border>
-        <el-table-column type="index" width="50" label="卷袋序号">
+        <el-table-column type="index" width="80" label="卷袋序号">
+        </el-table-column>
+        <el-table-column prop="className" label="考试对象" width="160">
         </el-table-column>
-        <el-table-column prop="className" label="考试对象"> </el-table-column>
         <el-table-column prop="studentCount" label="人数" width="60">
         </el-table-column>
         <el-table-column prop="backupCount" label="备份数量" width="90">
@@ -133,7 +134,7 @@
             <el-input-number
               v-model="scope.row.backupCount"
               style="width: 60px"
-              :min="infoExamPrintPlan.backupCount"
+              :min="scope.row.minBackupCount"
               :max="99999"
               :step="1"
               step-strictly
@@ -142,7 +143,7 @@
             ></el-input-number>
           </template>
         </el-table-column>
-        <el-table-column prop="examPlace" label="考点名称">
+        <el-table-column prop="examPlace" label="考点名称" width="140">
           <template slot-scope="scope">
             <el-input
               v-model.trim="scope.row.examPlace"
@@ -151,7 +152,7 @@
             ></el-input>
           </template>
         </el-table-column>
-        <el-table-column prop="examRoom" label="考场名称">
+        <el-table-column prop="examRoom" label="考场名称" width="140">
           <template slot-scope="scope">
             <el-input
               v-model.trim="scope.row.examRoom"
@@ -160,7 +161,7 @@
             ></el-input>
           </template>
         </el-table-column>
-        <el-table-column prop="printHouseName" label="印刷室">
+        <el-table-column prop="printHouseName" label="印刷室" width="140">
           <template slot-scope="scope">
             <el-select
               v-model="scope.row.printHouseId"
@@ -181,6 +182,7 @@
           v-for="item in extendFields"
           :key="item.code"
           :label="item.name"
+          width="120"
         >
           <div slot-scope="scope">
             <el-input
@@ -192,9 +194,10 @@
         </el-table-column>
         <el-table-column
           label="操作"
-          width="100"
+          width="120"
           class-name="action-column"
           align="center"
+          fixed="right"
         >
           <template slot-scope="scope">
             <el-button
@@ -330,10 +333,18 @@ export default {
     },
     planBackupCountChange() {
       this.tableData.forEach((item) => {
-        item.backupCount = this.infoExamPrintPlan.backupCount || 0;
+        Object.assign(item, this.getBackupCount(item.studentCount));
       });
       this.updatePackageInfos();
     },
+    getBackupCount(studentCount) {
+      const { backupCount } = this.infoExamPrintPlan;
+      if (backupCount < 1) {
+        const count = Math.ceil(backupCount * studentCount);
+        return { backupCount: count, minBackupCount: count };
+      }
+      return { backupCount, minBackupCount: backupCount };
+    },
     checkTime() {
       if (!this.modalForm.examStartTime || !this.modalForm.examEndTime) {
         this.$message.error("请选择考试时间!");
@@ -493,6 +504,7 @@ export default {
         printHouseName: "",
         extendFields: "",
         backupCount: 0,
+        minBackupCount: 0,
         examTaskStudentObjectParamList: [],
         ...modalFormData,
       };
@@ -515,9 +527,9 @@ export default {
       let tableRow = this.$objAssign(this.getInitTableRow(), {
         classId: selectedStudents.map((item) => item.clazzId).join(),
         className: selectedStudents.map((item) => item.clazzName).join(),
-        backupCount: this.infoExamPrintPlan.backupCount,
         studentCount: examTaskStudentObjectParamList.length,
         examTaskStudentObjectParamList,
+        ...this.getBackupCount(examTaskStudentObjectParamList.length),
       });
       this.tableData.push(tableRow);
 
@@ -572,13 +584,14 @@ export default {
             .join(),
           examRoom: item.examRoom,
           examPlace: item.examPlace,
-          backupCount: this.infoExamPrintPlan.backupCount,
           studentCount: examTaskStudentObjectParamList.length,
           examTaskStudentObjectParamList,
+          ...this.getBackupCount(examTaskStudentObjectParamList.length),
         });
 
         return tableRow;
       });
+      this.updatePackageInfos();
     },
   },
 };