From 1acc8ac67322f4df4f20275e1fa188d270a8be58 Mon Sep 17 00:00:00 2001 From: yudingyi Date: Mon, 3 Jul 2023 14:01:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/request.js | 4 +++- src/yudingyi/api/exportExcel.js | 1 + src/yudingyi/views/evals/PracticeEvalView.vue | 24 ++++++++++++++++--- src/yudingyi/views/evals/ResearchEvalView.vue | 23 +++++++++++++++--- 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src/utils/request.js b/src/utils/request.js index 99dad93..c7d38b1 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,8 +1,10 @@ import axios from 'axios'; import {getToken} from '@/utils/token' +export const BASE_URL = "http://localhost:20235"; + const service = axios.create({ - baseURL: 'http://localhost:20235', + baseURL: BASE_URL, timeout: 5000, withCredentials: true, }); diff --git a/src/yudingyi/api/exportExcel.js b/src/yudingyi/api/exportExcel.js index 1ab3fc0..9185976 100644 --- a/src/yudingyi/api/exportExcel.js +++ b/src/yudingyi/api/exportExcel.js @@ -14,3 +14,4 @@ export function exportTable(table_name) { + diff --git a/src/yudingyi/views/evals/PracticeEvalView.vue b/src/yudingyi/views/evals/PracticeEvalView.vue index 03dcc33..d4e2e58 100644 --- a/src/yudingyi/views/evals/PracticeEvalView.vue +++ b/src/yudingyi/views/evals/PracticeEvalView.vue @@ -96,6 +96,9 @@ import Vue from 'vue'; import Plugin from 'v-fit-columns'; import {checkPractice, getPraEvalList, pracScoreSubmit} from "@/yudingyi/api/practice"; +import axios from "axios"; +import {BASE_URL} from "@/utils/request"; + Vue.use(Plugin); export default { data() { @@ -197,9 +200,24 @@ export default { }); }, downloadResearch(index) { - console.log(index); - // 下载所有文件 - // ... + let clickedItem = this.gridData[index]; + axios({ + url: BASE_URL + `/api/downloadFiles/${encodeURIComponent(clickedItem.fileUrl)}`, + method: 'GET', + responseType: 'blob', // important + }).then(response => { + const url = window.URL.createObjectURL(new Blob([response.data])); + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', clickedItem.fileUrl); // 这里的 'this.form.fileUrl' 是数据库中存储的url,可根据实际情况修改 + document.body.appendChild(link); + link.click(); + // handle your response here + }).catch(error => { + console.error('Download failed:', error); + this.$message.error('未上传证明文件') + // handle your error here + }); }, withdrawGive(){ this.given_score = 0; diff --git a/src/yudingyi/views/evals/ResearchEvalView.vue b/src/yudingyi/views/evals/ResearchEvalView.vue index 2e09277..85bbfad 100644 --- a/src/yudingyi/views/evals/ResearchEvalView.vue +++ b/src/yudingyi/views/evals/ResearchEvalView.vue @@ -99,6 +99,8 @@ import Vue from 'vue'; import Plugin from 'v-fit-columns'; import {checkResearch, getList, scoreSubmit} from "@/yudingyi/api/research"; +import axios from "axios"; +import {BASE_URL} from "@/utils/request"; Vue.use(Plugin); export default { data() { @@ -199,9 +201,24 @@ export default { }); }, downloadResearch(index) { - console.log(index); - // 下载所有文件 - // ... + let clickedItem = this.gridData[index]; + axios({ + url: BASE_URL + `/api/downloadFiles/${encodeURIComponent(clickedItem.fileUrl)}`, + method: 'GET', + responseType: 'blob', // important + }).then(response => { + const url = window.URL.createObjectURL(new Blob([response.data])); + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', clickedItem.fileUrl); // 这里的 'this.form.fileUrl' 是数据库中存储的url,可根据实际情况修改 + document.body.appendChild(link); + link.click(); + // handle your response here + }).catch(error => { + console.error('Download failed:', error); + this.$message.error('未上传证明文件') + // handle your error here + }); }, withdrawGive(){ this.given_score = 0; -- Gitee