WANG 6 years ago
parent
commit
6da0631867
1 changed files with 94 additions and 14 deletions
  1. 94 14
      src/modules/examwork/view/onlineExamOrgSettings.vue

+ 94 - 14
src/modules/examwork/view/onlineExamOrgSettings.vue

@@ -68,33 +68,64 @@
           </el-form-item>
         </el-form>
 
+        <div class="block-seperator"></div>
+        <span>批量操作:</span>
+
+        <el-button
+          size="small"
+          type="success"
+          icon="el-icon-check"
+          :disabled="noBatchSelected"
+          @click="batchNotLimit"
+          >开考
+        </el-button>
+        <el-button
+          size="small"
+          type="danger"
+          icon="el-icon-close"
+          :disabled="noBatchSelected"
+          @click="batchLimit"
+          >禁考
+        </el-button>
+
+        <div style="width: 100%;margin-bottom: 10px;"></div>
+
         <!-- 页面列表 -->
         <el-table
           :data="tableData"
           border
           style="width: 100%;text-align:center;"
+          @selection-change="selectChange"
           v-loading="loading4FormSearch"
         >
+          <el-table-column type="selection" width="40"></el-table-column>
           <el-table-column prop="id" width="80" label="ID"></el-table-column>
           <el-table-column
             prop="orgCode"
             label="学习中心代码"
+            sortable
           ></el-table-column>
           <el-table-column
             prop="orgName"
             label="学习中心名称"
+            sortable
           ></el-table-column>
-          <el-table-column prop="beginTime" width="155" label="开始时间">
+          <el-table-column
+            prop="beginTime"
+            width="155"
+            label="开始时间"
+            sortable
+          >
           </el-table-column>
-          <el-table-column prop="endTime" width="155" label="结束时间">
+          <el-table-column prop="endTime" width="155" label="结束时间" sortable>
           </el-table-column>
-          <el-table-column width="110" label="是否可以考试">
+          <el-table-column width="80" label="开考状态">
             <span slot-scope="scope">
               <span v-if="!scope.row.examLimit">
                 <el-tooltip
                   class="item"
                   effect="dark"
-                  content=""
+                  content="开考"
                   placement="left"
                 >
                   <i class="el-icon-success" style="color:green;"></i>
@@ -104,7 +135,7 @@
                 <el-tooltip
                   class="item"
                   effect="dark"
-                  content=""
+                  content="禁考"
                   placement="left"
                 >
                   <i class="el-icon-error" style="color:red;"></i>
@@ -130,8 +161,7 @@
                 <el-button
                   v-else
                   size="mini"
-                  type="primary"
-                  plain
+                  type="danger"
                   icon="el-icon-edit"
                   @click="updateExamLimit(scope.row)"
                 >
@@ -217,10 +247,10 @@
               </el-form-item>
             </el-row>
             <el-row>
-              <el-form-item label="是否可以考试" label-width="120px">
+              <el-form-item label="开考状态" label-width="120px">
                 <el-radio-group v-model="orgSetting.examLimit" class="input">
-                  <el-radio label="true"></el-radio>
-                  <el-radio label="false"></el-radio>
+                  <el-radio label="true">禁考</el-radio>
+                  <el-radio label="false">开考</el-radio>
                 </el-radio-group>
               </el-form-item>
             </el-row>
@@ -292,10 +322,10 @@
               </el-form-item>
             </el-row>
             <el-row>
-              <el-form-item label="是否可以考试" label-width="120px">
+              <el-form-item label="开考状态" label-width="120px">
                 <el-radio-group v-model="orgSetting.examLimit" class="input">
-                  <el-radio label="true"></el-radio>
-                  <el-radio label="false"></el-radio>
+                  <el-radio label="true">禁考</el-radio>
+                  <el-radio label="false">开考</el-radio>
                 </el-radio-group>
               </el-form-item>
             </el-row>
@@ -398,6 +428,7 @@ export default {
       currentPage: 1,
       pageSize: 10,
       total: 0,
+      selectedOrgSettings: [],
 
       orgSetting: {
         examId: null,
@@ -431,9 +462,58 @@ export default {
     };
   },
   computed: {
-    ...mapState({ user: state => state.user })
+    ...mapState({ user: state => state.user }),
+    noBatchSelected() {
+      return this.selectedOrgSettings.length === 0;
+    }
   },
   methods: {
+    batchNotLimit() {
+      this.$confirm("所选学生是否开考?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let url =
+          EXAM_WORK_API +
+          "/exam/setOrgExamNotLimited/" +
+          this.selectedOrgSettings;
+        this.$httpWithMsg.put(url).then(response => {
+          console.log(response);
+          this.$notify({
+            type: "success",
+            message: "开考成功"
+          });
+          this.search();
+        });
+      });
+    },
+    batchLimit() {
+      this.$confirm("所选学生是否禁考?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let url =
+          EXAM_WORK_API + "/exam/setOrgExamLimited/" + this.selectedOrgSettings;
+        this.$httpWithMsg.put(url).then(response => {
+          console.log(response);
+          this.$notify({
+            type: "success",
+            message: "禁考成功"
+          });
+          this.search();
+        });
+      });
+    },
+    selectChange(row) {
+      this.selectedOrgSettings = [];
+      row.forEach((element, index) => {
+        console.log(index);
+        this.selectedOrgSettings.push(element.id);
+      });
+      console.log(this.selectedOrgSettings);
+    },
     getOrgList4Search(name) {
       this.loadingOrg4Search = true;
       var url = CORE_API + "/org/query?" + new URLSearchParams({ name: name });