zhangjie 3 years ago
parent
commit
582f457c05

BIN
public/temps/clazzSimpleStudentTemplate.xlsx


+ 2 - 10
src/constants/enumerate.js

@@ -15,9 +15,10 @@ export const BOOLEAN_TYPE = {
 
 // 审核状态
 export const AUDITING_STATUS = {
-  START: "待审核",
+  START: "已开始",
   AUDITING: "审核中",
   REJECT: "已驳回",
+  CANCEL: "已撤回",
   END: "已终止",
   FINISH: "已结束"
 };
@@ -228,15 +229,6 @@ export const PRINT_PDF_TYPE = {
   ALL_A3: "试卷题卡合并文件",
   CARD_A3: "题卡合并文件"
 };
-// 流程状态
-export const FLOW_STATUS = {
-  START: "已开始",
-  AUDITING: "审核中",
-  REJECT: "已驳回",
-  CANCEL: "已撤回",
-  END: "已终止",
-  FINISH: "已结束"
-};
 
 // stmms
 export const MARK_TASK_SYNC_STATUS = {

+ 7 - 2
src/modules/base/components/ModifyClazzSimpleStudent.vue

@@ -31,6 +31,11 @@
           </el-form-item>
         </el-form>
         <div class="part-box-action">
+          <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="批量导入"
@@ -129,8 +134,8 @@ export default {
       // import
       uploadData: {},
       uploadUrl: "/api/admin/teach/student/import",
-      downloadUrl: "/temps/studentTemplate.xlsx",
-      dfilename: "学生导入模板.xlsx"
+      downloadUrl: "/temps/clazzSimpleStudentTemplate.xlsx",
+      dfilename: "教学班级学生导入模板.xlsx"
     };
   },
   computed: {

+ 12 - 5
src/modules/base/components/SelectUserDialog.vue

@@ -2,7 +2,7 @@
   <el-dialog
     class="select-user-dialog"
     :visible.sync="modalIsShow"
-    title="添加成员"
+    title="添加用户"
     top="10px"
     width="600px"
     :close-on-click-modal="false"
@@ -59,6 +59,9 @@
         </div>
       </el-col>
     </el-row>
+    <p v-show="!selectValid" class="tips-info tips-error">
+      选择用户数不能超过{{ userLimitCount }}
+    </p>
 
     <div slot="footer">
       <el-button type="primary" @click="submit">确认</el-button>
@@ -93,6 +96,7 @@ export default {
       userList: [],
       selectedUsers: [],
       selectedUserIds: [],
+      selectValid: true,
       defaultProps: {
         children: "children",
         label: "name"
@@ -167,12 +171,16 @@ export default {
           });
       }
     },
+    checkValid() {
+      this.selectValid = this.selectedUsers.length <= this.userLimitCount;
+    },
     visibleChange() {
       this.filterLabel = "";
       this.labelChange();
       this.selectedUsers = this.users;
       this.selectedUserIds = this.users.map(item => item.id);
       this.$refs.UserTree.setCheckedKeys(this.selectedUserIds);
+      this.checkValid();
     },
     cancel() {
       this.modalIsShow = false;
@@ -183,12 +191,14 @@ export default {
     userChange() {
       this.selectedUsers = this.$refs.UserTree.getCheckedNodes(true);
       this.selectedUserIds = this.selectedUsers.map(item => item.id);
+      this.checkValid();
     },
     toDeleteUser(user) {
       const pos = this.selectedUsers.findIndex(item => item.id === user.id);
       this.selectedUsers.splice(pos, 1);
       this.selectedUserIds = this.selectedUsers.map(item => item.id);
       this.$refs.UserTree.setCheckedKeys(this.selectedUserIds);
+      this.checkValid();
     },
     submit() {
       if (!this.selectedUsers.length) {
@@ -196,10 +206,7 @@ export default {
         return;
       }
 
-      if (this.selectedUsers.length > this.userLimitCount) {
-        this.$message.error(`选择用户数不能超过${this.userLimitCount}`);
-        return;
-      }
+      if (!this.selectValid) return;
 
       this.$emit(
         "modified",

+ 3 - 3
src/modules/base/views/ApproveRecordManage.vue

@@ -11,7 +11,7 @@
               clearable
             >
               <el-option
-                v-for="(val, key) in FLOW_STATUS"
+                v-for="(val, key) in AUDITING_STATUS"
                 :key="key"
                 :value="key"
                 :label="val"
@@ -132,7 +132,7 @@
 <script>
 import { approveRecordListPage, deleteApproveRecord } from "../api";
 import { examTaskGetOne } from "../../exam/api";
-import { FLOW_STATUS } from "@/constants/enumerate";
+import { AUDITING_STATUS } from "@/constants/enumerate";
 import pickerOptions from "@/constants/datePickerOptions";
 import ModifyTaskApply from "../../exam/components/ModifyTaskApply";
 
@@ -153,7 +153,7 @@ export default {
       size: this.GLOBAL.pageSize,
       total: 0,
       dataList: [],
-      FLOW_STATUS,
+      AUDITING_STATUS,
       curExamTask: {},
       // date-picker
       createTime: [],

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

@@ -206,6 +206,7 @@ export default {
           this.dataChange(data);
           await this.updatePrintPlan({ examId, orgId: teachingRoomId });
           this.$nextTick(() => {
+            this.$refs.InfoPrintTask.buildTableData();
             this.$refs.InfoPrintTask.updatePackageInfos();
           });
         }

+ 27 - 2
src/modules/exam/components/createExamAndPrintTask/InfoPrintTask.vue

@@ -48,6 +48,29 @@
         <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">
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.backupCount"
+              style="width:60px"
+              :min="1"
+              :max="99999"
+              :step="1"
+              step-strictly
+              :controls="false"
+            ></el-input-number>
+          </template>
+        </el-table-column>
+        <el-table-column prop="examPlace" label="考点名称">
+          <template slot-scope="scope">
+            <el-input v-model.trim="scope.row.examPlace" clearable></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="examRoom" label="考场名称">
+          <template slot-scope="scope">
+            <el-input v-model.trim="scope.row.examRoom" clearable></el-input>
+          </template>
+        </el-table-column>
         <el-table-column prop="printHouseName" label="印刷室">
           <template slot-scope="scope">
             <el-select
@@ -257,6 +280,7 @@ export default {
           printHouseId: clazz.printHouseId,
           printHouseName: clazz.printHouseName,
           extendFields: "",
+          backupCount: this.datas.examPrintPlan.backupCount,
           ...this.modalForm
         };
         let extendFieldModal = {};
@@ -283,8 +307,9 @@ export default {
         this.tableData.map(item => item.studentCount)
       );
       this.packageInfos.paperReleaseCount = this.packageInfos.studentCount;
-      this.packageInfos.paperBackupCount =
-        this.packageInfos.packageCount * this.datas.examPrintPlan.backupCount;
+      this.packageInfos.paperBackupCount = calcSum(
+        this.tableData.map(item => item.backupCount)
+      );
       this.packageInfos.paperCount =
         this.packageInfos.paperReleaseCount +
         this.packageInfos.paperBackupCount;