|
|
@@ -10,46 +10,46 @@
|
|
|
<div class="max-add-form-box">
|
|
|
<el-form class="add-form-box" :model="newData" ref="form" label-width="140px" :rules="rules">
|
|
|
<div class="form-flex-box">
|
|
|
- <el-form-item label="复用原试卷" prop="data1">
|
|
|
+ <el-form-item label="复用原试卷" prop="reuseOriginalPaper">
|
|
|
<el-switch
|
|
|
- :active-value="true"
|
|
|
- :inactive-value="false"
|
|
|
- v-model="newData.data1"
|
|
|
+ :active-value="1"
|
|
|
+ :inactive-value="0"
|
|
|
+ v-model="newData.reuseOriginalPaper"
|
|
|
active-color="#0183FB"
|
|
|
inactive-color="#AAAAAA"
|
|
|
>
|
|
|
</el-switch>
|
|
|
</el-form-item>
|
|
|
- <p class="checkButton-p" v-if="!newData.data1" style="margin-left:20px;" @click="openPaperDrawer">选择试卷</p>
|
|
|
- <div class="selected-tag" v-if="newData.paperName && !newData.data1">
|
|
|
+ <p class="checkButton-p" v-if="newData.reuseOriginalPaper == 0" style="margin-left:20px;" @click="openPaperDrawer">选择试卷</p>
|
|
|
+ <div class="selected-tag" v-if="newData.paperName && newData.reuseOriginalPaper == 0">
|
|
|
<span>{{ newData.paperName }}</span>
|
|
|
<i class="el-icon-close" @click="newData.paperId = null; newData.paperName = ''"></i>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form-flex-box">
|
|
|
- <el-form-item label="补考时间" prop="dateRange">
|
|
|
+ <el-form-item label="补考时间" prop="examTimeRange">
|
|
|
<el-date-picker
|
|
|
- :clearable="false"
|
|
|
- v-model="newData.dateRange"
|
|
|
- size="small"
|
|
|
- style="width: 220px"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- type="daterange"
|
|
|
- range-separator="-"
|
|
|
+ popper-class="examinationArrange-addPage-date-picker"
|
|
|
+ v-model="newData.examTimeRange"
|
|
|
+ type="datetimerange"
|
|
|
+ range-separator="至"
|
|
|
+ format="yyyy-MM-dd HH:mm"
|
|
|
+ value-format="yyyy-MM-dd HH:mm"
|
|
|
start-placeholder="开始日期"
|
|
|
end-placeholder="结束日期"
|
|
|
- ></el-date-picker>
|
|
|
+ :picker-options="pickerOptions"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="form-flex-box">
|
|
|
- <el-form-item label="可补考次数" prop="data2">
|
|
|
+ <el-form-item label="可补考次数" prop="attemptLimit">
|
|
|
<el-input-number
|
|
|
class="form-input-number"
|
|
|
style="width:200px"
|
|
|
:min="1"
|
|
|
:max="9999"
|
|
|
:step="1" :precision="0" step-strictly
|
|
|
- v-model="newData.data2"
|
|
|
+ v-model="newData.attemptLimit"
|
|
|
>
|
|
|
</el-input-number>
|
|
|
</el-form-item>
|
|
|
@@ -58,30 +58,36 @@
|
|
|
</div>
|
|
|
<div class="page-form-title-box">
|
|
|
<el-form :model="queryParams" class="form-box" ref="queryForm"
|
|
|
- :inline="true" style="width:100%;"
|
|
|
- >
|
|
|
- <el-form-item label="" prop="queryParamsData1">
|
|
|
- <el-select v-model="queryParams.queryParamsData1" placeholder="学院单位" style="width: 140px">
|
|
|
- <el-option
|
|
|
- v-for="dict in optionListA"
|
|
|
- :key="dict.deptId"
|
|
|
- :label="dict.deptName"
|
|
|
- :value="dict.deptId"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="" prop="queryParamsData2">
|
|
|
- <el-select v-model="queryParams.queryParamsData2" multiple placeholder="学年" style="width: 140px">
|
|
|
+ :inline="true" style="width:100%;">
|
|
|
+ <el-form-item label="" prop="academicYear">
|
|
|
+ <el-select v-model="queryParams.academicYear" placeholder="学年" style="width: 140px">
|
|
|
<el-option
|
|
|
v-for="dict in optionListB"
|
|
|
- :key="dict.value"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
+ :key="dict.gradeNumber"
|
|
|
+ :label="dict.gradeNumber"
|
|
|
+ :value="dict.gradeNumber"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="" prop="queryParamsData3">
|
|
|
- <el-select v-model="queryParams.queryParamsData3" placeholder="专业" style="width: 140px">
|
|
|
+ <el-form-item label="" prop="deptId">
|
|
|
+ <el-cascader
|
|
|
+ style="width: 180px"
|
|
|
+ v-model="queryParams.deptId"
|
|
|
+ :options="optionListA"
|
|
|
+ :props="{
|
|
|
+ emitPath:false,
|
|
|
+ checkStrictly: true,
|
|
|
+ value: 'deptId',
|
|
|
+ label: 'deptName',
|
|
|
+ children: 'child',
|
|
|
+ }"
|
|
|
+ :show-all-levels="false"
|
|
|
+ filterable
|
|
|
+ placeholder="学院单位"
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="" prop="disciplineId">
|
|
|
+ <el-select v-model="queryParams.disciplineId" placeholder="专业" style="width: 140px">
|
|
|
<el-option
|
|
|
v-for="dict in optionListC"
|
|
|
:key="dict.id"
|
|
|
@@ -90,10 +96,10 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="" prop="queryParamsData4">
|
|
|
+ <el-form-item label="" prop="account">
|
|
|
<el-input
|
|
|
maxLength="30"
|
|
|
- v-model="queryParams.queryParamsData4"
|
|
|
+ v-model="queryParams.account"
|
|
|
placeholder="姓名/学工号"
|
|
|
style="width: 140px"
|
|
|
/>
|
|
|
@@ -107,19 +113,24 @@
|
|
|
</div>
|
|
|
<div class="page-content-box">
|
|
|
<el-table class="table-box" v-loading="loading" border :data="dataList">
|
|
|
- <el-table-column label="姓名" prop="name" show-overflow-tooltip/>
|
|
|
- <el-table-column label="学工号" prop="content" width="140" show-overflow-tooltip/>
|
|
|
- <el-table-column label="专业" prop="content" width="120" show-overflow-tooltip/>
|
|
|
- <el-table-column label="学年" prop="content" width="100" show-overflow-tooltip/>
|
|
|
- <el-table-column label="学院单位" prop="content" width="200" show-overflow-tooltip/>
|
|
|
- <el-table-column label="交卷时间" prop="content" width="140" show-overflow-tooltip>
|
|
|
+ <el-table-column label="姓名" prop="userName" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="学工号" prop="account" width="140" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="专业" prop="disciplineName" width="120" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="学年" prop="academicYear" width="100" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="学院单位" prop="deptName" width="200" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="交卷时间" prop="submitTime" width="140" show-overflow-tooltip>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ parseTime(scope.row.submitTime,'{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="用时" prop="durationText" width="100" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="成绩" prop="score" width="100" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="结果" prop="passStatus" width="100" show-overflow-tooltip>
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{ parseTime(scope.row.createTime,'{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
|
|
+ <span v-if="scope.row.resultStatus == 4" class="colorA">缺勤</span>
|
|
|
+ <span v-if="scope.row.resultStatus == 3" class="colorB">未通过</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="用时" prop="content" width="100" show-overflow-tooltip/>
|
|
|
- <el-table-column label="成绩" prop="content" width="100" show-overflow-tooltip/>
|
|
|
- <el-table-column label="结果" prop="content" width="100" show-overflow-tooltip/>
|
|
|
<el-table-column label="操作" width="200" show-overflow-tooltip>
|
|
|
<template slot-scope="scope">
|
|
|
<div class="table-button-box">
|
|
|
@@ -151,8 +162,8 @@
|
|
|
direction="rtl"
|
|
|
>
|
|
|
<!--选择试卷/选择试题-->
|
|
|
- <selectTestPaper v-if="drawerType === 1"></selectTestPaper>
|
|
|
- <examDetails v-if="drawerType === 2"></examDetails>
|
|
|
+ <selectTestPaper v-if="drawerType === 1&&drawer"></selectTestPaper>
|
|
|
+ <examDetails v-if="drawerType === 2&&drawer"></examDetails>
|
|
|
</el-drawer>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -161,7 +172,11 @@
|
|
|
import exportComponent from '@/components/exportComponent/exportComponent.vue'
|
|
|
import examDetails from '@/views/safetyEducationExaminationNew/components/examDetails.vue'
|
|
|
import selectTestPaper from './selectTestPaper.vue'
|
|
|
- import { examElDisciplineTypeList, systemDeptCurrentDept } from '@/api/safetyEducationExaminationNew/index'
|
|
|
+ import {
|
|
|
+ systemUserGetAcademicYear,
|
|
|
+ examElExamMakeupAdd,examElExamMakeupCandidates,
|
|
|
+ examElDisciplineTypeList, systemDeptCurrentDept
|
|
|
+ } from '@/api/safetyEducationExaminationNew/index'
|
|
|
|
|
|
export default {
|
|
|
name: 'addPage',
|
|
|
@@ -175,44 +190,51 @@
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ //日期选择范围限制
|
|
|
+ pickerOptions: {
|
|
|
+ disabledDate(time) {
|
|
|
+ return time.getTime() < Date.now() - 8.64e7;
|
|
|
+ }
|
|
|
+ },
|
|
|
//页面遮罩
|
|
|
loading: false,
|
|
|
newData: {
|
|
|
- data1: true,
|
|
|
- data2: 1,
|
|
|
- paperName: '试卷名称',
|
|
|
- paperId: '2',
|
|
|
- dateRange: [],
|
|
|
+ parentExamId:null,
|
|
|
+ reuseOriginalPaper: 1,
|
|
|
+ attemptLimit: 1,
|
|
|
+ paperId: null,
|
|
|
+ paperName: '',
|
|
|
+ examTimeRange: [],
|
|
|
},
|
|
|
rules:{
|
|
|
- data1: [
|
|
|
+ reuseOriginalPaper: [
|
|
|
{ required: true, message: "是否复用原试卷", trigger: "blur" },
|
|
|
{ required: true, message: "是否复用原试卷", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
],
|
|
|
- data2: [
|
|
|
+ attemptLimit: [
|
|
|
{ required: true, message: "请选择可补考次数", trigger: "blur" },
|
|
|
{ required: true, message: "请选择可补考次数", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
],
|
|
|
- dateRange: [
|
|
|
+ examTimeRange: [
|
|
|
{ required: true, message: "请选择补考时间", trigger: "blur" },
|
|
|
{ required: true, message: "请选择补考时间", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
],
|
|
|
},
|
|
|
//下拉列表数据
|
|
|
optionListA: [],
|
|
|
- optionListB: [],
|
|
|
+ optionListB: [{}],
|
|
|
optionListC: [],
|
|
|
//查询条件
|
|
|
queryParams: {
|
|
|
page: 1,
|
|
|
pageSize: 20,
|
|
|
- queryParamsData1: null,
|
|
|
- queryParamsData2: null,
|
|
|
- queryParamsData3: null,
|
|
|
- queryParamsData4: ''
|
|
|
+ deptId: null,
|
|
|
+ academicYear: null,
|
|
|
+ disciplineId: null,
|
|
|
+ account: ''
|
|
|
},
|
|
|
//列表数据
|
|
|
- dataList: [{}],
|
|
|
+ dataList: [],
|
|
|
//数据数量
|
|
|
total: 0,
|
|
|
exportConfig: {
|
|
|
@@ -233,16 +255,18 @@
|
|
|
|
|
|
},
|
|
|
mounted() {
|
|
|
+ this.$set(this.newData,'parentExamId',this.propsData.id);
|
|
|
+ this.getList()
|
|
|
this.examElDisciplineTypeList()
|
|
|
this.systemDeptCurrentDept()
|
|
|
+ this.systemUserGetAcademicYear()
|
|
|
},
|
|
|
methods: {
|
|
|
//弹窗返回
|
|
|
drawerReturnButton(){
|
|
|
- this.$refs.drawer.closeDrawer();
|
|
|
- },
|
|
|
- //弹窗确定
|
|
|
- drawerConfirmButton(){
|
|
|
+ //选择试卷
|
|
|
+ this.$set(this.newData, 'paperId', data.id)
|
|
|
+ this.$set(this.newData, 'paperName', data.name)
|
|
|
this.$refs.drawer.closeDrawer();
|
|
|
},
|
|
|
openPaperDrawer() {
|
|
|
@@ -257,7 +281,33 @@
|
|
|
},
|
|
|
// 提交按钮
|
|
|
submitButton() {
|
|
|
-
|
|
|
+ let self = this;
|
|
|
+ this.$refs.form.validate((valid, fields) => {
|
|
|
+ if (valid) {
|
|
|
+ this.$confirm('是否确认保存?', "警告", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(function() {
|
|
|
+ }).then(() => {
|
|
|
+ self.examElExamMakeupAdd();
|
|
|
+ }).catch(() => {});
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ examElExamMakeupAdd(){
|
|
|
+ let obj = {
|
|
|
+ parentExamId:this.newData.parentExamId,
|
|
|
+ reuseOriginalPaper:this.newData.reuseOriginalPaper,
|
|
|
+ paperId:this.newData.reuseOriginalPaper?this.newData.paperId:'',
|
|
|
+ attemptLimit:this.newData.attemptLimit,
|
|
|
+ startTime:this.newData.examTimeRange[0].replace(" ", "T"),
|
|
|
+ endTime:this.newData.examTimeRange[1].replace(" ", "T"),
|
|
|
+ }
|
|
|
+ examElExamMakeupAdd(obj).then(response => {
|
|
|
+ this.msgSuccess(response.message)
|
|
|
+ this.$parent.tableButton(6)
|
|
|
+ })
|
|
|
},
|
|
|
lockExam(){
|
|
|
this.$set(this, 'drawerTitle', '试卷详情')
|
|
|
@@ -274,10 +324,10 @@
|
|
|
this.$set(this, 'queryParams', {
|
|
|
page: 1,
|
|
|
pageSize: 20,
|
|
|
- queryParamsData1: null,
|
|
|
- queryParamsData2: null,
|
|
|
- queryParamsData3: null,
|
|
|
- queryParamsData4: ''
|
|
|
+ deptId: null,
|
|
|
+ academicYear: null,
|
|
|
+ disciplineId: null,
|
|
|
+ account: ''
|
|
|
})
|
|
|
this.getList()
|
|
|
},
|
|
|
@@ -285,7 +335,8 @@
|
|
|
getList() {
|
|
|
this.$set(this, 'loading', true)
|
|
|
let obj = JSON.parse(JSON.stringify(this.queryParams))
|
|
|
- getListFunction(obj).then(response => {
|
|
|
+ obj.examId = this.newData.parentExamId
|
|
|
+ examElExamMakeupCandidates(obj).then(response => {
|
|
|
this.$set(this, 'loading', false)
|
|
|
this.$set(this, 'dataList', response.data.records)
|
|
|
this.$set(this, 'total', response.data.total)
|
|
|
@@ -297,10 +348,18 @@
|
|
|
this.$set(this, 'optionListC', response.data)
|
|
|
})
|
|
|
},
|
|
|
+ //学年下拉列表
|
|
|
+ systemUserGetAcademicYear(){
|
|
|
+ systemUserGetAcademicYear({}).then(response => {
|
|
|
+ this.$set(this,'optionListB',response.data);
|
|
|
+ });
|
|
|
+ },
|
|
|
//学院列表
|
|
|
systemDeptCurrentDept() {
|
|
|
systemDeptCurrentDept({}).then(response => {
|
|
|
- this.$set(this, 'optionListA', response.data)
|
|
|
+ const list = response.data || [];
|
|
|
+ this.formatTreeData(list);
|
|
|
+ this.$set(this, 'optionListA', list)
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
@@ -313,7 +372,12 @@
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
overflow: hidden;
|
|
|
-
|
|
|
+ .colorA{
|
|
|
+ color:#F6A53C;
|
|
|
+ }
|
|
|
+ .colorB{
|
|
|
+ color:#EF98A2;
|
|
|
+ }
|
|
|
.content-box {
|
|
|
flex: 1;
|
|
|
display: flex;
|
|
|
@@ -371,3 +435,13 @@
|
|
|
}
|
|
|
}
|
|
|
</style>
|
|
|
+<style lang="scss">
|
|
|
+ .examinationArrange-addPage-date-picker {
|
|
|
+ .el-input--small {
|
|
|
+ width: 144px !important;
|
|
|
+ }
|
|
|
+ .el-time-panel__content::after, .el-time-panel__content::before{
|
|
|
+ top:45%!important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|