Prechádzať zdrojové kódy

Merge branch 'dev_v5.0.4' of http://git.qmth.com.cn/examcloud-frontend/examcloud-admin-web into dev_v5.0.4

刘洋 10 mesiacov pred
rodič
commit
e0cb5db709

+ 1 - 1
src/modules/examwork/view/examStudentImport.vue

@@ -106,7 +106,7 @@
         >
         >
           <el-table-column
           <el-table-column
             prop="id"
             prop="id"
-            width="50"
+            width="80"
             label="ID"
             label="ID"
             sortable
             sortable
           ></el-table-column>
           ></el-table-column>

+ 3 - 3
src/modules/examwork/view/ipConfig.vue

@@ -270,9 +270,6 @@ import { mapState } from "vuex";
 import qs from "qs";
 import qs from "qs";
 export default {
 export default {
   name: "IpConfig",
   name: "IpConfig",
-  computed: {
-    ...mapState({ user: (state) => state.user }),
-  },
   data() {
   data() {
     return {
     return {
       examList: [],
       examList: [],
@@ -333,6 +330,9 @@ export default {
       fileList: [],
       fileList: [],
     };
     };
   },
   },
+  computed: {
+    ...mapState({ user: (state) => state.user }),
+  },
   created() {
   created() {
     this.getOrgList4Search("");
     this.getOrgList4Search("");
     this.searchForm();
     this.searchForm();

+ 21 - 14
src/modules/oe/views/ReexamineRecord.vue

@@ -127,10 +127,7 @@
 import { CORE_API, EXAM_WORK_API } from "@/constants/constants.js";
 import { CORE_API, EXAM_WORK_API } from "@/constants/constants.js";
 import { mapState } from "vuex";
 import { mapState } from "vuex";
 export default {
 export default {
-  name: "IpConfig",
-  computed: {
-    ...mapState({ user: (state) => state.user }),
-  },
+  name: "ReexamineRecord",
   data() {
   data() {
     return {
     return {
       formSearch: {
       formSearch: {
@@ -151,6 +148,9 @@ export default {
       courseList4Search: [],
       courseList4Search: [],
     };
     };
   },
   },
+  computed: {
+    ...mapState({ user: (state) => state.user }),
+  },
   created() {
   created() {
     this.getOrgList4Search("");
     this.getOrgList4Search("");
     this.queryExams4Search("");
     this.queryExams4Search("");
@@ -238,16 +238,23 @@ export default {
         });
         });
         return;
         return;
       }
       }
-      var param = new URLSearchParams(this.formSearch);
-      window.open(
-        "/api/ecs_oe_admin/reexamine/log/list/export" +
-          "?$key=" +
-          this.user.key +
-          "&$token=" +
-          this.user.token +
-          "&" +
-          param
-      );
+
+      this.$confirm("确定执行导出?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        var param = new URLSearchParams(this.formSearch);
+        window.open(
+          "/api/ecs_oe_admin/reexamine/log/list/export" +
+            "?$key=" +
+            this.user.key +
+            "&$token=" +
+            this.user.token +
+            "&" +
+            param
+        );
+      });
     },
     },
   },
   },
 };
 };

+ 2 - 2
src/modules/oe/views/alreadyAudited.vue

@@ -4,12 +4,12 @@
       <commonFormVue :form="form" :get-exam-condition="getExamCondition">
       <commonFormVue :form="form" :get-exam-condition="getExamCondition">
         <el-row v-show="showAllCondition">
         <el-row v-show="showAllCondition">
           <el-col :span="6">
           <el-col :span="6">
-            <el-form-item label="考试ID">
+            <el-form-item label="考试记录ID">
               <el-input
               <el-input
                 v-model="form.examRecordDataId"
                 v-model="form.examRecordDataId"
                 class="form_search_width"
                 class="form_search_width"
                 size="small"
                 size="small"
-                placeholder="考试ID"
+                placeholder="考试记录ID"
               ></el-input>
               ></el-input>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>

+ 35 - 24
src/modules/oe/views/awaitingAudit.vue

@@ -4,12 +4,12 @@
       <commonFormVue :form="form" :get-exam-condition="getExamCondition">
       <commonFormVue :form="form" :get-exam-condition="getExamCondition">
         <el-row v-show="showAllCondition">
         <el-row v-show="showAllCondition">
           <el-col :span="6">
           <el-col :span="6">
-            <el-form-item label="考试ID">
+            <el-form-item label="考试记录ID">
               <el-input
               <el-input
                 v-model="form.examRecordDataId"
                 v-model="form.examRecordDataId"
                 class="form_search_width"
                 class="form_search_width"
                 size="small"
                 size="small"
