|
@@ -36,11 +36,6 @@
|
|
|
<div class="part-filter part-filter-realtime">
|
|
|
<div class="part-filter-form">
|
|
|
<el-form inline>
|
|
|
- <el-form-item>
|
|
|
- <div :title="curExamBatch.roomName">
|
|
|
- <el-input v-model="curExamBatch.roomName" readonly></el-input>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
<el-form-item>
|
|
|
<div @click="$refs.ExamBatchDialog.open()">
|
|
|
<el-input
|
|
@@ -52,6 +47,23 @@
|
|
|
></el-input>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-select
|
|
|
+ v-model="filter.roomCode"
|
|
|
+ class="size-select"
|
|
|
+ placeholder="考场"
|
|
|
+ @change="examRoomChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in examRooms"
|
|
|
+ :key="item.roomCode"
|
|
|
+ :label="item.roomName"
|
|
|
+ :value="item.roomCode"
|
|
|
+ >
|
|
|
+ <span>{{ item.roomName }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
<div class="part-filter-form-action">
|
|
|
<text-clock></text-clock>
|
|
@@ -317,6 +329,7 @@
|
|
|
<script>
|
|
|
import {
|
|
|
invigilateVideoList,
|
|
|
+ examRoomList,
|
|
|
invigilateExamFinish,
|
|
|
monitorCallCount,
|
|
|
invigilationWarningMessage,
|
|
@@ -350,9 +363,9 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
initExamid: this.$route.params.examId,
|
|
|
- initRoomCode: this.$route.params.roomCode,
|
|
|
filter: {
|
|
|
examId: "",
|
|
|
+ roomCode: "",
|
|
|
paperDownload: null,
|
|
|
status: null,
|
|
|
monitorStatusSource: null,
|
|
@@ -387,6 +400,7 @@ export default {
|
|
|
subjects: [],
|
|
|
pageType: "0",
|
|
|
dataList: [],
|
|
|
+ examRooms: [],
|
|
|
videoSourceStatusParams: {
|
|
|
CLIENT_CAMERA: "cameraMonitorStatusSource",
|
|
|
CLIENT_SCREEN: "screenMonitorStatusSource",
|
|
@@ -416,7 +430,7 @@ export default {
|
|
|
},
|
|
|
async timerUpdatePage() {
|
|
|
this.clearLoopSetTs();
|
|
|
- if (!this.loopRunning) return;
|
|
|
+ if (!this.loopRunning || !this.filter.examId) return;
|
|
|
|
|
|
let fetchAll = [this.getList()];
|
|
|
if (this.$refs.SummaryLine)
|
|
@@ -462,13 +476,26 @@ export default {
|
|
|
this.curViewingAngle = this.viewingAngles[0] || {};
|
|
|
this.filter.monitorVideoSource = this.curViewingAngle.code || "";
|
|
|
|
|
|
+ this.filter.roomCode = "";
|
|
|
+ this.getExamRooms();
|
|
|
+ },
|
|
|
+ async getExamRooms() {
|
|
|
+ this.examRooms = [];
|
|
|
+ if (!this.curExamBatch.code) return;
|
|
|
+ const res = await examRoomList(this.curExamBatch.code);
|
|
|
+ this.examRooms = res.data.data || [];
|
|
|
+
|
|
|
+ this.filter.roomCode = this.examRooms[0] && this.examRooms[0].roomCode;
|
|
|
+ this.examRoomChange();
|
|
|
+ },
|
|
|
+ examRoomChange() {
|
|
|
this.toSearch();
|
|
|
|
|
|
this.getMonitorCallCount();
|
|
|
this.fetchWarningNotice();
|
|
|
|
|
|
// 正在考试的考试,开启定时更新;
|
|
|
- if (examBatch.isExaming) {
|
|
|
+ if (this.curExamBatch.isExaming) {
|
|
|
this.loopRunning = true;
|
|
|
this.clearLoopSetTs();
|
|
|
this.loopSetTs.push(
|
|
@@ -617,6 +644,7 @@ export default {
|
|
|
name: "VideoCommunication",
|
|
|
params: {
|
|
|
examId: this.filter.examId,
|
|
|
+ roomCode: this.filter.roomCode,
|
|
|
},
|
|
|
});
|
|
|
},
|