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 @@
-
用户信息
-
-
-
-
-
-
-
-
-
-
-
- 保存
-
-
-
-
-
成绩表
-
-
-
-
-
-
-
志愿服务
-
-
-
-
-
-
-
-
学生骨干服务岗位任职
-
-
-
-
-
-
-
-
-
-
科研成果
+
于丁一接口
注:
-
每个成果项目最多上传一个word/pdf文件,且不超过500kb。
-
在审状态的成果产出日期选择当前日期。
-
对于来源出处填框,对于论文填写发表所在的期刊;对于专利填写专利类型(如实用新型专利)。
+
不同的功能接口,麻烦自行与home菜单拼合,并为每个接口(除退出登录外)增加返回按键
-
-
-
- 成果名称:
-
-
-
- 类型与产出时间:
-
-
-
-
-
-
-
-
- 来源出处:
-
-
-
-
- 级别与贡献度:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 点击上传证明材料
-
-
-
- 删除该项目
-
-
- 提交
- 新增项目
- 保存
-
-
+
退出登录
+
导出界面
+
进入填报科研情况页面
+
进入科研评委打分页面
+
进入填报实践情况页面
+
进入实践评委打分页面
-
竞赛获奖情况
-
-
-
-
-
-
-
-
-
社会实践情况
-
-
-
-
-
-
-
-
-
个人学年总结
-
-
-
- {{ scope.row.id }}
-
-
-
-
- {{ scope.row.name }}
-
-
-
-
- {{ scope.row.grade }}
-
-
-
-
- {{ scope.row.major }}
-
-
-
-
- {{ scope.row.url }}
-
-
-
-
-
-
-
-
@@ -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 @@
+
+
+
+
+
实践情况审核
+
+
+ 清除所有过滤器
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+ 打回
+
+
+
+
+
+ {{current_submit}}
+
+
+
+
+
+
+ 下载
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
@@ -24,11 +22,11 @@
-
-
-
+
+
+
@@ -41,44 +39,28 @@
{{current_submit}}
-
-
+
+
-
-
-
-
+
+
+
+
+
+ 下载
+
+
-
-
-
-
-
-
-
-
-
+ width="30%">
@@ -104,21 +86,6 @@
取消
确认
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -131,8 +98,7 @@
+
+
diff --git a/src/yudingyi/views/reports/ResearchReportView.vue b/src/yudingyi/views/reports/ResearchReportView.vue
index 762e8b7939538df55c1a33efb3de094d26f00c19..9331e071bc9d8c48689d779d72aa1124e0088e71 100644
--- a/src/yudingyi/views/reports/ResearchReportView.vue
+++ b/src/yudingyi/views/reports/ResearchReportView.vue
@@ -1,11 +1,407 @@
-
+
+ 科研成果
+
+ 注:
+ 每个成果项目最多上传一个word/pdf文件,且不超过500kb。
+ 在审状态的成果产出日期选择当前日期。
+ 对于来源出处填框,对于论文填写发表所在的期刊;对于专利填写专利类型(如实用新型专利)。
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击上传证明材料
+
+
+
+
+
+ 提交
+ 保存
+ 返回
+
+
+
+
+
+
diff --git a/yarn.lock b/yarn.lock
index d64248f0e708ee9b88ac90420eb5a2e8a493d8c3..895e3e81dc5945d67ecb4234257dfbafcc063c47 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5167,35 +5167,40 @@ path-to-regexp@0.1.7:
resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
-"path-type@^4.0.0":
- "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
- "resolved" "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz"
- "version" "4.0.0"
-
-"pathval@^1.1.1":
- "integrity" "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ=="
- "resolved" "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz"
- "version" "1.1.1"
-
-"picocolors@^0.2.1":
- "integrity" "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
- "resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz"
- "version" "0.2.1"
-
-"picocolors@^1.0.0":
- "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- "resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz"
- "version" "1.0.0"
-
-"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1":
- "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
- "resolved" "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz"
- "version" "2.3.1"
-
-"pkg-dir@^4.1.0":
- "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="
- "resolved" "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz"
- "version" "4.2.0"
+path-to-regexp@^6.2.1:
+ version "6.2.1"
+ resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5"
+ integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==
+
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+pathval@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz"
+ integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
+
+picocolors@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz"
+ integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
+
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pkg-dir@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
dependencies:
find-up "^4.0.0"
@@ -5576,20 +5581,27 @@ qs@6.11.0:
dependencies:
side-channel "^1.0.4"
-"querystringify@^2.1.1":
- "integrity" "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
- "resolved" "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz"
- "version" "2.2.0"
+qs@^6.11.2:
+ version "6.11.2"
+ resolved "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9"
+ integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==
+ dependencies:
+ side-channel "^1.0.4"
-"queue-microtask@^1.2.2":
- "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
- "resolved" "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz"
- "version" "1.2.3"
+querystringify@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz"
+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-"randombytes@^2.1.0":
- "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="
- "resolved" "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz"
- "version" "2.1.0"
+randombytes@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
dependencies:
safe-buffer "^5.1.0"