|
@@ -14,7 +14,7 @@
|
|
|
>
|
|
|
<el-form-item>
|
|
|
<el-select
|
|
|
- v-model="filter.batchId"
|
|
|
+ v-model="filter.examId"
|
|
|
placeholder="请选择批次"
|
|
|
clearable
|
|
|
>
|
|
@@ -28,7 +28,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-select
|
|
|
- v-model="filter.examroom"
|
|
|
+ v-model="filter.examActivityId"
|
|
|
placeholder="请选择场次"
|
|
|
clearable
|
|
|
>
|
|
@@ -42,7 +42,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-select
|
|
|
- v-model="filter.examroom"
|
|
|
+ v-model="filter.examActivityId"
|
|
|
placeholder="请选择考场"
|
|
|
clearable
|
|
|
>
|
|
@@ -56,7 +56,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-select
|
|
|
- v-model="filter.subjectId"
|
|
|
+ v-model="filter.courseCode"
|
|
|
placeholder="请选择科目"
|
|
|
clearable
|
|
|
>
|
|
@@ -70,14 +70,14 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-input
|
|
|
- v-model.trim="filter.content"
|
|
|
+ v-model.trim="filter.name"
|
|
|
placeholder="姓名/证件号"
|
|
|
clearable
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-select
|
|
|
- v-model="filter.subjectId"
|
|
|
+ v-model="filter.finishType"
|
|
|
placeholder="交卷方式"
|
|
|
clearable
|
|
|
>
|
|
@@ -90,11 +90,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-select
|
|
|
- v-model="filter.subjectId"
|
|
|
- placeholder="筛选状态"
|
|
|
- clearable
|
|
|
- >
|
|
|
+ <el-select v-model="filter.status" placeholder="筛选状态" clearable>
|
|
|
<el-option
|
|
|
v-for="item in subjects"
|
|
|
:key="item.id"
|
|
@@ -105,7 +101,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-select
|
|
|
- v-model="filter.subjectId"
|
|
|
+ v-model="filter.breachStatus"
|
|
|
placeholder="违纪/缺考"
|
|
|
clearable
|
|
|
>
|
|
@@ -117,53 +113,56 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="陌生人脸">
|
|
|
+ <el-form-item label="陌生人脸" v-if="showAdvancedFilter">
|
|
|
<el-input-number
|
|
|
style="width: 52px;"
|
|
|
- v-model.trim="filter.strangePersonDown"
|
|
|
+ v-model.trim="filter.minMultipleFaceCount"
|
|
|
placeholder="下限"
|
|
|
:controls="false"
|
|
|
></el-input-number>
|
|
|
<span class="line-split">-</span>
|
|
|
<el-input-number
|
|
|
style="width: 52px;"
|
|
|
- v-model.trim="filter.strangePersonUp"
|
|
|
+ v-model.trim="filter.maxMultipleFaceCount"
|
|
|
placeholder="上限"
|
|
|
:controls="false"
|
|
|
></el-input-number>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="异常处理">
|
|
|
+ <el-form-item label="异常处理" v-if="showAdvancedFilter">
|
|
|
<el-input-number
|
|
|
style="width: 52px;"
|
|
|
- v-model.trim="filter.exceptionDown"
|
|
|
+ v-model.trim="filter.minExceptionCount"
|
|
|
placeholder="下限"
|
|
|
:controls="false"
|
|
|
></el-input-number>
|
|
|
<span class="line-split">-</span>
|
|
|
<el-input-number
|
|
|
style="width: 52px;"
|
|
|
- v-model.trim="filter.exceptionUp"
|
|
|
+ v-model.trim="filter.maxExceptionCount"
|
|
|
placeholder="上限"
|
|
|
:controls="false"
|
|
|
></el-input-number>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="预警数">
|
|
|
+ <el-form-item label="预警数" v-if="showAdvancedFilter">
|
|
|
<el-input-number
|
|
|
style="width: 52px;"
|
|
|
- v-model.trim="filter.warningDown"
|
|
|
+ v-model.trim="filter.minWarningCount"
|
|
|
placeholder="下限"
|
|
|
:controls="false"
|
|
|
></el-input-number>
|
|
|
<span class="line-split">-</span>
|
|
|
<el-input-number
|
|
|
style="width: 52px;"
|
|
|
- v-model.trim="filter.warningUp"
|
|
|
+ v-model.trim="filter.maxWarningCount"
|
|
|
placeholder="上限"
|
|
|
:controls="false"
|
|
|
></el-input-number>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="toPage(1)">查询</el-button>
|
|
|
+ <el-button type="primary" @click="changeFilter">{{
|
|
|
+ showAdvancedFilter ? "隐藏高级查询" : "高级查询"
|
|
|
+ }}</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</div>
|
|
@@ -171,16 +170,40 @@
|
|
|
<div class="part-filter-info">
|
|
|
<div class="part-filter-info-main summary-line">
|
|
|
<p class="summary-line-item">
|
|
|
- <i class="icon icon-users"></i
|
|
|
- ><span class="line-name">全部应考</span><span>50人</span>
|
|
|
+ <i class="icon icon-users"></i>
|
|
|
+ <el-popover
|
|
|
+ placement="top-start"
|
|
|
+ width="200"
|
|
|
+ trigger="hover"
|
|
|
+ content="全部应考:参加考试的全部考生。"
|
|
|
+ >
|
|
|
+ <span class="line-name" slot="reference">全部应考</span>
|
|
|
+ </el-popover>
|
|
|
+ <span>{{ examPropData.allCount }}人</span>
|
|
|
</p>
|
|
|
<p class="summary-line-item">
|
|
|
- <i class="line-point line-point-info"></i
|
|
|
- ><span class="line-name">已登录</span><span>5人</span>
|
|
|
+ <i class="line-point line-point-info"></i>
|
|
|
+ <el-popover
|
|
|
+ placement="top-start"
|
|
|
+ width="200"
|
|
|
+ trigger="hover"
|
|
|
+ content="已登录:已成功登录考生端的考生。"
|
|
|
+ >
|
|
|
+ <span class="line-name" slot="reference">已登录</span>
|
|
|
+ </el-popover>
|
|
|
+ <span>{{ examPropData.loginCount }}人</span>
|
|
|
</p>
|
|
|
<p class="summary-line-item">
|
|
|
- <i class="line-point line-point-success"></i
|
|
|
- ><span class="line-name">已待考</span><span>3人</span>
|
|
|
+ <i class="line-point line-point-success"></i>
|
|
|
+ <el-popover
|
|
|
+ placement="top-start"
|
|
|
+ width="200"
|
|
|
+ trigger="hover"
|
|
|
+ content="已待考:已进入待考界面等待开考的考生。"
|
|
|
+ >
|
|
|
+ <span class="line-name" slot="reference">已待考</span>
|
|
|
+ </el-popover>
|
|
|
+ <span>{{ examPropData.prepareCount }}人</span>
|
|
|
</p>
|
|
|
<p class="summary-line-item">
|
|
|
<i class="line-point line-point-primary"></i>
|
|
@@ -188,15 +211,24 @@
|
|
|
placement="top-start"
|
|
|
width="200"
|
|
|
trigger="hover"
|
|
|
- content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。"
|
|
|
+ content="考试中:正在答题的考生。"
|
|
|
>
|
|
|
<span class="line-name" slot="reference">考试中</span>
|
|
|
</el-popover>
|
|
|
- <span>2人</span>
|
|
|
+ <span>{{ examPropData.notComplete }}人</span>
|
|
|
</p>
|
|
|
<p class="summary-line-item">
|
|
|
<i class="line-point line-point-danger"></i>
|
|
|
- <span class="line-name">已交卷</span><span>1人</span>
|
|
|
+ <!-- <el-popover
|
|
|
+ placement="top-start"
|
|
|
+ width="200"
|
|
|
+ trigger="hover"
|
|
|
+ content="已交卷:考生交卷成功,结束考试。"
|
|
|
+ >
|
|
|
+ <span class="line-name" slot="reference">已交卷</span>
|
|
|
+ </el-popover> -->
|
|
|
+ <span class="line-name">已交卷</span>
|
|
|
+ <span>{{ examPropData.alreadyComplete }}人</span>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -205,21 +237,26 @@
|
|
|
<el-table ref="TableList" :data="dataList">
|
|
|
<el-table-column prop="batchName" label="批次"></el-table-column>
|
|
|
<el-table-column prop="examName" label="场次"></el-table-column>
|
|
|
- <el-table-column prop="examroom" label="考场"> </el-table-column>
|
|
|
+ <el-table-column prop="roomName" label="考场"> </el-table-column>
|
|
|
<el-table-column prop="examId" label="考试ID"></el-table-column>
|
|
|
- <el-table-column prop="stdCardNo" label="证件号"></el-table-column>
|
|
|
- <el-table-column prop="stdName" label="姓名"></el-table-column>
|
|
|
+ <el-table-column prop="identity" label="证件号"></el-table-column>
|
|
|
+ <el-table-column prop="name" label="姓名"></el-table-column>
|
|
|
<el-table-column prop="subjectName" label="联系电话"></el-table-column>
|
|
|
- <el-table-column prop="subjectCode" label="科目(代码)"></el-table-column>
|
|
|
- <el-table-column prop="strangeNumber" label="状态"></el-table-column>
|
|
|
- <el-table-column prop="strangeNumber" label="交卷方式"></el-table-column>
|
|
|
- <el-table-column prop="strangeNumber" label="陌生人脸"></el-table-column>
|
|
|
+ <el-table-column prop="courseNameCode" label="科目(代码)">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="status" label="状态"></el-table-column>
|
|
|
+ <el-table-column prop="finishType" label="交卷方式">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div>{{ FINISH_TYPE[scope.row.finishType] }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="exceptionNumber"
|
|
|
- label="异常处理"
|
|
|
+ prop="multipleFaceCount"
|
|
|
+ label="陌生人脸"
|
|
|
></el-table-column>
|
|
|
- <el-table-column prop="warningNumber" label="预警数"></el-table-column>
|
|
|
- <el-table-column prop="isDiscipline" label="违纪"></el-table-column>
|
|
|
+ <el-table-column prop="exceptionCount" label="异常处理"></el-table-column>
|
|
|
+ <el-table-column prop="warningCount" label="预警数"></el-table-column>
|
|
|
+ <el-table-column prop="breachStatus" label="违纪"></el-table-column>
|
|
|
<el-table-column label="操作">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
@@ -247,59 +284,75 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { invigilationHistoryList, examPropCount } from "@/api/invigilation";
|
|
|
+import { FINISH_TYPE } from "@/constant/constants";
|
|
|
+
|
|
|
export default {
|
|
|
name: "invigilation-detail",
|
|
|
data() {
|
|
|
return {
|
|
|
filter: {
|
|
|
- batchId: null,
|
|
|
- examroom: null,
|
|
|
- subjectId: null,
|
|
|
+ examId: null,
|
|
|
+ examActivityId: null,
|
|
|
+ courseCode: null,
|
|
|
auditStatus: null,
|
|
|
- content: "",
|
|
|
- strangePersonUp: null,
|
|
|
- strangePersonDown: null,
|
|
|
- exceptionUp: null,
|
|
|
- exceptionDown: null,
|
|
|
- warningUp: null,
|
|
|
- warningDown: null,
|
|
|
+ name: "",
|
|
|
+ maxMultipleFaceCount: null,
|
|
|
+ minMultipleFaceCount: null,
|
|
|
+ maxExceptionCount: null,
|
|
|
+ minExceptionCount: null,
|
|
|
+ maxWarningCount: null,
|
|
|
+ minWarningCount: null,
|
|
|
},
|
|
|
+ showAdvancedFilter: false,
|
|
|
+ FINISH_TYPE,
|
|
|
current: 1,
|
|
|
total: 0,
|
|
|
size: 10,
|
|
|
batchs: [],
|
|
|
exams: [],
|
|
|
subjects: [],
|
|
|
- dataList: [
|
|
|
- {
|
|
|
- id: 1,
|
|
|
- batchName: "第一批次",
|
|
|
- examName: "第一场次",
|
|
|
- examroom: "第一考场",
|
|
|
- examId: "123456",
|
|
|
- stdCardNo: "000000000000000008",
|
|
|
- stdName: "张龙龙",
|
|
|
- subjectName: "大学英语",
|
|
|
- subjectCode: "10006",
|
|
|
- strangeNumber: "0",
|
|
|
- exceptionNumber: "2",
|
|
|
- warningNumber: "2",
|
|
|
- isDiscipline: "",
|
|
|
- auditStatus: "未阅",
|
|
|
- },
|
|
|
- ],
|
|
|
+ dataList: [],
|
|
|
+ examPropData: {},
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
- getList() {},
|
|
|
- toPage() {},
|
|
|
+ async getList() {
|
|
|
+ const datas = {
|
|
|
+ ...this.filter,
|
|
|
+ pageNumber: this.current - 1,
|
|
|
+ pageSize: this.size,
|
|
|
+ };
|
|
|
+
|
|
|
+ const res = await invigilationHistoryList(datas);
|
|
|
+
|
|
|
+ this.dataList = res.data.data.records;
|
|
|
+ this.total = res.data.data.records.total;
|
|
|
+ },
|
|
|
+ toPage(page) {
|
|
|
+ this.current = page;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ async getExamPropCount() {
|
|
|
+ this.examPropData = await examPropCount(this.filter.examId);
|
|
|
+ },
|
|
|
+ changeFilter() {
|
|
|
+ this.showAdvancedFilter = !this.showAdvancedFilter;
|
|
|
+ if (!this.showAdvancedFilter) {
|
|
|
+ this.filter.maxMultipleFaceCount = null;
|
|
|
+ this.filter.minMultipleFaceCount = null;
|
|
|
+ this.filter.maxExceptionCount = null;
|
|
|
+ this.filter.minExceptionCount = null;
|
|
|
+ this.filter.maxWarningCount = null;
|
|
|
+ this.filter.minWarningCount = null;
|
|
|
+ }
|
|
|
+ },
|
|
|
cleanUnread() {},
|
|
|
batchAction() {},
|
|
|
toDetail(row) {
|
|
|
- console.log(row);
|
|
|
this.$router.push({
|
|
|
name: "WainingDetail",
|
|
|
- params: { recordId: row.id },
|
|
|
+ params: { recordId: row.examRecordId },
|
|
|
});
|
|
|
},
|
|
|
},
|