| | |
| | | <template> |
| | | <div class="c"> |
| | | <div class="bg"> |
| | | <div class="main"> |
| | | <div class="main-1"> |
| | | <div class="main-btn"> |
| | | <el-button |
| | | type="primary" |
| | | @click="openAdd" |
| | | >安排考试 |
| | | </el-button> |
| | | </div> |
| | | <div> |
| | | <el-form :inline="true" :model="searchForm" class="demo-form-inline"> |
| | | <el-form-item label="考试名称"> |
| | | <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" @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-button type="primary" @click="page" size="small">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <el-table :data="tableData"> |
| | | <el-table-column |
| | | label="考试名称" |
| | | prop="examName" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试试卷" |
| | | prop="examPaperName" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="参考班级" |
| | | prop="className" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="班级人数" |
| | | prop="studentNum" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试地点" |
| | | prop="examPlace" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试状态" |
| | | prop="status" |
| | | :formatter="statusFormatter" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="创建时间" |
| | | width="150px" |
| | | prop="createTime" |
| | | ></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 |
| | | type="primary" |
| | | size="small" |
| | | @click="handlerEdit(scope.row)" |
| | | >修改 |
| | | </el-button> |
| | | <el-button type="danger" size="small" @click="deleteExam(scope.row.id)">删除</el-button> |
| | | <el-button type="success" size="small" @click="markPaper(scope.row)">阅卷</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div |
| | | class="flex" |
| | | style="justify-content:center;margin-top:20px;" |
| | | > |
| | | <pagination v-show="total>0" :total="total" :page.sync="searchForm.pageIndex" :limit.sync="searchForm.pageSize" |
| | | @pagination="page"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="app-container"> |
| | | <div style="display: flex; flex-direction: row"> |
| | | <div> |
| | | <el-button type="primary" size="small" style="margin-right: 10px" @click="openAdd">安排考试</el-button> |
| | | </div> |
| | | |
| | | <div> |
| | | <el-form :inline="true" :model="searchForm" class="demo-form-inline"> |
| | | <el-form-item label="考试名称"> |
| | | <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" @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-button type="primary" @click="page" size="small">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <el-table :data="tableData" border> |
| | | <el-table-column |
| | | label="考试名称" |
| | | prop="examName" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试试卷" |
| | | prop="examPaperName" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="参考班级" |
| | | prop="className" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="班级人数" |
| | | prop="studentNum" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试地点" |
| | | prop="examPlace" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试状态" |
| | | prop="status" |
| | | :formatter="statusFormatter" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="考试时间" |
| | | width="180px" |
| | | 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="创建时间" |
| | | width="150px" |
| | | prop="createTime" |
| | | ></el-table-column> |
| | | <el-table-column label="操作" fiexd="right" width="210px"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | @click="handlerEdit(scope.row)" |
| | | >修改 |
| | | </el-button> |
| | | <el-button type="danger" size="small" @click="deleteExam(scope.row.id)">删除</el-button> |
| | | <el-button type="success" size="small" @click="markPaper(scope.row)">阅卷</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div |
| | | class="flex" |
| | | style="justify-content:center;margin-top:20px;" |
| | | > |
| | | <pagination v-show="total>0" :total="total" :page.sync="searchForm.pageIndex" :limit.sync="searchForm.pageSize" |
| | | @pagination="page"/> |
| | | </div> |
| | | <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> |
| | | <el-form-item label="考试试卷" :label-width="formLabelWidth" prop="examPaperId"> |
| | | <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-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"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from "@/components/Pagination" |
| | | import { getExams, addExam, editExam, deleteExamById } from "@/api/exam" |
| | | import { myClasses } from "@/api/classes" |
| | | import examPaperAPI from "@/api/examPaper" |
| | | import Pagination from '@/components/Pagination' |
| | | import { getExams, addExam, editExam, deleteExamById } from '@/api/exam' |
| | | import { myClasses } from '@/api/classes' |
| | | import examPaperAPI from '@/api/examPaper' |
| | | |
| | | export default { |
| | | components: { Pagination }, |
| | | data() { |
| | | data () { |
| | | return { |
| | | formLabelWidth: "80px", |
| | | formLabelWidth: '80px', |
| | | classesList: [], |
| | | examPaperList: [], |
| | | examForm: { |
| | | id: null, |
| | | examName: "", |
| | | examPaperId: "", |
| | | classesId: "", |
| | | examName: '', |
| | | examPaperId: '', |
| | | classesId: '', |
| | | examPaperType: null, |
| | | examPlace: "", |
| | | status: "", |
| | | startTime: "", |
| | | endTime: "", |
| | | examPlace: '', |
| | | status: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | time: [], |
| | | }, |
| | | examRules: { |
| | |
| | | ], |
| | | }, |
| | | total: 0, |
| | | title: "安排考试", |
| | | title: '安排考试', |
| | | open: false, |
| | | searchForm: { |
| | | examName: "", |
| | | examName: '', |
| | | subject: null, |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | }, |
| | | tableData: [ |
| | | ], |
| | | }; |
| | | tableData: [], |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.page(); |
| | | mounted () { |
| | | this.page() |
| | | this.getMyClasses() |
| | | this.MyExamPaperList() |
| | | }, |
| | | methods: { |
| | | markPaper(row) { |
| | | markPaper (row) { |
| | | // 跳转阅卷页面 |
| | | this.$router.push({path: "/exam/mark/paper", query: {examName: row.examName, examId: row.id}}) |
| | | this.$router.push({ path: '/exam/mark/paper', query: { examName: row.examName, examId: row.id } }) |
| | | }, |
| | | timeFormatter(row) { |
| | | return row.startTime + "至" + row.endTime |
| | | 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 "已结束" |
| | | statusFormatter (row) { |
| | | if (row.status === 'ing') { |
| | | return '进行中' |
| | | } else if (row.status === 'not_start') { |
| | | return '未开始' |
| | | } else if (row.status === 'finished') { |
| | | return '已结束' |
| | | } |
| | | }, |
| | | MyExamPaperList() { |
| | | MyExamPaperList () { |
| | | let param = { |
| | | "paperType": this.examForm.examPaperType |
| | | 'paperType': this.examForm.examPaperType |
| | | } |
| | | examPaperAPI.myExamPaperList(param).then(res => { |
| | | this.examForm.examPaperId = null |
| | | this.examPaperList = res.data |
| | | }) |
| | | }, |
| | | getMyExamPaperList() { |
| | | if (! this.examForm.examPaperType) { |
| | | getMyExamPaperList () { |
| | | if (!this.examForm.examPaperType) { |
| | | return |
| | | } |
| | | this.MyExamPaperList() |
| | | }, |
| | | getMyClasses() { |
| | | getMyClasses () { |
| | | myClasses().then(res => { |
| | | this.classesList = res.data.data |
| | | }) |
| | | }, |
| | | deleteExam(id) { |
| | | deleteExam (id) { |
| | | deleteExamById(id).then(res => { |
| | | this.$message.success("删除成功") |
| | | this.$message.success('删除成功') |
| | | this.page() |
| | | }) |
| | | }, |
| | | handlerEdit(row) { |
| | | handlerEdit (row) { |
| | | this.examForm = row |
| | | this.examForm.time = [row.startTime, row.endTime] |
| | | this.title = "修改考试" |
| | | this.title = '修改考试' |
| | | this.open = true |
| | | }, |
| | | addOrEditExam() { |
| | | addOrEditExam () { |
| | | this.$refs['examForm'].validate((valid) => { |
| | | if (valid) { |
| | | this.examForm.startTime = this.examForm.time[0] |
| | |
| | | editExam(this.examForm).then(res => { |
| | | this.open = false |
| | | this.clearForm() |
| | | this.$message.success("操作成功") |
| | | this.$message.success('操作成功') |
| | | this.page() |
| | | }) |
| | | } else { |
| | | addExam(this.examForm).then(res => { |
| | | this.open = false |
| | | this.clearForm() |
| | | this.$message.success("操作成功") |
| | | this.$message.success('操作成功') |
| | | this.page() |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | clearForm() { |
| | | clearForm () { |
| | | this.examForm = { |
| | | id: null, |
| | | examName: "", |
| | | examPaperId: "", |
| | | classesId: "", |
| | | examPaperType: "", |
| | | examPlace: "", |
| | | status: "", |
| | | startTime: "", |
| | | endTime: "", |
| | | examName: '', |
| | | examPaperId: '', |
| | | classesId: '', |
| | | examPaperType: '', |
| | | examPlace: '', |
| | | status: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | } |
| | | }, |
| | | closeHandler() { |
| | | closeHandler () { |
| | | this.open = false |
| | | this.clearForm() |
| | | }, |
| | | openAdd() { |
| | | this.title = this.examForm.id ? "修改考试" : "安排考试" |
| | | openAdd () { |
| | | this.title = this.examForm.id ? '修改考试' : '安排考试' |
| | | this.open = true |
| | | }, |
| | | formatterType(row) { |
| | | formatterType (row) { |
| | | }, |
| | | page() { |
| | | page () { |
| | | getExams(this.searchForm).then(res => { |
| | | this.tableData = res.data.data |
| | | this.total = res.data.total |
| | | }) |
| | | }, |
| | | routerTo(url) { |
| | | this.$router.push(url); |
| | | routerTo (url) { |
| | | this.$router.push(url) |
| | | }, |
| | | }, |
| | | }; |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .flex { |
| | | display: flex; |
| | | } |
| | | |
| | | .mian-1-top { |
| | | margin: 10px 0; |
| | | align-items: center; |
| | | |
| | | & input { |
| | | height: 30px; |
| | | width: 200px; |
| | | margin-right: 20px; |
| | | } |
| | | } |
| | | |
| | | // .c{ |
| | | // background-image:url('../../assets/img/loginBackground.jpg'); |
| | | // width:100vw; |
| | | // height:calc(100vh - 75px); |
| | | // background-size: cover; |
| | | // } |
| | | // .bg{ |
| | | // width:100%; |
| | | // height:100%; |
| | | // background: rgba(255,255,255,0.2); |
| | | // display: flex; |
| | | // justify-content: center; |
| | | |
| | | // } |
| | | .main { |
| | | &-title { |
| | | border-left: 5px solid rgb(16, 71, 247); |
| | | padding-left: 10px; |
| | | margin: 50px 0; |
| | | |
| | | & p { |
| | | font-weight: 700; |
| | | } |
| | | } |
| | | |
| | | &-1 { |
| | | width: 1227px; |
| | | height: 784px; |
| | | background: white; |
| | | box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.1); |
| | | border-radius: 10px; |
| | | padding: 32px 40px; |
| | | } |
| | | |
| | | &-btn { |
| | | padding-bottom: 32px; |
| | | border-bottom: 3px solid rgb(16, 71, 247); |
| | | } |
| | | } |
| | | |
| | | .deepBlue { |
| | | background: rgb(16, 71, 247); |
| | | color: white; |
| | | border: none; |
| | | |
| | | &:hover { |
| | | background-color: rgb(45, 92, 248); |
| | | } |
| | | } |
| | | </style> |