-                placeholder="考试ID"
+                placeholder="考试记录ID"
               ></el-input>
               ></el-input>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
@@ -41,6 +41,20 @@
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
+          <el-col :span="6">
+            <el-form-item label="虚拟设备">
+              <el-select
+                v-model="form.hasVirtual"
+                class="form_search_width"
+                size="small"
+                clearable
+                placeholder="全部"
+              >
+                <el-option value="true" label="有"></el-option>
+                <el-option value="false" label="无"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
           <el-col :span="6">
           <el-col :span="6">
             <el-form-item label="人脸比对">
             <el-form-item label="人脸比对">
               <el-input
               <el-input
@@ -77,20 +91,6 @@
               </el-row>
               </el-row>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
-          <el-col :span="6">
-            <el-form-item label="虚拟设备">
-              <el-select
-                v-model="form.hasVirtual"
-                class="form_search_width"
-                size="small"
-                clearable
-                placeholder="全部"
-              >
-                <el-option value="true" label="有"></el-option>
-                <el-option value="false" label="无"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
           <el-col :span="12">
           <el-col :span="12">
             <el-form-item label="开考时间">
             <el-form-item label="开考时间">
               <el-date-picker
               <el-date-picker
@@ -123,16 +123,27 @@
               ></el-date-picker>
               ></el-date-picker>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
-          <!--          <el-col :span="6">
-            <el-form-item label="Ip">
-              <el-input
-                v-model="form.ip"
+          <el-col :span="6">
+            <el-form-item label="其它异常">
+              <el-select
+                v-model="form.warnType"
                 class="form_search_width"
                 class="form_search_width"
                 size="small"
                 size="small"
-                placeholder="Ip"
-              ></el-input>
+                clearable
+                placeholder="全部"
+              >
+                <el-option value="MISS_FACE" label="开考照片缺失"></el-option>
+                <el-option
+                  value="SKIP_FACE"
+                  label="人工跳过人脸验证"
+                ></el-option>
+                <el-option
+                  value="FACE_LIVE_UNPASS"
+                  label="过程活体不通过"
+                ></el-option>
+              </el-select>
             </el-form-item>
             </el-form-item>
-          </el-col>-->
+          </el-col>
         </el-row>
         </el-row>
       </commonFormVue>
       </commonFormVue>
       <el-col :span="24">
       <el-col :span="24">
