From 35e2e16f92ca4932407ed16783d17e06e2bdae0b Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期一, 28 十月 2024 17:13:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/exam/paper/list.vue | 130 +++++++++++++++++++++++++------------------
1 files changed, 75 insertions(+), 55 deletions(-)
diff --git a/src/views/exam/paper/list.vue b/src/views/exam/paper/list.vue
index d766adf..597baed 100644
--- a/src/views/exam/paper/list.vue
+++ b/src/views/exam/paper/list.vue
@@ -1,51 +1,65 @@
<template>
<div class="app-container">
<el-form :model="queryParam" ref="queryForm" :inline="true">
- <el-form-item label="棰樼洰ID锛�">
- <el-input v-model="queryParam.id" clearable></el-input>
- </el-form-item>
- <el-form-item label="骞寸骇锛�">
- <el-select v-model="queryParam.level" placeholder="骞寸骇" @change="levelChange" clearable>
- <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="瀛︾锛�" >
- <el-select v-model="queryParam.subjectId" clearable>
- <el-option v-for="item in subjectFilter" :key="item.id" :value="item.id" :label="item.name+' ( '+item.levelName+' )'"></el-option>
- </el-select>
+ <el-form-item label="璇曞嵎ID锛�">
+ <el-input v-model="queryParam.id" clearable @input="search"></el-input>
</el-form-item>
<el-form-item>
- <el-button type="primary" @click="submitForm">鏌ヨ</el-button>
- <router-link :to="{path:'/exam/paper/edit'}" class="link-left">
- <el-button type="primary">娣诲姞</el-button>
+ <el-button type="primary" @click="submitForm" size="small">鏌ヨ</el-button>
+ <router-link :to="{ path: '/exam/paper/edit' }" class="link-left">
+ <el-button type="primary" size="small">娣诲姞</el-button>
+ </router-link>
+ <el-button class="link-left" type="danger" @click="downloadImportTemplate" size="small">涓嬭浇妯℃澘</el-button>
+ <router-link :to="{ path: '/exam/paper/import' }" class="link-left">
+ <el-button type="success" size="small">瀵煎叆</el-button>
</router-link>
</el-form-item>
</el-form>
<el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%">
- <el-table-column prop="id" label="Id" width="90px"/>
- <el-table-column prop="subjectId" label="瀛︾" :formatter="subjectFormatter" width="120px" />
- <el-table-column prop="name" label="鍚嶇О" />
- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px"/>
- <el-table-column label="鎿嶄綔" align="center" width="160px">
+ <el-table-column align="center" prop="id" label="Id" width="90px" />
+ <el-table-column align="center" prop="name" label="鍚嶇О" />
+ <el-table-column align="center" prop="paperType" label="璇曞嵎绫诲瀷">
+ <template slot-scope="scope">
+ <div v-if="scope.row.paperType === 1">鍥哄畾璇曞嵎</div>
+ <div v-else-if="scope.row.paperType === 2">闅忔満璇曞嵎</div>
+ <div v-else-if="scope.row.paperType === 3">闅忓簭璇曞嵎</div>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" prop="suggestTime" label="寤鸿鏃堕暱(鍒嗛挓)">
+ </el-table-column>
+ <el-table-column align="center" prop="num" label="棰樼洰鏁伴噺">
+ </el-table-column>
+ <el-table-column align="center" prop="score" label="鎬诲垎">
+ </el-table-column>
+ <el-table-column align="center" prop="createTime" label="鍒涘缓鏃堕棿" width="160px" />
+ <el-table-column label="鎿嶄綔" align="center" width="160px">
<template slot-scope="{row}">
- <el-button size="mini" @click="$router.push({path:'/exam/paper/edit',query:{id:row.id}})" >缂栬緫</el-button>
- <el-button size="mini" type="danger" @click="deletePaper(row)" class="link-left">鍒犻櫎</el-button>
+ <el-button size="mini" @click="$router.push({ path: '/exam/paper/edit', query: { id: row.id } })">缂栬緫</el-button>
+ <el-popconfirm
+ style="margin: 0 5px"
+ title="纭畾瑕佸垹闄よ璇曞嵎鍚楋紵"
+ @confirm="deletePaper(row)"
+ >
+ <el-button slot="reference" type="danger" size="mini" class="link-left">鍒犻櫎</el-button>
+ </el-popconfirm>
</template>
</el-table-column>
</el-table>
- <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
- @pagination="search"/>
+ <pagination v-show="total > 0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
+ @pagination="search" />
</div>
</template>
<script>
-import { mapGetters, mapState, mapActions } from 'vuex'
import Pagination from '@/components/Pagination'
+import subjectApi from '@/api/subject'
import examPaperApi from '@/api/examPaper'
+import { downloadExcel } from '@/utils/download'
+import userApi from "@/api/user";
export default {
components: { Pagination },
- data () {
+ data() {
return {
queryParam: {
id: null,
@@ -54,25 +68,31 @@
pageIndex: 1,
pageSize: 10
},
- subjectFilter: null,
listLoading: true,
tableData: [],
+ subjects: [],
total: 0
}
},
- created () {
- this.initSubject()
+ created() {
+ this.getSubjects()
this.search()
},
methods: {
- submitForm () {
+ // 涓嬭浇瀵煎叆妯℃澘
+ downloadImportTemplate() {
+ examPaperApi.downloadImportTemplate().then(res => {
+ downloadExcel(res, '璇曞嵎瀵煎叆妯℃澘')
+ })
+ },
+ submitForm() {
this.queryParam.pageIndex = 1
this.search()
},
- search () {
+ search() {
this.listLoading = true
examPaperApi.pageList(this.queryParam).then(data => {
- const re = data.response
+ const re = data.data
this.tableData = re.list
this.total = re.total
this.queryParam.pageIndex = re.pageNum
@@ -80,32 +100,32 @@
})
},
deletePaper (row) {
- let _this = this
- examPaperApi.deletePaper(row.id).then(re => {
- if (re.code === 1) {
- _this.search()
- _this.$message.success(re.message)
- } else {
- _this.$message.error(re.message)
- }
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ瘯鍗�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ let _this = this
+ examPaperApi.deletePaper(row.id).then(re => {
+ if (re.code === 1) {
+ _this.search()
+ _this.$message.success(re.message)
+ } else {
+ _this.$message.error(re.message)
+ }
+ })
})
},
- levelChange () {
- this.queryParam.subjectId = null
- this.subjectFilter = this.subjects.filter(data => data.level === this.queryParam.level)
+ // 鑾峰彇绉戠洰
+ getSubjects() {
+ subjectApi.list().then(re => {
+ this.subjects = re.data
+ })
},
- subjectFormatter (row, column, cellValue, index) {
- return this.subjectEnumFormat(cellValue)
- },
- ...mapActions('exam', { initSubject: 'initSubject' })
- },
- computed: {
- ...mapGetters('enumItem', ['enumFormat']),
- ...mapState('enumItem', {
- levelEnum: state => state.user.levelEnum
- }),
- ...mapGetters('exam', ['subjectEnumFormat']),
- ...mapState('exam', { subjects: state => state.subjects })
+ translate(subjectId) {
+ const subject = this.subjects.find(subject => subject.id == subjectId);
+ return subject ? subject.name : '鏈煡';
+ }
}
}
</script>
--
Gitblit v1.8.0