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/question/list.vue |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)

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,

--
Gitblit v1.8.0