Przeglądaj źródła

考生日志和报表相关修改

zhangjie 4 lat temu
rodzic
commit
3485737993

+ 6 - 7
src/features/invigilation/ExamReport/BreachDetailDialog.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <el-dialog
   <el-dialog
-    class="exception-detail-dialog"
+    class="breach-detail-dialog gray-dialog"
     :visible.sync="modalIsShow"
     :visible.sync="modalIsShow"
     title="违纪明细"
     title="违纪明细"
     width="1000px"
     width="1000px"
@@ -16,12 +16,11 @@
         label="违纪处理/撤销违纪"
         label="违纪处理/撤销违纪"
       ></el-table-column>
       ></el-table-column>
       <el-table-column prop="createName" label="操作人"></el-table-column>
       <el-table-column prop="createName" label="操作人"></el-table-column>
-      <el-table-column
-        prop="endTime"
-        label="异常处理结束时间"
-      ></el-table-column>
+      <el-table-column prop="endTime" label="异常处理结束时间">
+        <span slot-scope="scope">{{ scope.row.endTime | datetimeFilter }}</span>
+      </el-table-column>
       <el-table-column prop="type" label="类型/原因"></el-table-column>
       <el-table-column prop="type" label="类型/原因"></el-table-column>
-      <el-table-column prop="remark" label="详情备注"></el-table-column>
+      <el-table-column prop="description" label="详情备注"></el-table-column>
     </el-table>
     </el-table>
     <div class="part-page">
     <div class="part-page">
       <el-pagination
       <el-pagination
