diff --git a/src/api/examineApi.js b/src/api/examineApi.js index ccd445e5..2534d042 100644 --- a/src/api/examineApi.js +++ b/src/api/examineApi.js @@ -129,3 +129,30 @@ export const getDataById = (data) => http.post('/activityApi/teacher/getDataById export const getCertificationProcess = (data) => http.post('/activityApi/teacher/getCertificationProcess',data) //编辑认证 export const updateExamine = (data) => http.post('/activityApi/examine/updateExamine',data) +//添加权限 0: 查看 2: 管理 +export const addPermission = (data) => http.post('/activityApi/examinePermission/addPermission',data) + +//权限列表 +export const removePermission = (data)=>{ + return http({ + url:'/activityApi/examinePermission/list', + method: "post", + data:data + }) +} +//转移归属权 +export const transferPermission =(data)=>{ + return http({ + url:'/activityApi/examinePermission/transferPermission', + method: "post", + data:data + }) +} +//添加权限 +// export const addPermission = (data)=>{ +// return http({ +// url:'/activityApi/permission/addPermission', +// method: "post", +// data:data +// }) +// } \ No newline at end of file diff --git a/src/api/index.js b/src/api/index.js index f3f684d2..733c29b2 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -80,3 +80,5 @@ export const getProjectCount = (projectId) => http.get('/admin/project/projectCo export const login = (obj) => http.post('/admin/CheckUser/userLogin', obj) export const userInfo = () => http.get('/admin/CheckUser/userInfo') +//修改备注 +export const editStudent = (obj) => http.post('/admin/student/editStudent', obj) \ No newline at end of file diff --git a/src/api/indexProject.js b/src/api/indexProject.js index 7807ef11..571eacfb 100644 --- a/src/api/indexProject.js +++ b/src/api/indexProject.js @@ -19,4 +19,6 @@ export const dataStatisticsSelectV1= (obj) => http.post('/data/statistics/select //柱状体右侧获取数据接口 export const dataStatisticsSelectV2= (obj) => http.post('/data/statistics/select/v2', obj ) // 图表2 学习情况数据接口 -export const boeuStudyDataGetStudyStaisticsList= (obj) => http.post('/boeu/studyData/getStudyStatisticsList', obj ) \ No newline at end of file +export const boeuStudyDataGetStudyStaisticsList= (obj) => http.post('/boeu/studyData/getStudyStatisticsList', obj ) +//查看用户有无权限 +export const reportOrgs = (obj) => https.get('/orgHrbp/reportOrgs', {params:obj} ) \ No newline at end of file diff --git a/src/components/BreadCrumb.vue b/src/components/BreadCrumb.vue index eacd91a9..5b731036 100644 --- a/src/components/BreadCrumb.vue +++ b/src/components/BreadCrumb.vue @@ -606,6 +606,16 @@ } ]; } + if (n.indexOf("/trainingnewmanager") !== -1 || n.indexOf("/TrainingNewManager") !== -1) { + state.list = [ + { + name: "报表中心", + }, + { + name:'新任管理者培训数据' + }, + ]; + } if (n.indexOf("/learningpathmap") !== -1 || n.indexOf("/LearningPathMap") !== -1) { state.list = [ { diff --git a/src/components/NavLeft.vue b/src/components/NavLeft.vue index d13ece89..6ca8db52 100644 --- a/src/components/NavLeft.vue +++ b/src/components/NavLeft.vue @@ -584,6 +584,15 @@ 员工学习数据 + + + 新任管理者培训数据 +
@@ -1039,6 +1048,12 @@ export default { selectedKeys: "sub17-3-2", pagename: "员工学习数据", }, + { + href: "/trainingnewmanager", + openKeys: "sub17", + selectedKeys: "sub17-4", + pagename: "新任管理者培训数据", + }, { href: "/oldsystemmanage", openKeys: "sub18", @@ -1177,7 +1192,6 @@ export default { const getClientHeight = () => { state.screenHeight = document.body.clientHeight; }; - onMounted(() => { // console.log("11111", 1); window.addEventListener("resize", getClientHeight, false); diff --git a/src/components/drawers/project/ProjectEvalManage.vue b/src/components/drawers/project/ProjectEvalManage.vue index d124f7cb..eef96c3e 100644 --- a/src/components/drawers/project/ProjectEvalManage.vue +++ b/src/components/drawers/project/ProjectEvalManage.vue @@ -430,10 +430,7 @@ export default { // 导出数据 function exportTaskStu() { - if(!props.datasource.projectTaskId){ - props.datasource.projectTaskId = '' - } - window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.stageId}&type=${1}&pid=${props.datasource.projectId}&taskId=${props.datasource.projectTaskId}&taskType=${props.datasource.type}`) + window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.stageId}&type=${1}&pid=${props.datasource.projectId}&taskType=${props.datasource.type}`) // window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?pageNo=${state.currentPage}&pageSize=${state.pageSize}¤tStageId=${props.datasource.stageId}&type=${1}&pid=${props.datasource.projectId}&taskId=${props.datasource.projectTaskId}&status=${state.name}&studentName=${state.projectName}`) } diff --git a/src/components/drawers/project/ProjectExamManage.vue b/src/components/drawers/project/ProjectExamManage.vue index 8b7255a0..3a13aa2e 100644 --- a/src/components/drawers/project/ProjectExamManage.vue +++ b/src/components/drawers/project/ProjectExamManage.vue @@ -314,7 +314,7 @@ export default { align: "center", ellipsis: true, className: "h", - customRender: ({record:{status}}) => ({1:'已完成',0:'未开始',9:'已完成'}[status] || '未开始'), + customRender: ({record:{status}}) => ({2:'进行中',1:'未开始',9:'已完成'}[status] || '未开始'), }, { title: "操作", diff --git a/src/components/drawers/router/RouterEvaluationManage.vue b/src/components/drawers/router/RouterEvaluationManage.vue index c682cc3d..70ceb39c 100644 --- a/src/components/drawers/router/RouterEvaluationManage.vue +++ b/src/components/drawers/router/RouterEvaluationManage.vue @@ -428,11 +428,8 @@ export default { // 导出数据 function exportTaskStu() { - console.log(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}&taskType=${props.datasource.type}`) - if(!props.datasource.routerTaskId){ - props.datasource.routerTaskId = '' - } - window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}&taskType=${props.datasource.type}`) + console.log(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.id}&taskType=${props.datasource.type}`) + window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.id}&taskType=${props.datasource.type}`) // window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?pageNo=${state.currentPage}&pageSize=${state.pageSize}¤tStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}&status=${state.name}&studentName=${state.projectName}`) } diff --git a/src/components/student/OnlineClassModelStudent.vue b/src/components/student/OnlineClassModelStudent.vue index f33b0595..b4414a27 100644 --- a/src/components/student/OnlineClassModelStudent.vue +++ b/src/components/student/OnlineClassModelStudent.vue @@ -243,7 +243,7 @@ const columns = ref([ width: 80, align: "center", ellipsis: true, - customRender: ({ record: { finishStatus } }) => finishStatus ? "已完成" : "未开始", + customRender: ({ record: { finishStatus } }) => finishStatus==9 ? "已完成" : finishStatus==2 ? "进行中": '未开始', }, { title: "操作", diff --git a/src/components/student/TableStudent.vue b/src/components/student/TableStudent.vue index 8b7769c0..91325888 100644 --- a/src/components/student/TableStudent.vue +++ b/src/components/student/TableStudent.vue @@ -441,6 +441,10 @@ const props = defineProps({ type: Object, default: () => ({}), }, + remarksTrue: { + type: Boolean, + default: false, + } }); const { loading: stuAsyncLoading, start } = useAsyncStu(props.id, props.type, getStuList); @@ -540,7 +544,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 index d42e85c2..710a8c3d 100644 --- a/src/utils/zipdownload.js +++ b/src/utils/zipdownload.js @@ -18,6 +18,18 @@ export function downLoadZip(str, filename) { resolveBlob(res, mimeMap.zip,filename) }) } +const baseUrlManage = process.env.VUE_APP_BASE_API +export function downLoadZipManage(str, filename) { + var url = baseUrlManage + str + axios({ + method: 'get', + url: url, + responseType: 'blob', + headers: { 'Authorization': 'Bearer ' + getCookieForName("token") } + }).then(res => { + resolveBlob(res, mimeMap.xlsx,filename) + }) +} /** * 解析blob响应内容并下载 * @param {*} res blob响应内容 diff --git a/src/views/evaluation/evaluationUpload.vue b/src/views/evaluation/evaluationUpload.vue index 86b879f2..7a442fd1 100644 --- a/src/views/evaluation/evaluationUpload.vue +++ b/src/views/evaluation/evaluationUpload.vue @@ -878,6 +878,7 @@ import {downLoadZip} from "@/utils/zipdownload"; bg_remarks: false, checkclick: [], permissionId:'', + perWorkNum: '', filesList:[], tableData:[], tableData1:[], @@ -1285,6 +1286,7 @@ import {downLoadZip} from "@/utils/zipdownload"; await updateStatus({status:1,id:record.id}).then((res)=>{ if(res.code === 200){ message.success('禁用成功') + getByUserIds(record.workNum) saveListItem() listData() } @@ -1297,6 +1299,7 @@ import {downLoadZip} from "@/utils/zipdownload"; deleteId({id:record.id}).then((res)=>{ if(res.code === 200){ message.success('删除成功') + getByUserIds(record.workNum) saveListItem() listData() } @@ -1307,6 +1310,7 @@ import {downLoadZip} from "@/utils/zipdownload"; const updateAuthority = (record) => { state.bg_power = true state.permissionId = record.id + state.perWorkNum = record.workNum if(record.permission){ state.checkclick = record.permission.split(',') } @@ -1439,7 +1443,9 @@ import {downLoadZip} from "@/utils/zipdownload"; successIds:state.saveNotUpload?state.sussessIds.length!=0?state.sussessIds.split(','):null:null }).then((res)=>{ if(res.status == 500){ - message.error('测评标题和报告名称不一致') + if(res.message){ + message.error(res.message) + } state.uploadDownLoad = false state.uploadStatusType = false } @@ -1447,6 +1453,9 @@ import {downLoadZip} from "@/utils/zipdownload"; state.uploadDownLoad = false state.bg_check = false } + }).catch(err=>{ + state.uploadDownLoad = false + state.uploadStatusType = false }) } if(state.uploadStatusType){ @@ -1711,7 +1720,9 @@ import {downLoadZip} from "@/utils/zipdownload"; } //添加权限确定 const addSettingUp = async () => { - await savePermission({userList:[state.saveList],pid:state.saveListPid}) + if(JSON.stringify(state.saveList) !== '{}'){ + await savePermission({userList:[state.saveList],pid:state.saveListPid}) + } saveListItem() of_addsetting() listData() @@ -1725,21 +1736,22 @@ import {downLoadZip} from "@/utils/zipdownload"; state.bg_power2 = false state.powerStatus = {} state.permissionId = '' + state.perWorkNum = '' state.checkclick = [] } - const getByUserIds = async () => { - // const roleCode = userInfo.value - // const roleId = roleCode.roleList.find(item=>item.roleCode=='quiz-admin') || null - // const isQuizAdmin = roleId ? 1 : 0 - // await getByUserId({loginId:roleCode.userId,roleId,isQuizAdmin}).then(res=>{ - - // }) + const getByUserIds = async (workNum) => { + await getByUserId({workNum,}).then(res=>{ + // if(res.code == 200){ + // console.log(res.data,'workUnum') + // } + }) } const powerTrue = async () => { state.powerStatus.permission = state.checkclick.join(",") if(state.permissionId){ await updateStatus({id:state.permissionId,permission:state.checkclick.join(",")}).then((res)=>{ saveListItem() + getByUserIds(state.perWorkNum) }) } listData() @@ -1749,9 +1761,9 @@ import {downLoadZip} from "@/utils/zipdownload"; await updateStatus({status:0,id:record.id}).then((res)=>{ if(res.code === 200){ message.success('启用成功') + getByUserIds(record.workNum) listData() saveListItem() - getByUserIds() } }) } diff --git a/src/views/gratefulteacher/CommonTeacher.vue b/src/views/gratefulteacher/CommonTeacher.vue index d3779904..ef9809dc 100644 --- a/src/views/gratefulteacher/CommonTeacher.vue +++ b/src/views/gratefulteacher/CommonTeacher.vue @@ -360,6 +360,14 @@ type: String, default: null, }, + permissionType:{ + type: Number, + default: null, + }, + examineId:{ + type: String, + default: null + } }); const projectSelectKeys = ref([]); const projectSelectRows = ref([]); @@ -590,6 +598,7 @@ //清空选择部门信息 const deleteDepSelect = () => { stuSelectRows.value = []; + dataLists.value = [] selectedOrgKeys.value = []; projectSelectKeys.value = []; }; @@ -620,7 +629,21 @@ } handleStageOk(); } - + const dataLists = ref([]) + watch(()=>stuSelectRows.value,(val)=>{ + if(val.length!=0){ + console.log(val,'val') + dataLists.value = val.map(item=>{ + console.log(item,'item') + return{ + examineId:props.examineId, + name:item.realName, + userNo:item.userNo, + departName:item.departName, + permissionType:props.permissionType} + }) + } + }) function handleStageOk() { if (props.type === 1 && props.groupId && (props.groupMemberCount < (props.groupMemberNumber * 1 + projectSelectRows.value.length + stuSelectRows.value.length))) { return message.warning("添加小组学员超过最大值"); @@ -629,18 +652,7 @@ visiable.value = false; emit("finash", false); nameSearch.value.keyword = ""; - saveStu({ - targetId: props.id, - type: props.type, - clear: props.clear, - deptIds: deptList.value?.map((e) => e.id), - stageId: stageId.value, - groupIds: auditSelectRows.value?.map((e) => e.id), - studentList: stuSelectRows.value, - projectList: projectSelectRows.value, - groupName: props.groupName, - groupId: props.groupId, - }).then(() => { + addPermission(dataLists.value).then(() => { deleteDepSelect(); emit("finash", true); }); diff --git a/src/views/gratefulteacher/InstructorCertification.vue b/src/views/gratefulteacher/InstructorCertification.vue index 04854441..0c4f60f0 100644 --- a/src/views/gratefulteacher/InstructorCertification.vue +++ b/src/views/gratefulteacher/InstructorCertification.vue @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/src/views/learningpath/LevelAddDetail.vue b/src/views/learningpath/LevelAddDetail.vue index 5a2f0e9c..94c3ab1c 100644 --- a/src/views/learningpath/LevelAddDetail.vue +++ b/src/views/learningpath/LevelAddDetail.vue @@ -163,6 +163,10 @@ 任务列表
+
+ {{switchList?'自由学习模式':'顺序学习模式'}} + +
移动任务到关卡
@@ -547,7 +551,7 @@ function deleteTask(element, index) { }, }); } - +const switchList = ref(false) const showChangeModal = () => { if (routerInfo.value?.chapterList?.length <= 1) { message.warning("请添加关卡!"); diff --git a/src/views/projectcenter/TaskAdd.vue b/src/views/projectcenter/TaskAdd.vue index bf7da452..4056a9e0 100644 --- a/src/views/projectcenter/TaskAdd.vue +++ b/src/views/projectcenter/TaskAdd.vue @@ -119,6 +119,10 @@
任务列表
+
+ {{projectInfo?.projectInfo?.unlockMode == 1 ?'自由学习模式':'顺序学习模式'}} + +
@@ -418,7 +422,7 @@ import {TASK_TYPE} from "@/utils/const"; import {request} from "@/api/request"; import {PROJECT_DETAIL_MODIFY, PROJECT_RELEASE} from "@/api/apis"; import dialog from "@/utils/dialog"; - +import { editProjectModel } from "@/api/indexLearningPath"; const route = useRoute(); const courseRef = ref({}) const visiblene = ref(false); @@ -460,6 +464,7 @@ function changeStageIndex(index) { const getTask = async () => { await api.getDraftTask({projectId: route.query.projectId}).then((res) => { projectInfo.value = res.data.data + projectInfo.value.projectInfo.unlockMode == 1 ? switchList.value = true : switchList.value = false console.log("获取任务列表:" + JSON.stringify(projectInfo.value) ) }); }; @@ -467,7 +472,11 @@ const getTask = async () => { const editTaskForType = (ele, index) => { courseRef.value['el' + ele.type].openDrawer(index, ele) }; - +const switchList = ref(false) +watch(()=>switchList.value,(newVal)=>{ + newVal ? projectInfo.value.projectInfo.unlockMode = 1 : projectInfo.value.projectInfo.unlockMode = 2 + editProjectModel(projectInfo.value.projectInfo) +}) const showChangeModal = () => { if (projectInfo.value?.stageList?.length <= 1) { message.warning("请添加阶段!"); @@ -1420,6 +1429,21 @@ const openCourse = (ele) => { color: #000000; margin-top: 10px; } + .taskmain_switch{ + position: absolute; + top: 0; + right: 268px; + width: 150px; + height: 40px; + border-radius: 8px; + cursor: pointer; + text-align: center; + line-height: 40px; + + .taskmain_switch_text{ + margin-right: 10px; + } + } .btn { position: absolute; diff --git a/src/views/projectcenter/TaskPage.vue b/src/views/projectcenter/TaskPage.vue index a4c0ed38..eebfca37 100644 --- a/src/views/projectcenter/TaskPage.vue +++ b/src/views/projectcenter/TaskPage.vue @@ -827,6 +827,7 @@ :stage="stage" :visable="tabFlag" :groupList="groupList" + :remarksTrue="remarksTrue" > @@ -2347,6 +2353,43 @@ + + +
+
+
+
+
修改备注
+
+
+
+
+ +
+ +
+
+ +
+
+
+
+ + \ No newline at end of file