@@ -563,7 +574,7 @@ export default {
         endTime: null, //开考时间止
         endTime: null, //开考时间止
         submitStartTime: null, //交卷时间起
         submitStartTime: null, //交卷时间起
         submitEndTime: null, //交卷时间止
         submitEndTime: null, //交卷时间止
-        ip: null, //Ip
+        warnType: null,
       },
       },
       auditForm: {
       auditForm: {
         examRecordDataId: null,
         examRecordDataId: null,

+ 41 - 25
src/modules/oe/views/examSummary.vue

@@ -658,32 +658,48 @@ export default {
       return p1 - p2;
       return p1 - p2;
     },
     },
     exportOrg() {
     exportOrg() {
-      this.exportOrgLoading = true;
-      this.$http
-        .get("/api/ecs_oe_admin/exam/student/statistic/by/org/export", {
-          params: {
-            examId: this.examId,
-            examStageId: this.examStageId,
-            orgId: this.orgId,
-          },
-          responseType: "arraybuffer",
-          timeout: 20 * 60 * 1000, //限时20分钟
-        })
-        .then((response) => {
-          if (response.data) {
-            var blob = new Blob([response.data], {
-              type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
-            });
-            var url = URL.createObjectURL(blob);
-            var a = document.createElement("a");
-            a.href = url;
-            a.download = "学习中心完成进度.xlsx";
-            a.target = "_blank";
-            a.click();
-            URL.revokeObjectURL(url);
-          }
-          this.exportOrgLoading = false;
+      if (!this.examId) {
+        this.$notify({
+          title: "警告",
+          message: "请选择考试",
+          type: "warning",
+          duration: 1000,
         });
         });
+        return false;
+      }
+
+      this.$confirm("确定执行导出?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        this.exportOrgLoading = true;
+        this.$http
+          .get("/api/ecs_oe_admin/exam/student/statistic/by/org/export", {
+            params: {
+              examId: this.examId,
+              examStageId: this.examStageId,
+              orgId: this.orgId,
+            },
+            responseType: "arraybuffer",
+            timeout: 20 * 60 * 1000, //限时20分钟
+          })
+          .then((response) => {
+            if (response.data) {
+              var blob = new Blob([response.data], {
+                type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
+              });
+              var url = URL.createObjectURL(blob);
+              var a = document.createElement("a");
+              a.href = url;
+              a.download = "学习中心完成进度.xlsx";
+              a.target = "_blank";
+              a.click();
+              URL.revokeObjectURL(url);
+            }
+            this.exportOrgLoading = false;
+          });
+      });
     },
     },
     exportCourse() {
     exportCourse() {
       this.exportCourseLoading = true;
       this.exportCourseLoading = true;

+ 21 - 11
src/modules/oe/views/illegalityType.vue

@@ -134,8 +134,12 @@
         <el-table-column prop="id" label="ID" width="60"></el-table-column>
         <el-table-column prop="id" label="ID" width="60"></el-table-column>
         <el-table-column prop="code" label="违纪类型代码"></el-table-column>
         <el-table-column prop="code" label="违纪类型代码"></el-table-column>
         <el-table-column prop="name" label="违纪类型名称"></el-table-column>
         <el-table-column prop="name" label="违纪类型名称"></el-table-column>
-        <el-table-column prop="dataCategory" label="数据分类"></el-table-column>
-        <el-table-column label="数据分类">
+        <el-table-column
+          prop="dataCategory"
+          label="数据分类"
+          width="100"
+        ></el-table-column>
+        <el-table-column label="数据分类" width="100">
           <span slot-scope="scope">
           <span slot-scope="scope">
             <span v-if="scope.row.dataCategory == 'SYSTEM'">
             <span v-if="scope.row.dataCategory == 'SYSTEM'">
               <el-tooltip
               <el-tooltip
@@ -504,15 +508,21 @@ export default {
     },
     },
 
 
     exportIllegallyType() {
     exportIllegallyType() {
-      let param = new URLSearchParams(this.formSearch);
-      window.open(
-        "/api/ecs_oe_admin/illegallyType/export?$key=" +
-          this.user.key +
-          "&$token=" +
-          this.user.token +
-          "&" +
-          param
-      );
+      this.$confirm("确定执行导出?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        let param = new URLSearchParams(this.formSearch);
+        window.open(
+          "/api/ecs_oe_admin/illegallyType/export?$key=" +
+            this.user.key +
+            "&$token=" +
+            this.user.token +
+            "&" +
+            param
+        );
+      });
     },
     },
     //导入
     //导入
     impIllegallyType() {
     impIllegallyType() {

+ 9 - 3
src/modules/oe/views/scoreDetail.vue

@@ -394,9 +394,15 @@ export default {
               this.asyncExportData();
               this.asyncExportData();
             });
             });
           } else {
           } else {
-            this.dialogExportTypeVisible = false;
-            // this._exportData();
-            this.asyncExportData();
+            this.$confirm("确定执行导出?", "提示", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning",
+            }).then(() => {
+              this.dialogExportTypeVisible = false;
+              // this._exportData();
+              this.asyncExportData();
+            });
           }
           }
         });
         });
     },
     },

+ 22 - 10
src/modules/oe/views/scoreStatistic.vue

@@ -413,18 +413,30 @@ export default {
         });
         });
     },
     },
     exportOrgStatisticExcel() {
     exportOrgStatisticExcel() {
-      const { examId, orgId } = this.searchParams;
-      let key = this.user.key;
-      let token = this.user.token;
-      let url = `/api/ecs_oe_admin/exam/statistic/overview/for/org/export?examId=${examId}&orgId=${orgId}&$key=${key}&$token=${token}`;
-      location.href = url;
+      this.$confirm("确定执行导出?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        const { examId, orgId } = this.searchParams;
+        let key = this.user.key;
+        let token = this.user.token;
+        let url = `/api/ecs_oe_admin/exam/statistic/overview/for/org/export?examId=${examId}&orgId=${orgId}&$key=${key}&$token=${token}`;
+        location.href = url;
+      });
     },
     },
     exportCourseStatisticExcel() {
     exportCourseStatisticExcel() {
-      const { examId, courseId } = this.searchParams;
-      let key = this.user.key;
-      let token = this.user.token;
-      let url = `/api/ecs_oe_admin/exam/statistic/overview/for/course/export?examId=${examId}&courseId=${courseId}&$key=${key}&$token=${token}`;
-      location.href = url;
+      this.$confirm("确定执行导出?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        const { examId, courseId } = this.searchParams;
+        let key = this.user.key;
+        let token = this.user.token;
+        let url = `/api/ecs_oe_admin/exam/statistic/overview/for/course/export?examId=${examId}&courseId=${courseId}&$key=${key}&$token=${token}`;
+        location.href = url;
+      });
     },
     },
     refreshHandler() {
     refreshHandler() {
       this.refreshing = true;
       this.refreshing = true;