@@ -46,7 +45,7 @@ import {
 } from "@/api/invigilation";
 } from "@/api/invigilation";
 
 
 export default {
 export default {
-  name: "exception-detail-dialog",
+  name: "breach-detail-dialog",
   props: {
   props: {
     detailId: {
     detailId: {
       type: [String, Number],
       type: [String, Number],

+ 17 - 14
src/features/invigilation/ExamReport/ExceptionDetailDialog.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <el-dialog
   <el-dialog
-    class="exception-detail-dialog"
+    class="exception-detail-dialog gray-dialog"
     :visible.sync="modalIsShow"
     :visible.sync="modalIsShow"
     title="异常处理明细"
     title="异常处理明细"
     width="1000px"
     width="1000px"
@@ -11,19 +11,16 @@
     @open="visibleChange"
     @open="visibleChange"
   >
   >
     <el-table ref="TableList" :data="dataList">
     <el-table ref="TableList" :data="dataList">
-      <el-table-column
-        prop="startTime"
-        label="异常处理开始时间"
-      ></el-table-column>
-      <el-table-column
-        prop="endTime"
-        label="异常处理结束时间"
-      ></el-table-column>
+      <el-table-column prop="startTime" label="异常处理开始时间">
+        <span slot-scope="scope">{{
+          scope.row.startTime | datetimeFilter
+        }}</span>
+      </el-table-column>
+      <el-table-column prop="endTime" label="异常处理结束时间">
+        <span slot-scope="scope">{{ scope.row.endTime | datetimeFilter }}</span>
+      </el-table-column>
       <el-table-column prop="reason" label="异常原因"></el-table-column>
       <el-table-column prop="reason" label="异常原因"></el-table-column>
-      <el-table-column
-        prop="totalTime"
-        label="持续时长(单位:分钟)"
-      ></el-table-column>
+      <el-table-column prop="totalTimeStr" label="持续时长"></el-table-column>
     </el-table>
     </el-table>
     <div class="part-page">
     <div class="part-page">
       <el-pagination
       <el-pagination
@@ -43,6 +40,7 @@
 
 
 <script>
 <script>
 import { reportExceptionDetail } from "@/api/invigilation";
 import { reportExceptionDetail } from "@/api/invigilation";
+import { timeNumberToText } from "@/utils/utils";
 
 
 export default {
 export default {
   name: "exception-detail-dialog",
   name: "exception-detail-dialog",
@@ -74,7 +72,12 @@ export default {
 
 
       const res = await reportExceptionDetail(datas);
       const res = await reportExceptionDetail(datas);
 
 
-      this.dataList = res.data.data.records;
+      this.dataList = res.data.data.records.map((item) => {
+        return {
+          ...item,
+          totalTimeStr: timeNumberToText(item.totalTime * 1000),
+        };
+      });
       this.total = res.data.data.total;
       this.total = res.data.data.total;
     },
     },
     toPage(page) {
     toPage(page) {

+ 1 - 7
src/features/invigilation/ExamReport/ReportBreach.vue

@@ -16,13 +16,7 @@
           >{{ scope.row.courseName }}({{ scope.row.courseCode }})</span
           >{{ scope.row.courseName }}({{ scope.row.courseCode }})</span
         ></el-table-column
         ></el-table-column
       >
       >
-      <el-table-column prop="breachStatus" label="违纪/正常">
-        <template slot-scope="scope">
-          <span :class="{ 'color-danger': !scope.row.breachStatus }">
-            {{ !scope.row.breachStatus ? "违纪" : "正常" }}
-          </span>
-        </template>
-      </el-table-column>
+      <el-table-column prop="breachStatus" label="违纪/正常"> </el-table-column>
       <el-table-column label="操作">
       <el-table-column label="操作">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <el-button
           <el-button

+ 1 - 7
src/features/invigilation/ExamReport/ReportCancalBreach.vue

@@ -16,13 +16,7 @@
           {{ scope.row.courseName }}({{ scope.row.courseCode }})
           {{ scope.row.courseName }}({{ scope.row.courseCode }})
         </span>
         </span>
       </el-table-column>
       </el-table-column>
-      <el-table-column prop="breachStatus" label="违纪/正常">
-        <template slot-scope="scope">
-          <span :class="{ 'color-danger': !scope.row.breachStatus }">
-            {{ !scope.row.breachStatus ? "违纪" : "正常" }}
-          </span>
-        </template>
-      </el-table-column>
+      <el-table-column prop="breachStatus" label="违纪/正常"> </el-table-column>
       <el-table-column label="操作">
       <el-table-column label="操作">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <el-button
           <el-button

+ 11 - 3
src/features/invigilation/ExamReport/ReportException.vue

@@ -18,8 +18,8 @@
       >
       >
       <el-table-column prop="exceptionCount" label="次数"></el-table-column>
       <el-table-column prop="exceptionCount" label="次数"></el-table-column>
       <el-table-column
       <el-table-column
-        prop="exceptionTotalTime"
-        label="累积持续时长(单位:分钟)"
+        prop="exceptionTotalTimeStr"
+        label="累积持续时长"
       ></el-table-column>
       ></el-table-column>
       <el-table-column label="操作">
       <el-table-column label="操作">
         <template slot-scope="scope">
         <template slot-scope="scope">
@@ -56,6 +56,7 @@
 <script>
 <script>
 import { reportExceptionData } from "@/api/invigilation";
 import { reportExceptionData } from "@/api/invigilation";
 import ExceptionDetailDialog from "./ExceptionDetailDialog";
 import ExceptionDetailDialog from "./ExceptionDetailDialog";
+import { timeNumberToText } from "@/utils/utils";
 
 
 export default {
 export default {
   name: "report-exception",
   name: "report-exception",
@@ -90,7 +91,14 @@ export default {
 
 
       const res = await reportExceptionData(datas);
       const res = await reportExceptionData(datas);
 
 
-      this.dataList = res.data.data.records;
+      this.dataList = res.data.data.records.map((item) => {
+        return {
+          ...item,
+          exceptionTotalTimeStr: timeNumberToText(
+            item.exceptionTotalTime * 1000
+          ),
+        };
+      });
       this.total = res.data.data.total;
       this.total = res.data.data.total;
     },
     },
     toPage(page) {
     toPage(page) {

+ 1 - 0
src/features/invigilation/OnlinePatrol/PatrolWarningDetail.vue

@@ -277,6 +277,7 @@ export default {
       const transformInfo = {
       const transformInfo = {
         FIRST_START: "身份识别",
         FIRST_START: "身份识别",
         ANSWERING: "进入考试",
         ANSWERING: "进入考试",
+        RESUME_START: "身份识别",
       };
       };
       let statusTypeMap = {};
       let statusTypeMap = {};
       Object.keys(statusTypes).map((k) => {
       Object.keys(statusTypes).map((k) => {

+ 1 - 0
src/features/invigilation/RealtimeMonitoring/WarningDetail.vue

@@ -446,6 +446,7 @@ export default {
       const transformInfo = {
       const transformInfo = {
         FIRST_START: "身份识别",
         FIRST_START: "身份识别",
         ANSWERING: "进入考试",
         ANSWERING: "进入考试",
+        RESUME_START: "身份识别",
       };
       };
       let statusTypeMap = {};
       let statusTypeMap = {};
       Object.keys(statusTypes).map((k) => {
       Object.keys(statusTypes).map((k) => {

+ 5 - 1
src/features/invigilation/StudentLogManage/StudentLogDetailDialog.vue

@@ -11,7 +11,11 @@
     @open="visibleChange"
     @open="visibleChange"
   >
   >
     <el-table ref="TableList" :data="dataList">
     <el-table ref="TableList" :data="dataList">
-      <el-table-column prop="creatTime" label="发生时间"></el-table-column>
+      <el-table-column prop="creatTime" label="发生时间">
+        <span slot-scope="scope">{{
+          scope.row.creatTime | datetimeFilter
+        }}</span>
+      </el-table-column>
       <el-table-column prop="type" label="事件类型"></el-table-column>
       <el-table-column prop="type" label="事件类型"></el-table-column>
       <el-table-column prop="remark" label="详情"></el-table-column>
       <el-table-column prop="remark" label="详情"></el-table-column>
     </el-table>
     </el-table>

+ 10 - 17
src/features/invigilation/StudentLogManage/StudentLogManage.vue

@@ -7,20 +7,6 @@
     <div class="part-filter">
     <div class="part-filter">
       <div class="part-filter-form">
       <div class="part-filter-form">
         <el-form ref="FilterForm" label-position="left" inline>
         <el-form ref="FilterForm" label-position="left" inline>
-          <el-form-item>
-            <el-select
-              v-model="filter.taskId"
-              placeholder="请选择考试任务"
-              clearable
-            >
-              <el-option
-                v-for="item in examTasks"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              ></el-option>
-            </el-select>
-          </el-form-item>
           <el-form-item>
           <el-form-item>
             <el-select
             <el-select
               v-model="filter.examId"
               v-model="filter.examId"
@@ -147,7 +133,6 @@ export default {
   data() {
   data() {
     return {
     return {
       filter: {
       filter: {
-        taskId: null,
         examId: null,
         examId: null,
         roomCode: null,
         roomCode: null,
         courseCode: null,
         courseCode: null,
@@ -166,7 +151,16 @@ export default {
       curLogId: "",
       curLogId: "",
     };
     };
   },
   },
+  mounted() {
+    this.initData();
+  },
   methods: {
   methods: {
+    async initData() {
+      await this.getExamBatchList();
+      this.filter.examId = this.examBatchs[0] && this.examBatchs[0].id;
+      this.getExamActivityRoomList();
+      this.toPage(1);
+    },
     async getList() {
     async getList() {
       const datas = {
       const datas = {
         ...this.filter,
         ...this.filter,
@@ -201,8 +195,7 @@ export default {
       this.getExamActivityRoomList();
       this.getExamActivityRoomList();
     },
     },
     toDetail(row) {
     toDetail(row) {
-      console.log(row);
-      this.curLogId = row.id;
+      this.curLogId = row.examStudentId;
       this.$refs.StudentLogDetailDialog.open();
       this.$refs.StudentLogDetailDialog.open();
     },
     },
   },
   },

+ 10 - 0
src/styles/base.scss

@@ -828,3 +828,13 @@ body {
     display: none;
     display: none;
   }
   }
 }
 }
+
+// gray-dialog
+.gray-dialog {
+  .el-dialog {
+    background: #f0f4f9;
+    .el-dialog__body {
+      padding-top: 5px;
+    }
+  }
+}