|
@@ -20,6 +20,20 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-select
|
|
|
+ v-model="form.examActivityId"
|
|
|
+ placeholder="请选择场次"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in examActivities"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.code"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-select
|
|
|
v-model="form.roomCode"
|
|
@@ -58,6 +72,20 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-select
|
|
|
+ v-model="form.breachStatus"
|
|
|
+ placeholder="违纪状态"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(val, key) in BOOLEAN_TYPE"
|
|
|
+ :key="key"
|
|
|
+ :value="key * 1"
|
|
|
+ :label="key === '0' ? '违纪' : '正常'"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-input
|
|
|
v-model.trim="form.name"
|
|
@@ -79,10 +107,11 @@
|
|
|
</div>
|
|
|
<div class="part-filter-info">
|
|
|
<summary-line
|
|
|
+ v-if="form.examId"
|
|
|
class="part-filter-info-main"
|
|
|
data-type="progress"
|
|
|
:exam-id="form.examId"
|
|
|
- v-if="form.examId"
|
|
|
+ :exam-activity-id="form.examActivityId"
|
|
|
></summary-line>
|
|
|
<div class="part-filter-info-sub">
|
|
|
<el-button
|
|
@@ -110,7 +139,6 @@
|
|
|
</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="mobileNumber" label="联系电话"></el-table-column>
|
|
|
<el-table-column prop="courseName" label="科目(代码)">
|
|
|
<span slot-scope="scope"
|
|
|
>{{ scope.row.courseName }}({{ scope.row.courseCode }})</span
|
|
@@ -121,6 +149,13 @@
|
|
|
label="剩余考试次数"
|
|
|
></el-table-column>
|
|
|
<el-table-column prop="status" label="完成状态"></el-table-column>
|
|
|
+ <el-table-column prop="breachStatus" label="违纪状态" width="100">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span :class="{ 'color-danger': !scope.row.breachStatus }">
|
|
|
+ {{ !scope.row.breachStatus ? "违纪" : "正常" }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column :context="_self" label="操作" width="120" fixed="right">
|
|
|
<div slot-scope="scope">
|
|
|
<el-button
|
|
@@ -178,11 +213,13 @@ export default {
|
|
|
return {
|
|
|
form: {
|
|
|
examId: "",
|
|
|
+ examActivityId: "",
|
|
|
roomCode: "",
|
|
|
courseCode: "",
|
|
|
name: "",
|
|
|
identity: "",
|
|
|
status: null,
|
|
|
+ breachStatus: null,
|
|
|
},
|
|
|
currentPage: 1,
|
|
|
total: 0,
|
|
@@ -216,7 +253,7 @@ export default {
|
|
|
});
|
|
|
this.form.examId = this.selectedExamId;
|
|
|
// this.form.examId = this.examBatchs[0] && this.examBatchs[0].id;
|
|
|
- this.getExamActivityRoomList();
|
|
|
+ await this.getExamActivityRoomList();
|
|
|
this.toPage(1);
|
|
|
window.sessionStorage.removeItem("studentManageCache");
|
|
|
},
|
|
@@ -246,9 +283,24 @@ export default {
|
|
|
async getExamActivityRoomList() {
|
|
|
if (!this.form.examId) return;
|
|
|
const res = await examActivityRoomList(this.form.examId);
|
|
|
- this.examActivities = res.data.data.examActivitys;
|
|
|
+ this.examActivities = this.getExamActivities(res.data.data.examActivitys);
|
|
|
this.examRooms = res.data.data.examRooms;
|
|
|
this.examCourses = res.data.data.examCourses;
|
|
|
+ this.form.examActivityId =
|
|
|
+ this.examActivities[0] && this.examActivities[0].id;
|
|
|
+ },
|
|
|
+ getExamActivities(examActivitys) {
|
|
|
+ if (!examActivitys.length) return [];
|
|
|
+ const now = Date.now();
|
|
|
+ examActivitys.forEach((item) => {
|
|
|
+ item.endRemainTime = item.finishTime - now;
|
|
|
+ });
|
|
|
+ examActivitys.sort((a, b) => {
|
|
|
+ if (a.endRemainTime < 0) return 1;
|
|
|
+ if (b.endRemainTime < 0) return -1;
|
|
|
+ return a.endRemainTime - b.endRemainTime;
|
|
|
+ });
|
|
|
+ return examActivitys;
|
|
|
},
|
|
|
examChange() {
|
|
|
this.form.examActivityId = null;
|