diff --git a/src/utils/request.js b/src/utils/request.js index 99dad938d1d0d655598f9a2b323c5b20d87c863f..c7d38b1e9f2f665b539beccac5e10fb5833a1e4a 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 1ab3fc0537eae506e222d77eb30dd3d944f1a057..918597681a837a0ba6b681be94395b353c6d8da4 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 03dcc33144b519ba0d139631435278e73b223f93..d4e2e587f2f8d8ecd458c186e54dd9e601f0a256 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 2e0927754e9b5ff14dba07b22548ed4df270928a..85bbfad452e49022e0112bd3a2c73d895b4e2794 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;