| | |
| | | <div> |
| | | <el-form :inline="true" :model="searchForm" class="demo-form-inline"> |
| | | <el-form-item label="考试名称"> |
| | | <el-input v-model="searchForm.className" size="small" clearable @clear="page" placeholder="班级名称"></el-input> |
| | | <el-input v-model="searchForm.examName" @input="page" clearable size="small" clearable @clear="page" placeholder="班级名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="考试班级"> |
| | | <el-select v-model="searchForm.classesId" size="small" clearable @change="page" placeholder="班级状态"> |
| | | <el-option label="正常" value="normal"></el-option> |
| | | <el-option label="解散" value="dissolution"></el-option> |
| | | <el-form-item label="参考班级"> |
| | | <el-select v-model="searchForm.classesId" @change="page" clearable @clear="page"> |
| | | <el-option v-for="classes in classesList" :key="classes.id" :value="classes.id" :label="classes.className"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试试卷" |
| | | prop="examName" |
| | | prop="examPaperName" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="参考班级" |
| | | prop="examClasses" |
| | | prop="className" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="班级人数" |
| | |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试地点" |
| | | prop="site" |
| | | prop="examPlace" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试科目" |
| | | prop="subject" |
| | | label="考试状态" |
| | | prop="status" |
| | | :formatter="statusFormatter" |
| | | ></el-table-column> |
| | | <el-table-column label="状态" prop="type" :formatter="formatterType"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="创建时间" |
| | | width="150px" |
| | | prop="createTime" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试时间" |
| | | prop="ctime" |
| | | ></el-table-column> |
| | | <el-table-column label="操作"> |
| | | width="200px" |
| | | algin="center" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div>{{scope.row.startTime}}</div> |
| | | <div>至</div> |
| | | <div>{{scope.row.endTime}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" fiexd="right" width="150px"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | class="deepBlue" |
| | | colorType="blue" |
| | | type="primary" |
| | | size="small" |
| | | @click="handlerEdit(scope.row)" |
| | | >修改 |
| | | </el-button> |
| | | <el-button type="danger" size="small" @click="deleteExam(scope.row.id)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </div> |
| | | |
| | | |
| | | <el-dialog width="35%" :title="title" @close="closeHandler" :visible.sync="open" :destroy-on-close="true" |
| | | <el-dialog width="500px" :title="title" @close="closeHandler" :visible.sync="open" :destroy-on-close="true" |
| | | :append-to-body="true" :close-on-click-modal="false"> |
| | | <el-form :model="examForm" :rules="examRules" ref="examForm"> |
| | | <el-form-item label="考试名称" :label-width="formLabelWidth" prop="examName"> |
| | | <el-input v-model="examForm.examName" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="参考班级" :label-width="formLabelWidth" prop="classesId"> |
| | | <el-input v-model="examForm.classesId" autocomplete="off"></el-input> |
| | | <el-select v-model="examForm.classesId"> |
| | | <el-option v-for="classes in classesList" :key="classes.id" :value="classes.id" :label="classes.className"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="试卷类型" :label-width="formLabelWidth" prop="examPaperType"> |
| | | <el-input v-model="examForm.examPaperType" autocomplete="off"></el-input> |
| | | <el-select v-model="examForm.examPaperType" @change="getMyExamPaperList"> |
| | | <el-option label="固定试卷" :value="1"></el-option> |
| | | <el-option label="随机试卷" :value="2"></el-option> |
| | | <el-option label="随序试卷" :value="3"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="考试试卷" :label-width="formLabelWidth" prop="examPaperId"> |
| | | <el-input v-model="examForm.examPaperId" autocomplete="off"></el-input> |
| | | <el-select v-model="examForm.examPaperId" :disabled="!examForm.examPaperType" placeholder="请先选择试卷类型"> |
| | | <el-option v-for="examPaper in examPaperList" :key="examPaper.id" :value="examPaper.id" :label="examPaper.name"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="开始时间" :label-width="formLabelWidth" prop="time"> |
| | | <el-date-picker |
| | | v-model="examForm.time" |
| | | type="daterange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="考试地点" :label-width="formLabelWidth" prop="examPlace"> |
| | | <el-input v-model="examForm.examPlace" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="开始时间" :label-width="formLabelWidth" prop="startTime"> |
| | | <el-input v-model="examForm.startTime" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="结束时间" :label-width="formLabelWidth" prop="endTime"> |
| | | <el-input v-model="examForm.endTime" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | import Pagination from "@/components/Pagination" |
| | | import { getExams, addExam, editExam, deleteExamById } from "@/api/exam" |
| | | import { myClasses } from "@/api/classes" |
| | | import { myExamPaperList } from "@/api/examPaper" |
| | | import examPaperAPI from "@/api/examPaper" |
| | | export default { |
| | | components: { Pagination }, |
| | | data() { |
| | |
| | | examName: "", |
| | | examPaperId: "", |
| | | classesId: "", |
| | | examPaperType: "", |
| | | examPaperType: null, |
| | | examPlace: "", |
| | | status: "", |
| | | startTime: "", |
| | | endTime: "", |
| | | time: [], |
| | | }, |
| | | examRules: { |
| | | examName: [ |
| | |
| | | examPlace: [ |
| | | { required: true, message: '请输入考试地点', trigger: 'blur' } |
| | | ], |
| | | startTime: [ |
| | | { required: true, message: '请选择开始时间', trigger: 'change' } |
| | | ], |
| | | endTime: [ |
| | | { required: true, message: '请选择结束时间', trigger: 'change' } |
| | | time: [ |
| | | { required: true, message: '请选择考试时间', trigger: 'change' } |
| | | ], |
| | | }, |
| | | total: 0, |
| | |
| | | }, |
| | | mounted() { |
| | | this.page(); |
| | | this.getMyClasses() |
| | | this.MyExamPaperList() |
| | | }, |
| | | methods: { |
| | | timeFormatter(row) { |
| | | return row.startTime + "至" + row.endTime |
| | | }, |
| | | statusFormatter(row) { |
| | | if (row.status === "ing") { |
| | | return "进行中" |
| | | } else if (row.status === "not_start") { |
| | | return "未开始" |
| | | } else if (row.status === "finished") { |
| | | return "已结束" |
| | | } |
| | | }, |
| | | MyExamPaperList() { |
| | | let param = { |
| | | "paperType": this.examForm.examPaperType |
| | | } |
| | | examPaperAPI.myExamPaperList(param).then(res => { |
| | | this.examForm.examPaperId = null |
| | | this.examPaperList = res.data |
| | | }) |
| | | }, |
| | | getMyExamPaperList() { |
| | | if (! this.examForm.examPaperType) { |
| | | return |
| | | } |
| | | let param = { |
| | | "paperType": this.examForm.examPaperType |
| | | } |
| | | myExamPaperList(param).then(res => { |
| | | this.examPaperList = res.data |
| | | }) |
| | | this.MyExamPaperList() |
| | | }, |
| | | getMyClasses() { |
| | | myClasses().then(res => { |
| | |
| | | deleteExam(id) { |
| | | deleteExamById(id).then(res => { |
| | | this.$message.success("删除成功") |
| | | this.page() |
| | | }) |
| | | }, |
| | | handlerEdit(row) { |
| | | this.examForm = row |
| | | this.examForm.time = [row.startTime, row.endTime] |
| | | this.title = "修改考试" |
| | | this.open = true |
| | | }, |
| | | addOrEditExam() { |
| | | this.$refs['examForm'].validate((valid) => { |
| | | if (valid) { |
| | | this.examForm.startTime = this.examForm.time[0] |
| | | this.examForm.endTime = this.examForm.time[1] |
| | | if (this.examForm.id) { |
| | | editExam(this.examForm).then(res => { |
| | | this.open = false |
| | | this.clearForm() |
| | | this.$message.success("操作成功") |
| | | this.page() |
| | | }) |
| | | } else { |
| | | addExam(this.examForm).then(res => { |
| | | this.open = false |
| | | this.clearForm() |
| | | this.$message.success("操作成功") |
| | | this.page() |
| | | }) |
| | | } |
| | | } |
| | |
| | | page() { |
| | | getExams(this.searchForm).then(res => { |
| | | this.tableData = res.data.data |
| | | this.total = res.data.total |
| | | }) |
| | | }, |
| | | routerTo(url) { |