Selaa lähdekoodia

实时监控台筛选条件调整

zhangjie 4 vuotta sitten
vanhempi
commit
f27e811081

+ 5 - 0
src/constant/constants.js

@@ -35,6 +35,11 @@ export const BOOLEAN_INVERSE_TYPE = {
   1: "否",
   0: "是",
 };
+// 通讯故障类型
+export const MONITOR_STATUS_TYPE = {
+  STOP: "是",
+  START: "否",
+};
 // 视频流类型
 export const VIDEO_SOURCE_TYPE = {
   CLIENT_CAMERA: "电脑摄像头",

+ 18 - 7
src/features/invigilation/RealtimeMonitoring/RealtimeMonitoring.vue

@@ -94,16 +94,16 @@
               ></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item>
+          <el-form-item v-for="source in viewingAngles" :key="source.code">
             <el-select
-              v-model="filter.monitorStatusSource"
-              placeholder="通讯故障"
+              v-model="monitorStatusFilter[source.filterParam]"
+              :placeholder="`${source.name}通讯故障`"
               clearable
             >
               <el-option
-                v-for="(val, key) in BOOLEAN_TYPE"
+                v-for="(val, key) in MONITOR_STATUS_TYPE"
                 :key="key"
-                :value="key * 1"
+                :value="key"
                 :label="val"
               ></el-option>
             </el-select>
@@ -311,12 +311,12 @@ import SummaryLine from "../common/SummaryLine";
 import handleRollupDialog from "./handleRollupDialog";
 import TextClock from "../common/TextClock";
 import {
-  BOOLEAN_TYPE,
   VIDEO_SOURCE_TYPE,
   BOOLEAN_INVERSE_TYPE,
   STUDENT_ONLINE_STATUS,
   CLIENT_WEBSOCKET_STATUS,
   MONITOR_STATUS_SOURCE,
+  MONITOR_STATUS_TYPE,
 } from "@/constant/constants";
 import { mapState, mapMutations, mapActions } from "vuex";
 
@@ -345,12 +345,13 @@ export default {
         maxWarningCount: undefined,
         minWarningCount: undefined,
       },
-      BOOLEAN_TYPE,
+      monitorStatusFilter: {},
       VIDEO_SOURCE_TYPE,
       BOOLEAN_INVERSE_TYPE,
       STUDENT_ONLINE_STATUS,
       CLIENT_WEBSOCKET_STATUS,
       MONITOR_STATUS_SOURCE,
+      MONITOR_STATUS_TYPE,
       hasNewWarning: false,
       loopRunning: false,
       loopSetTs: [],
@@ -417,16 +418,25 @@ export default {
       if (!examBatch) return;
       this.filter.examId = examBatch.id;
       this.curExamBatch = examBatch;
+      const monitorStatusFilter = {};
       if (examBatch.monitorVideoSource) {
         this.viewingAngles = examBatch.monitorVideoSource
           .split(",")
           .map((item) => {
+            const filterParam = this.videoSourceStatusParams[item].replace(
+              "Source",
+              ""
+            );
+
+            monitorStatusFilter[filterParam] = null;
             return {
               code: item,
               name: this.VIDEO_SOURCE_TYPE[item],
               param: this.videoSourceStatusParams[item],
+              filterParam,
             };
           });
+        this.monitorStatusFilter = monitorStatusFilter;
       } else {
         this.viewingAngles = [];
       }
@@ -466,6 +476,7 @@ export default {
     async getList() {
       const datas = {
         ...this.filter,
+        ...this.monitorStatusFilter,
         pageNumber: this.current,
         pageSize: this.size,
       };