diff --git a/src/api/evaluation.js b/src/api/evaluation.js index f6788ad2..191a5b84 100644 --- a/src/api/evaluation.js +++ b/src/api/evaluation.js @@ -34,4 +34,6 @@ export const savePermission = (obj) => http.post(`${process.env.VUE_APP_ACT_API} export const saveLists = (obj) => http.post(`${process.env.VUE_APP_ACT_API}/permission/list`,obj) //删除配置管理 export const deleteId = (obj) => http.post(`${process.env.VUE_APP_ACT_API}/permission/delete`,obj) +//普通管理员权限 +export const getByUserId = (obj) => http.post(`${process.env.VUE_APP_ACT_API}/permission/getByUserId`,obj) diff --git a/src/components/drawers/router/RouterFaceStu.vue b/src/components/drawers/router/RouterFaceStu.vue index 2203721c..a03cb60a 100644 --- a/src/components/drawers/router/RouterFaceStu.vue +++ b/src/components/drawers/router/RouterFaceStu.vue @@ -512,7 +512,7 @@ const qrcodeVisibleSign = () => { courseName: props.courseName, createName: data.value[coursePlanIndex.value].offteachers.map(teacher => teacher.teacherName).join(', '), name: signName + '课程签到', - url: `${location.protocol}//${location.host}${process.env.VUE_APP_BASE_API}/admin/student/studentSign?taskId=${taskId}&taskType=${2}&type=${3}`, + url: `${location.protocol}//${location.host}${process.env.VUE_APP_BASE_API}/admin/student/studentSign?taskId=${taskId}&taskType=${2}&type=${3}&openCourseId=${taskId}`, }); } // qrCode({ diff --git a/src/components/student/TableStudent.vue b/src/components/student/TableStudent.vue index 8b7769c0..ee9bd636 100644 --- a/src/components/student/TableStudent.vue +++ b/src/components/student/TableStudent.vue @@ -540,7 +540,7 @@ const tablecolumns = ref([ title: "操作", dataIndex: "operation", key: "operation", - width: 210, + width: 260, align: "center", slots: { customRender: "action" }, }, diff --git a/src/utils/zipdownload.js b/src/utils/zipdownload.js new file mode 100644 index 00000000..d42e85c2 --- /dev/null +++ b/src/utils/zipdownload.js @@ -0,0 +1,36 @@ +import axios from 'axios' +import {getCookieForName} from "@/api/method"; + +const mimeMap = { + xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + zip: 'application/zip' +} + +const baseUrl = process.env.VUE_APP_ACT_API +export function downLoadZip(str, filename) { + var url = baseUrl + str + axios({ + method: 'get', + url: url, + responseType: 'blob', + headers: { 'Authorization': 'Bearer ' + getCookieForName("token") } + }).then(res => { + resolveBlob(res, mimeMap.zip,filename) + }) +} +/** + * 解析blob响应内容并下载 + * @param {*} res blob响应内容 + * @param {String} mimeType MIME类型 + */ +export function resolveBlob(res, mimeType,filename) { + const link = document.createElement('a');// 创建a标签 + let blob = new Blob([res.data], { type: mimeType }); // 设置文件类型 + link.style.display = "none"; + link.href = URL.createObjectURL(blob); // 创建URL + link.setAttribute("download", `${filename}`); + document.body.appendChild(link); + link.click(); + URL.revokeObjectURL(link.href); + document.body.removeChild(link); +} diff --git a/src/views/courselibrary/CoursewareManage.vue b/src/views/courselibrary/CoursewareManage.vue index d6d7ce2d..f43b2915 100644 --- a/src/views/courselibrary/CoursewareManage.vue +++ b/src/views/courselibrary/CoursewareManage.vue @@ -5118,7 +5118,9 @@ function onFocusEnd(){ : process.env.VUE_APP_BASE_API + `/admin/student/studentSign?taskId=${ record.id - }&taskType=${2}&type=${3}`, + }&taskType=${2}&type=${3}&openCourseId=${ + record.id + }`, }; console.log("codeInfo", state.codeInfo, record); state.codeIndex = 0; diff --git a/src/views/evaluation/EvaDown.vue b/src/views/evaluation/EvaDown.vue index cda8484d..a502f703 100644 --- a/src/views/evaluation/EvaDown.vue +++ b/src/views/evaluation/EvaDown.vue @@ -69,6 +69,7 @@ import { useRoute } from "vue-router"; import { message } from "ant-design-vue"; import { useStore } from "vuex"; import {boeRequest} from "@/api/request"; +import {downLoadZip} from "@/utils/zipdownload"; export default { name: "evadown", components: {}, @@ -165,7 +166,8 @@ import {boeRequest} from "@/api/request"; message.info('请先上传报告') return } - window.open(`/activityApi/evaluation/download?id=${route.query.id}`); + // window.open(`/activityApi/evaluation/download?id=${route.query.id}`); + downLoadZip(`/evaluation/download?id=${route.query.id}`,route.query.name) } const listData = async () => { state.tableLoading = true diff --git a/src/views/evaluation/evaluationUpload.vue b/src/views/evaluation/evaluationUpload.vue index 153daf2b..7a442fd1 100644 --- a/src/views/evaluation/evaluationUpload.vue +++ b/src/views/evaluation/evaluationUpload.vue @@ -49,6 +49,69 @@ :pagination="false" > +
@@ -161,7 +224,7 @@
+ :before-upload="beforeUpload" @change="handleChangeImg"> avatar
@@ -177,15 +240,13 @@
-
-
上传说明
+
+
备注
- - 1、仅支持1个zip压缩包和pdf报告上传;
- 2、单个附件命名规则:测评名称+姓名+工号(名称中间用英文输入法-连接)例如:大五职业性格测评-李玉冰-00004409.pdf -
+
+
@@ -215,14 +276,49 @@
-
+ + + + + + + +
@@ -235,9 +331,12 @@ :class="`${{uploading: 'updatacolor3', done: 'updatacolor' ,error: 'updatacolor2'}[item.status] || 'updatacolor'}`" :style="{width:`${item.status==='uploading'?parseInt(item.percent):100}%`}">
- {{ {uploading: '正在上传', done: '上传完成', error: '上传失败'}[item.status] || '' }} + {{ {uploading: '正在上传', done: '上传完成', error: '报告错误'}[item.status] || '' }} + + 下载 +
@@ -245,16 +344,22 @@
-
- 删除 +
+ + + +
-
+
-->
-
-
备注
+
+
上传说明
- + + 1、仅支持1个zip压缩包和pdf报告上传;
+ 2、单个附件命名规则:测评名称+姓名+工号(名称中间用英文输入法-连接)例如:大五职业性格测评-李玉冰-00004409.pdf +
上传结果
-
上传的测评报告总文件数{{totalNumber.totalEntries}}个,成功{{totalNumber.successfulEntries}}个,失败{{totalNumber.failedEntries}}个;
上传结果请下载查看!
+
上传的测评报告总文件数{{totalNumber.totalEntries}}个,成功{{totalNumber.successfulEntries}}个,失败{{totalNumber.failedEntries}}个;
请点击"记录下载"查看!
@@ -511,15 +618,17 @@
-
+
-