From 7aa55ce4b2c5f5ae324f145bdf1766cdb376210a Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期二, 29 十月 2024 14:08:53 +0800
Subject: [PATCH] 完成个人信息头像更换
---
src/views/exam/exam/ExamManage.vue | 257 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 206 insertions(+), 51 deletions(-)
diff --git a/src/views/exam/exam/ExamManage.vue b/src/views/exam/exam/ExamManage.vue
index e4c5765..667e3b9 100644
--- a/src/views/exam/exam/ExamManage.vue
+++ b/src/views/exam/exam/ExamManage.vue
@@ -2,37 +2,64 @@
<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>
+ <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-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-option v-for="classes in classesList" :key="classes.id" :value="classes.id"
- :label="classes.className"/>
+ <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>
</el-form-item>
<el-form-item>
- <el-button type="primary" @click="page" size="small">鏌ヨ</el-button>
+ <el-button type="primary" @click="page" size="small"
+ >鏌ヨ</el-button
+ >
</el-form-item>
</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-->
@@ -42,17 +69,14 @@
<el-table-column
label="鑰冭瘯鍦扮偣"
prop="examPlace"
+ width="150px"
></el-table-column>
<el-table-column
label="鑰冭瘯鐘舵��"
prop="status"
:formatter="statusFormatter"
></el-table-column>
- <el-table-column
- label="鑰冭瘯鏃堕棿"
- width="180px"
- algin="center"
- >
+ <el-table-column label="鑰冭瘯鏃堕棿" width="180px" algin="center">
<template slot-scope="scope">
<div>{{ scope.row.startTime }}</div>
<div>鑷�</div>
@@ -61,66 +85,164 @@
</el-table-column>
<el-table-column
label="鍒涘缓鏃堕棿"
- width="150px"
+ width="160px"
prop="createTime"
></el-table-column>
- <el-table-column label="鎿嶄綔" fiexd="right" width="280px">
+ <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-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">鍒犻櫎</el-button>
+ <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)">
+ <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 type="danger" size="small" @click="deleteExam(scope.row)">鍒犻櫎</el-button>
- <el-button type="warning" size="small" @click="monitor(scope.row)">鐩戞帶</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>
- <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 class="flex" style="justify-content: center; margin-top: 20px">
+ <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"
- :append-to-body="true" :close-on-click-modal="false">
+ <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-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-form-item
+ label="鍙傝�冪彮绾�"
+ :label-width="formLabelWidth"
+ prop="classesId"
+ >
<el-select v-model="examForm.classesId">
- <el-option v-for="classes in classesList" :key="classes.id" :value="classes.id" :label="classes.className"/>
+ <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-select v-model="examForm.examPaperType" @change="getMyExamPaperList">
+ <el-form-item
+ label="璇曞嵎绫诲瀷"
+ :label-width="formLabelWidth"
+ prop="examPaperType"
+ >
+ <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-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-form-item
+ label="鑰冭瘯璇曞嵎"
+ :label-width="formLabelWidth"
+ prop="examPaperId"
+ >
+ <el-select
+ @change="handleExamPaperSelect"
+ 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-form-item v-show="examForm.examPaperId" label="鑰冭瘯鏃堕暱">
+ <div>{{ selectExamPaper.suggestTime }}鍒嗛挓</div>
+ </el-form-item>
+ <el-form-item
+ label="寮�濮嬫椂闂�"
+ :label-width="formLabelWidth"
+ prop="time"
+ >
<el-date-picker
v-model="examForm.time"
type="datetimerange"
@@ -132,7 +254,11 @@
>
</el-date-picker>
</el-form-item>
- <el-form-item label="鑰冭瘯鍦扮偣" :label-width="formLabelWidth" prop="examPlace">
+ <el-form-item
+ label="鑰冭瘯鍦扮偣"
+ :label-width="formLabelWidth"
+ prop="examPlace"
+ >
<el-input v-model="examForm.examPlace" autocomplete="off"></el-input>
</el-form-item>
</el-form>
@@ -146,7 +272,14 @@
<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'
@@ -169,6 +302,7 @@
endTime: null,
time: []
},
+ selectExamPaper: {},
examRules: {
examName: [
{ required: true, message: '璇疯緭鍏ヨ�冭瘯鍚嶇О', trigger: 'blur' }
@@ -195,7 +329,7 @@
searchForm: {
examName: '',
subject: null,
- pageIndex: 1,
+ currentPage: 1,
pageSize: 10
},
tableData: []
@@ -207,13 +341,30 @@
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 } })
+ this.$router.push({
+ path: '/exam/mark/paper',
+ query: { examName: row.examName, examId: row.id }
+ })
},
timeFormatter (row) {
return row.startTime + '鑷�' + row.endTime
@@ -225,13 +376,15 @@
return '鏈紑濮�'
} else if (row.status === 'finished') {
return '宸茬粨鏉�'
+ } else if (row.status === 'cancel') {
+ return '宸蹭綔搴�'
}
},
MyExamPaperList () {
let param = {
- 'paperType': this.examForm.examPaperType
+ paperType: this.examForm.examPaperType
}
- examPaperAPI.myExamPaperList(param).then(res => {
+ examPaperAPI.myExamPaperList(param).then((res) => {
this.examForm.examPaperId = null
this.examPaperList = res.data
})
@@ -243,7 +396,7 @@
this.MyExamPaperList()
},
getMyClasses () {
- myClasses().then(res => {
+ myClasses().then((res) => {
this.classesList = res.data.data
})
},
@@ -253,7 +406,7 @@
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- deleteExamById(row.id).then(res => {
+ deleteExamById(row.id).then((res) => {
this.$message.success('鍒犻櫎鎴愬姛')
this.page()
})
@@ -273,14 +426,14 @@
this.examForm.startTime = this.examForm.time[0]
this.examForm.endTime = this.examForm.time[1]
if (this.examForm.id) {
- editExam(this.examForm).then(res => {
+ editExam(this.examForm).then((res) => {
this.open = false
this.clearForm()
this.$message.success('鎿嶄綔鎴愬姛')
this.page()
})
} else {
- addExam(this.examForm).then(res => {
+ addExam(this.examForm).then((res) => {
this.open = false
this.clearForm()
this.$message.success('鎿嶄綔鎴愬姛')
@@ -312,10 +465,9 @@
this.title = this.examForm.id ? '淇敼鑰冭瘯' : '瀹夋帓鑰冭瘯'
this.open = true
},
- formatterType (row) {
- },
+ formatterType (row) {},
page () {
- getExams(this.searchForm).then(res => {
+ getExams(this.searchForm).then((res) => {
this.tableData = res.data.data
this.total = res.data.total
})
@@ -323,6 +475,9 @@
routerTo (url) {
this.$router.push(url)
},
+ handleExamPaperSelect (e) {
+ this.selectExamPaper = this.examPaperList.find((o) => o.id === e)
+ }
}
}
</script>
--
Gitblit v1.8.0