diff --git a/src/router/index.js b/src/router/index.js index 6a2e8a8483bbcf591c9ac0f6f6a97bdfbca1d694..67476931c55ed9bd63033b14f8ffb1dedfa84910 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -19,6 +19,38 @@ const routes = [ // which is lazy-loaded when the route is visited. component: () => import(/* webpackChunkName: "about" */ '@/yudingyi/views/auth/RegisterView.vue') }, + { + path: '/researchReport', + name: 'researchReport', + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import(/* webpackChunkName: "about" */ '@/yudingyi/views/reports/ResearchReportView.vue') + }, + { + path: '/researchEval', + name: 'researchEval', + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import(/* webpackChunkName: "about" */ '@/yudingyi/views/evals/ResearchEvalView.vue') + }, + { + path: '/practiceReport', + name: 'practiceReport', + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import(/* webpackChunkName: "about" */ '@/yudingyi/views/reports/PracticeReportView.vue') + }, + { + path: '/practiceEval', + name: 'practiceEval', + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import(/* webpackChunkName: "about" */ '@/yudingyi/views/evals/PracticeEvalView.vue') + }, { path: '/', redirect: '/student', diff --git a/src/utils/request.js b/src/utils/request.js index 0915571a997b78234d6375ee1bf43ed1faee4efa..99dad938d1d0d655598f9a2b323c5b20d87c863f 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -15,7 +15,7 @@ service.interceptors.request.use( if (getToken('token')) { config.headers['Authorization'] = getToken('token');// 让每个请求携带自定义token 请根据实际情况自行修改 } - + console.log(config); return config; }, error => { diff --git a/src/views/ReportView.vue b/src/views/ReportView.vue index 47610a8baf8baeee294b7ef622e7b8ae5446d471..85c31ad41a10b89231e94deabb85f7f17eea4e11 100644 --- a/src/views/ReportView.vue +++ b/src/views/ReportView.vue @@ -2,304 +2,36 @@ @@ -337,4 +69,25 @@ h2 { h2:nth-child(1) { margin: 0; } + +.tableBar { + display: flex; + margin-bottom: 20px; + justify-content: space-between; +} + +.tableLab .span-btn { + cursor: pointer; + display: inline-block; + font-size: 14px; + padding: 0 20px; + color: #818693; + border-right: solid 1px #d8dde3; +} + +.tableLab .el-button{ + margin-left: 10px; +} + + diff --git a/src/yudingyi/api/practice.js b/src/yudingyi/api/practice.js new file mode 100644 index 0000000000000000000000000000000000000000..4286354858eeedf3838e37535784f83565630553 --- /dev/null +++ b/src/yudingyi/api/practice.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 获取学生的所有科研 +export function getPracticeList(){ + return request({ + url: '/practice/mylist', + method: 'get', + }) +} + +export function getPraEvalList(id) { + return request({ + url: '/practice/get-list', + method: 'get', + params: { id } + }) +} + +export function uploadPracticeFile(){ + return request({ + url: '/file/upload', + method: 'post', + }) +} + +//学生提交填写好的科研信息 +export function submitPractice(reqVo) { + return request({ + url: '/practice/insert', + method: 'post', + data: reqVo + }) +} + +// 删除信息 +export function deletePractice( id ) { + return request({ + url: '/practice/delete', + method: 'post', + params: { id } + }) +} + +// 修改信息 +export function checkPractice() { + return request({ + url: '/practice/check', + method: 'get', + }) +} + + +//老师提交打出的分数 +export function pracScoreSubmit(score) { + return request({ + url: '/practice/give-score', + method: 'post', + data: score + }) +} diff --git a/src/yudingyi/api/researchSubmit.js b/src/yudingyi/api/research.js similarity index 33% rename from src/yudingyi/api/researchSubmit.js rename to src/yudingyi/api/research.js index 81919009a0a9d332045d14f95e7c9224f64cbd76..1a30a75b9ef229378aa0888cb1a14bff517ecab9 100644 --- a/src/yudingyi/api/researchSubmit.js +++ b/src/yudingyi/api/research.js @@ -1,7 +1,30 @@ import request from '@/utils/request' -// 修改信息 + +// 获取学生的所有科研 +export function getResearchList(){ + return request({ + url: '/research/mylist', + method: 'get', + }) +} + +export function getList(id) { + return request({ + url: '/research/get-list', + method: 'get', + params: { id } + }) +} + +export function uploadResearchFile(){ + return request({ + url: '/file/upload', + method: 'post', + }) +} + //学生提交填写好的科研信息 -export function researchSubmit(reqVo) { +export function submitResearch(reqVo) { return request({ url: '/research/insert', method: 'post', @@ -9,6 +32,24 @@ export function researchSubmit(reqVo) { }) } +// 删除信息 +export function deleteResearch( id ) { + return request({ + url: '/research/delete', + method: 'post', + params: { id } + }) +} + +// 修改信息 +export function checkResearch() { + return request({ + url: '/research/check', + method: 'get', + }) +} + + //老师提交打出的分数 export function scoreSubmit(score) { return request({ diff --git a/src/yudingyi/views/admins/OutputView.vue b/src/yudingyi/views/admins/OutputView.vue index 0195bca78f2e80504ef4a157ac18f7bfe12ff818..f47864a93243313a19f34ed08b4f012b612f1562 100644 --- a/src/yudingyi/views/admins/OutputView.vue +++ b/src/yudingyi/views/admins/OutputView.vue @@ -68,8 +68,8 @@
- 导出汇总表 - 导出评审细节表 + 导出汇总表 + 导出评审细节表
@@ -105,19 +105,31 @@ export default { console.log('通过接口获取表格'); exportTable(table_name) .then (response => { - const url = window.URL.createObjectURL(new Blob([response.data])); - const link = document.createElement('a'); - link.href = url; - let file_name = table_name + '.xlsx'; - link.setAttribute('download', file_name); - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); + // const url = window.URL.createObjectURL(new Blob([response.data])); + // const link = document.createElement('a'); + // link.href = url; + const file_name = table_name + '.xlsx'; + this.saveFile(response, file_name); + // link.setAttribute('download', file_name); + // document.body.appendChild(link); + // setTimeout(() => link.click(), 100); + // link.remove(); + // document.body.removeChild(link); alert("导出成功" + table_name); } ) .catch(error => console.error('导出Excel失败:', error)); }, + saveFile(response, filename) { + const data = new Blob([response], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); + const url = window.URL.createObjectURL(data); + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', filename); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + }, } }; diff --git a/src/yudingyi/views/evals/PracticeEvalView.vue b/src/yudingyi/views/evals/PracticeEvalView.vue new file mode 100644 index 0000000000000000000000000000000000000000..03dcc33144b519ba0d139631435278e73b223f93 --- /dev/null +++ b/src/yudingyi/views/evals/PracticeEvalView.vue @@ -0,0 +1,274 @@ + + + + + + + diff --git a/src/yudingyi/views/evals/ResearchEvalView.vue b/src/yudingyi/views/evals/ResearchEvalView.vue index 5e81da0f66e026e1d8c8450eb633a5e181cb2540..2e0927754e9b5ff14dba07b22548ed4df270928a 100644 --- a/src/yudingyi/views/evals/ResearchEvalView.vue +++ b/src/yudingyi/views/evals/ResearchEvalView.vue @@ -1,6 +1,4 @@ -