From f7fba7469eb458c000bdad97a2c130a9e9ea212b Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期四, 11 七月 2024 09:45:29 +0800 Subject: [PATCH] feat:题目导入 --- src/views/exam/paper/list.vue | 4 ++-- vue.config.js | 4 ++-- src/views/exam/question/list.vue | 41 +++++++++++++++++++++++++++++++++++++++++ src/api/question.js | 5 +++-- 4 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/api/question.js b/src/api/question.js index ca143bb..a8d584a 100644 --- a/src/api/question.js +++ b/src/api/question.js @@ -1,9 +1,10 @@ -import { post } from '@/utils/request' +import { post, download } from '@/utils/request' export default { pageList: query => post('/api/admin/question/page', query), edit: query => post('/api/admin/question/edit', query), select: id => post('/api/admin/question/select/' + id), deleteQuestion: id => post('/api/admin/question/delete/' + id), - updateStatus: query => post('/api/admin/question/status', query) + updateStatus: query => post('/api/admin/question/status', query), + downloadImportTemplate: () => download('/api/admin/question/download/importTemplate'), } diff --git a/src/views/exam/paper/list.vue b/src/views/exam/paper/list.vue index e8c34ef..057b6d8 100644 --- a/src/views/exam/paper/list.vue +++ b/src/views/exam/paper/list.vue @@ -9,7 +9,7 @@ <router-link :to="{ path: '/exam/paper/edit' }" class="link-left"> <el-button type="primary" >娣诲姞</el-button> </router-link> - <el-button class="link-left" type="danger" @click="downloadImportTemplate">涓嬭浇瀵煎叆妯℃澘</el-button> + <el-button class="link-left" type="danger" @click="downloadImportTemplate">涓嬭浇妯℃澘</el-button> <router-link :to="{ path: '/exam/paper/import' }" class="link-left"> <el-button type="success">瀵煎叆</el-button> </router-link> @@ -75,7 +75,7 @@ // 涓嬭浇瀵煎叆妯℃澘 downloadImportTemplate() { examPaperApi.downloadImportTemplate().then(res => { - downloadExcel(res, '棰樼洰瀵煎叆妯℃澘') + downloadExcel(res, '璇曞嵎瀵煎叆妯℃澘') }) }, submitForm() { diff --git a/src/views/exam/question/list.vue b/src/views/exam/question/list.vue index 512f167..a2c39fc 100644 --- a/src/views/exam/question/list.vue +++ b/src/views/exam/question/list.vue @@ -28,6 +28,18 @@ </el-button> <el-button slot="reference" type="primary" class="link-left">娣诲姞</el-button> </el-popover> + <el-button class="link-left" type="danger" @click="downloadImportTemplate">涓嬭浇妯℃澘</el-button> + <el-upload + style="display: inline;" + class="op-item link-left" + action="/api/admin/question/import" + :with-credentials="true" + :on-success="handlePreview" + accept=".xls,.xlsx" + :show-file-list="false" + :before-upload="beforeAvatarUpload"> + <el-button v-loading="importLoading" type="primary">瀵煎叆</el-button> + </el-upload> </el-form-item> </el-form> <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%"> @@ -73,11 +85,13 @@ import Pagination from '@/components/Pagination' import QuestionShow from './components/Show' import questionApi from '@/api/question' +import { downloadExcel } from '@/utils/download' export default { components: { Pagination, QuestionShow }, data() { return { + importLoading: '', queryParam: { id: null, questionType: null, @@ -103,6 +117,33 @@ this.search() }, methods: { + handlePreview (e) { + this.importLoading = false + if (e.code === 1) { + this.search() + this.$message.success(e.message) + } else { + this.$message.error(e.message) + } + }, + beforeAvatarUpload (file) { + this.importLoading = true + let legalName = ['xlsx', 'xls'] + // 鎷垮埌鍚庣紑鍚� + let name = file.name.substring(file.name.lastIndexOf('.') + 1, file.name.length) + if (legalName.includes(name)) { + // console.log(legalName.includes(name)); + } else { + this.$message.warning('璇蜂笂浼爔ls銆亁lsx鏂囦欢') + return false + } + }, + // 涓嬭浇瀵煎叆妯℃澘 + downloadImportTemplate() { + questionApi.downloadImportTemplate().then(res => { + downloadExcel(res, '棰樼洰瀵煎叆妯℃澘') + }) + }, statusQuestion(row) { let question = { id: row.id, diff --git a/vue.config.js b/vue.config.js index cc6f74c..7978686 100644 --- a/vue.config.js +++ b/vue.config.js @@ -19,8 +19,8 @@ hotOnly: false, proxy: { '/api': { - // target: 'http://localhost:8000', - target: 'http://192.168.3.64:8000', + target: 'http://localhost:8000', + // target: 'http://192.168.3.64:8000', changeOrigin: true } } -- Gitblit v1.8.0