左侧菜单

This commit is contained in:
zhangsir
2024-06-28 13:30:08 +08:00
parent 2030879c1f
commit 4269bff0b5
3 changed files with 156 additions and 31 deletions

View File

@@ -20,7 +20,17 @@ const getTaskNum = function(){
const userTaskList = function(data){
return ajax.postJson(baseURL,'/todoTask/queryTodoTaskDetail',data);
}
//领导力必修
const leadership = function(data){
return ajax.postJson(baseURL,'/todoTask/leadership',data);
}
//定制化学习 1.学习项目 2.学习路径
const customized = function(data){
return ajax.postJson(baseURL,'/todoTask/customized',data);
}
const compulsoryList = function(data){
return ajax.postJson(baseURL,'/todoTask/compulsoryList',data);
}
/**删除学习,取消报名*/
const userDeleteStudy = function(data){
return ajax.postJson(baseURL,'/stu/project/stuCancelEnrollment',data);
@@ -37,6 +47,9 @@ const userRsSginupCourse = function(data){
export default {
getTaskNum,
userTaskList,
leadership,
customized,
compulsoryList,
userDeleteStudy,
userRsSginupCourse
}

View File

@@ -248,19 +248,19 @@
<svg-icon icon-class="mystudy"></svg-icon>
<span>我的学习</span>
</template>
<el-menu-item index="/uc/study/task">
<!-- <el-menu-item index="/uc/study/task"> -->
<!-- <i class="el-icon-menu"></i> -->
<span slot="title" class="study textl"><el-badge :value="studyTaskCount||''" class="item">学习任务</el-badge></span>
</el-menu-item>
<el-menu-item index="/uc/study/courses">
<!-- <span slot="title" class="study textl"><el-badge :value="studyTaskCount||''" class="item">学习任务</el-badge></span>
</el-menu-item> -->
<!-- <el-menu-item index="/uc/study/courses"> -->
<!-- <i class="el-icon-menu"></i> -->
<!-- <span slot="title" class="textl">自主学习</span> -->
<span slot="title" class="textl">我报名的</span>
</el-menu-item>
<el-menu-item index="/exam/mytask">
<!-- <i class="el-icon-menu"></i> -->
<!-- <span slot="title" class="textl">我报名的</span>
</el-menu-item> -->
<!-- <el-menu-item index="/exam/mytask">
<i class="el-icon-menu"></i>
<span slot="title" class="textl">我的考试</span>
</el-menu-item>
</el-menu-item> -->
<!---去掉->
<!-- <el-menu-item index="/uc/study/path" v-show="isTest">
<span slot="title" class="textl">学习路径图</span>
@@ -273,19 +273,19 @@
<!-- <span slot="title" class="textl">历史记录</span>
</el-menu-item> -->
</el-submenu>
<!-- <el-submenu index="mycompulsory" v-show="curIdentity == 1">
<el-submenu index="mystudy" v-show="curIdentity == 1">
<template slot="title">
<svg-icon icon-class="mystudy"></svg-icon>
<span>我的必修</span>
</template>
<el-menu-item index="/uc/study/task">
<span slot="title" class="study textl"><el-badge :value="studyTaskCount||''" class="item">领导力必修</el-badge></span>
<el-menu-item v-if="fistTotal" index="/uc/study/task?type=1">
<span slot="title" class="study textl"><el-badge :value="fistTotal||''" class="item">领导力必修</el-badge></span>
</el-menu-item>
<el-menu-item index="/uc/study/courses">
<el-menu-item index="uc/study/growth">
<span slot="title" class="textl"><el-badge :value="studyTaskCount||''" class="item">专业力必修</el-badge></span>
</el-menu-item>
<el-menu-item index="/exam/mytask">
<span slot="title" class="textl"><el-badge :value="studyTaskCount||''" class="item">定制化学习</el-badge></span>
<el-menu-item v-if="pathTotal + proTotal" index="/uc/study/task?type=2">
<span slot="title" class="textl"><el-badge :value="pathTotal + proTotal||''" class="item">定制化学习</el-badge></span>
</el-menu-item>
</el-submenu>
<el-submenu index="myelective" v-show="curIdentity == 1">
@@ -293,14 +293,14 @@
<svg-icon icon-class="mystudy"></svg-icon>
<span>我的选修</span>
</template>
<el-menu-item index="/uc/study/task">
<el-menu-item index="/uc/study/courses">
<span slot="title" class="study textl"><el-badge :value="studyTaskCount||''" class="item">自选学习</el-badge></span>
</el-menu-item>
</el-submenu>
<el-menu-item index="/exam/mytask" v-show="curIdentity == 1">
<svg-icon :icon-class="activeMenu == '/exam/mytask'?'mybiji-active':'mybiji'"></svg-icon>
<span slot="title">我的考试</span>
</el-menu-item> -->
</el-menu-item>
<el-menu-item index="/user/Mynotes" v-show="curIdentity == 1">
<svg-icon :icon-class="activeMenu == '/user/Mynotes'?'mybiji-active':'mybiji'"></svg-icon>
<span slot="title">我的笔记</span>
@@ -414,6 +414,7 @@ import apicourseStudy from "../../api/modules/courseStudy.js"
import {pageList} from "@/api/modules/lecturer"
import courseImage from "@/components/Course/courseImage.vue"
import testUser from '@/utils/testUsers.js'
import apiManage from '@/api/manage/manage.js'
export default {
name: 'UcMenu',
components: {
@@ -441,7 +442,10 @@ export default {
isCollapse: false,
lastStudy:{},
overlayShow: false,
instructor:0
instructor:0,
fistTotal:0,
proTotal: 0,
pathTotal:0,
};
},
created() {
@@ -450,6 +454,7 @@ export default {
this.getLastStudy();
//获取讲师认证中条数
this.instructorCertification()
this.learnTotal()
},
mounted() {
//console.log(this.userInfo.loginName,'this.userInfo.loginName');
@@ -462,6 +467,26 @@ export default {
// }
},
methods: {
learnTotal(){
let params = {
pageNo: 1,
pageSize: 10,
cmtask_user_status: "",
cmtask_name: ""
}
//领导力
apiManage.leadership(params).then(res=>{
this.fistTotal =parseInt(res.data.total);
})
//项目
apiManage.customized(params).then(res=>{
this.proTotal =parseInt(res.data.total);
})
//学习路径
apiManage.compulsoryList(params).then(res=>{
this.pathTotal =parseInt(res.data.total);
})
},
//讲师认证条数
instructorCertification(){
pageList({ teacherNo:this.userInfo.userNo,courseName:'', pageNo: 1, pageSize: 10}).then(res=>{

View File

@@ -7,6 +7,10 @@
<div class="progress"><div class="msg">路径图完成情况</div> <el-progress :text-inside="true" :stroke-width="16" :percentage="porcessData.router" class="progressItem"> </el-progress> </div>
</div> -->
<div v-if="isType == 2" class="title">
<div class="item" style="margin-right: 19px;" :class="typeClass == 1?'item1':'item'" @click="learnType(1)">学习项目</div>
<div class="item" :class="typeClass == 2?'item1':'item'" @click="learnType(2)">学习路径</div>
</div>
<div style="display: flex; justify-content: space-between; padding: 12px 32px 10px 22px;">
<div style="display: flex; justify-content: flex-start">
<div>
@@ -107,14 +111,30 @@ export default {
keyword:'',
formatsec,
couresList:[],
total: 0
total: 0,
isType: null,
typeClass: true,
};
},
watch:{
'$route': {
handler(to, from) {
console.log('type变化了', to.query.type);
this.isType = to.query.type;
this.loadBoeData();
},
immediate: true
}
},
mounted() {
this.loadBoeData();
this.getPossData()
},
methods: {
learnType(item){
this.typeClass = item
this.reset()
},
jumpRouter(item) {
//location.href=`${this.webBaseUrl}/course/boeframe?id=${item.cmtask_id}`;
@@ -157,17 +177,59 @@ export default {
cmtask_name:this.params.cmtask_name,
}
this.loading=true;
apiManage.userTaskList(params).then(res=>{
if(res.code==200){
this.total =parseInt(res.data.total);
this.couresList = res.data.records;
}else{
this.$message.error('查询数据失败:'+res.msg);
}
this.loading=false;
}).catch(()=>{
this.loading=false;
})
if(this.isType == 1){
//领导力必修
apiManage.leadership(params).then(res=>{
if(res.code==200){
this.total =parseInt(res.data.total);
this.couresList = res.data.records;
}else{
this.$message.error('查询数据失败:'+res.msg);
}
this.loading=false;
}).catch(()=>{
this.loading=false;
})
}else if (this.isType == 2){
//定制化学习
if(this.typeClass == 1){
apiManage.customized(params).then(res=>{
if(res.code==200){
this.total =parseInt(res.data.total);
this.couresList = res.data.records;
}else{
this.$message.error('查询数据失败:'+res.msg);
}
this.loading=false;
}).catch(()=>{
this.loading=false;
})
}else{
apiManage.compulsoryList(params).then(res=>{
if(res.code==200){
this.total =parseInt(res.data.total);
this.couresList = res.data.records;
}else{
this.$message.error('查询数据失败:'+res.msg);
}
this.loading=false;
}).catch(()=>{
this.loading=false;
})
}
}else{
apiManage.userTaskList(params).then(res=>{
if(res.code==200){
this.total =parseInt(res.data.total);
this.couresList = res.data.records;
}else{
this.$message.error('查询数据失败:'+res.msg);
}
this.loading=false;
}).catch(()=>{
this.loading=false;
})
}
},
search(){
this.page=1;
@@ -196,6 +258,31 @@ export default {
</script>
<style scoped lang="scss">
.title{
display: flex;
margin-left: 22px;
margin-bottom: 6px;
.item{
width: 100px;
height: 46px;
line-height: 46px;
text-align: center;
font-size: 18px;
color: #666666;
}
.item1{
// border-bottom: #409EFF 4px solid;
position: relative;
&::before {
content: "";
position: absolute;
bottom: 0;
left: 10px;
width: 80px;
border-bottom: 4px solid #409EFF;
}
}
}
.progress{
width:calc((100% - 100px) / 3);
display: flex;