From c2a1c68a2a398e6d0f2f5854c65127efbff306b1 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 28 十月 2024 11:36:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/exam/exam/ExamManage.vue | 126 ++++++++++++++++++++++++++++++++--------- 1 files changed, 98 insertions(+), 28 deletions(-) diff --git a/src/views/exam/exam/ExamManage.vue b/src/views/exam/exam/ExamManage.vue index 87e9bfd..5853fb9 100644 --- a/src/views/exam/exam/ExamManage.vue +++ b/src/views/exam/exam/ExamManage.vue @@ -7,11 +7,11 @@ <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" + <el-input v-model="searchForm.examName" @input="page" clearable size="small" @clear="page" placeholder="鐝骇鍚嶇О"></el-input> </el-form-item> <el-form-item label="鍙傝�冪彮绾�"> - <el-select v-model="searchForm.classesId" @change="page" clearable @clear="page"> + <el-select v-model="searchForm.classesId" @change="page" clearable size="small" @clear="page"> <el-option v-for="classes in classesList" :key="classes.id" :value="classes.id" :label="classes.className"/> </el-select> @@ -22,26 +22,30 @@ </el-form> </div> </div> - <el-table :data="tableData" border> + <el-table :data="tableData" border style="width: 100%"> <el-table-column label="鑰冭瘯鍚嶇О" + width="150px" prop="examName" ></el-table-column> <el-table-column label="鑰冭瘯璇曞嵎" prop="examPaperName" + width="200px" ></el-table-column> <el-table-column label="鍙傝�冪彮绾�" + width="200px" prop="className" ></el-table-column> - <el-table-column - label="鐝骇浜烘暟" - prop="studentNum" - ></el-table-column> + <!-- <el-table-column--> + <!-- label="鐝骇浜烘暟"--> + <!-- prop="studentNum"--> + <!-- ></el-table-column>--> <el-table-column label="鑰冭瘯鍦扮偣" prop="examPlace" + width="150px" ></el-table-column> <el-table-column label="鑰冭瘯鐘舵��" @@ -61,19 +65,53 @@ </el-table-column> <el-table-column label="鍒涘缓鏃堕棿" - width="150px" + width="160px" prop="createTime" ></el-table-column> - <el-table-column label="鎿嶄綔" fiexd="right" width="210px"> + <el-table-column label="鎿嶄綔" fixed="right" width="220px"> <template slot-scope="scope"> <el-button type="primary" size="small" @click="handlerEdit(scope.row)" + v-if="scope.row.status === 'not_start'" + v-show="scope.row.status !== 'cancel'" >淇敼 </el-button> - <el-button type="danger" size="small" @click="deleteExam(scope.row.id)">鍒犻櫎</el-button> - <el-button v-if="scope.row.status === 'finished'" type="success" size="small" @click="markPaper(scope.row)">闃呭嵎</el-button> + <el-popconfirm + v-if="scope.row.status === 'not_start'" + v-show="scope.row.status !== 'cancel'" + style="margin: 0 5px" + title="纭畾瑕佸垹闄よ鑰冭瘯鍚楋紵" + @confirm="deleteExam(scope.row.id)" + > + <el-button slot="reference" type="danger" size="small" v-show="scope.row.status !== 'cancel'">鍒犻櫎</el-button> + </el-popconfirm> + + <el-button v-if="scope.row.status === 'finished'" type="success" size="small" @click="markPaper(scope.row)" v-show="scope.row.status !== 'cancel'"> + 闃呭嵎 + </el-button> + <el-button v-if="scope.row.status === 'ing'" type="warning" size="small" @click="monitor(scope.row)" v-show="scope.row.status !== 'cancel'">鐩戞帶</el-button> + <el-popconfirm + class="confirm" + style="margin: 0 5px" + title="纭畾瑕佷綔搴熻鑰冭瘯璁板綍鍚楋紵" + @confirm="cancel(scope.row.id)" + > + <el-button slot="reference" v-show="scope.row.status !== 'cancel'" type="danger" + size="small" + v-if="scope.row.status !== 'ing'">浣滃簾 + </el-button> + </el-popconfirm> + <el-popconfirm + class="confirm" + title="纭畾瑕佹仮澶嶈鑰冭瘯璁板綍鍚楋紵" + @confirm="recover(scope.row.id)" + > + <el-button slot="reference" v-show="scope.row.status === 'cancel'" type="success" + size="small">鎭㈠姝e父 + </el-button> + </el-popconfirm> </template> </el-table-column> </el-table> @@ -81,7 +119,7 @@ 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 v-show="total>0" :total="total" :page.sync="searchForm.currentPage" :limit.sync="searchForm.pageSize" @pagination="page"/> </div> <el-dialog width="500px" :title="title" @close="closeHandler" :visible.sync="open" :destroy-on-close="true" @@ -111,10 +149,13 @@ <el-form-item label="寮�濮嬫椂闂�" :label-width="formLabelWidth" prop="time"> <el-date-picker v-model="examForm.time" - type="daterange" + type="datetimerange" + format="yyyy-MM-dd HH:mm:ss" + value-format="yyyy-MM-dd HH:mm:ss" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡"> + end-placeholder="缁撴潫鏃ユ湡" + > </el-date-picker> </el-form-item> <el-form-item label="鑰冭瘯鍦扮偣" :label-width="formLabelWidth" prop="examPlace"> @@ -131,7 +172,7 @@ <script> import Pagination from '@/components/Pagination' -import { getExams, addExam, editExam, deleteExamById } from '@/api/exam' +import { getExams, addExam, editExam, deleteExamById, cancel, recover } from '@/api/exam' import { myClasses } from '@/api/classes' import examPaperAPI from '@/api/examPaper' @@ -150,8 +191,8 @@ examPaperType: null, examPlace: '', status: '', - startTime: '', - endTime: '', + startTime: null, + endTime: null, time: [] }, examRules: { @@ -180,7 +221,7 @@ searchForm: { examName: '', subject: null, - pageIndex: 1, + currentPage: 1, pageSize: 10 }, tableData: [] @@ -192,6 +233,24 @@ this.MyExamPaperList() }, methods: { + // 浣滃簾鑰冭瘯 + cancel (id) { + cancel(id).then(res => { + this.$message.success(res.data.message) + this.page() + }) + }, + // 鎭㈠鑰冭瘯 + recover (id) { + recover(id).then(res => { + this.$message.success(res.data.message) + this.page() + }) + }, + // 鑰冭瘯鐩戞帶鍒楄〃 + monitor (row) { + this.$router.push({ path: '/exam/monitor', query: { examId: row.id } }) + }, markPaper (row) { // 璺宠浆闃呭嵎椤甸潰 this.$router.push({ path: '/exam/mark/paper', query: { examName: row.examName, examId: row.id } }) @@ -206,6 +265,8 @@ return '鏈紑濮�' } else if (row.status === 'finished') { return '宸茬粨鏉�' + } else if (row.status === 'cancel') { + return '宸蹭綔搴�' } }, MyExamPaperList () { @@ -228,15 +289,23 @@ this.classesList = res.data.data }) }, - deleteExam (id) { - deleteExamById(id).then(res => { - this.$message.success('鍒犻櫎鎴愬姛') - this.page() + deleteExam (row) { + this.$confirm('纭鏄惁鍒犻櫎' + row.examName + '?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + deleteExamById(row.id).then(res => { + this.$message.success('鍒犻櫎鎴愬姛') + this.page() + }) }) }, handlerEdit (row) { - this.examForm = row - this.examForm.time = [row.startTime, row.endTime] + this.examForm = { + ...row, + time: [row.startTime, row.endTime] + } this.title = '淇敼鑰冭瘯' this.open = true }, @@ -272,8 +341,9 @@ examPaperType: '', examPlace: '', status: '', - startTime: '', - endTime: '', + startTime: null, + endTime: null, + time: [] } }, closeHandler () { @@ -294,8 +364,8 @@ }, routerTo (url) { this.$router.push(url) - } - }, + }, + } } </script> -- Gitblit v1.8.0