Merge branch 'zcwy-master' into dev0515

This commit is contained in:
zhangsir
2024-06-28 16:48:55 +08:00
4 changed files with 349 additions and 172 deletions

View File

@@ -20,7 +20,17 @@ const getTaskNum = function(){
const userTaskList = function(data){ const userTaskList = function(data){
return ajax.postJson(baseURL,'/todoTask/queryTodoTaskDetail',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){ const userDeleteStudy = function(data){
return ajax.postJson(baseURL,'/stu/project/stuCancelEnrollment',data); return ajax.postJson(baseURL,'/stu/project/stuCancelEnrollment',data);
@@ -37,6 +47,9 @@ const userRsSginupCourse = function(data){
export default { export default {
getTaskNum, getTaskNum,
userTaskList, userTaskList,
leadership,
customized,
compulsoryList,
userDeleteStudy, userDeleteStudy,
userRsSginupCourse userRsSginupCourse
} }

View File

@@ -9,12 +9,13 @@
> --> > -->
<!-- <i class="el-icon-collection-tag"></i> 我的导航 --> <!-- <i class="el-icon-collection-tag"></i> 我的导航 -->
<!-- </div> --> <!-- </div> -->
<!-- :default-openeds="['manageTodo','manageFinish','teacherTodo','teacherFinish','lecturer','myqa','notice','mystudy', 'course', 'exam', 'u001', 'u002', 'u003', 'u004','mylecnotes','mycaseRecord']" -->
<div class="uc-menu" style="background-color: #ffffff;padding-bottom:20px"> <div class="uc-menu" style="background-color: #ffffff;padding-bottom:20px">
<el-menu <el-menu
:default-active="activeMenu" :default-active="activeMenu"
router router
active-text-color="#3379FB" active-text-color="#3379FB"
:default-openeds="['manageTodo','manageFinish','teacherTodo','teacherFinish','lecturer','myqa','notice','mystudy', 'course', 'exam', 'u001', 'u002', 'u003', 'u004','mylecnotes','mycaseRecord']" :default-openeds="openedsList"
class="el-menu-vertical" class="el-menu-vertical"
@open="handleOpen" @open="handleOpen"
@close="handleClose" @close="handleClose"
@@ -173,7 +174,7 @@
<template slot="title"> <template slot="title">
<svg-icon icon-class="course" style="font-size:16px"></svg-icon> <svg-icon icon-class="course" style="font-size:16px"></svg-icon>
<!-- <i class="el-icon-s-grid"></i> --> <!-- <i class="el-icon-s-grid"></i> -->
<span>我的课程</span> <span>专业贡献</span>
</template> </template>
<el-menu-item index="/need/course"> <el-menu-item index="/need/course">
<!-- <i class="el-icon-menu"></i> --> <!-- <i class="el-icon-menu"></i> -->
@@ -242,28 +243,28 @@
<svg-icon :icon-class="activeMenu == '/user/medal'?'myxunzhang-active':'myxunzhang'"></svg-icon> <svg-icon :icon-class="activeMenu == '/user/medal'?'myxunzhang-active':'myxunzhang'"></svg-icon>
<span slot="title">我的勋章</span> <span slot="title">我的勋章</span>
</el-menu-item> </el-menu-item>
<el-submenu index="mystudy" v-show="curIdentity == 1"> <!-- <el-submenu index="mystudy" v-show="curIdentity == 1">
<template slot="title"> <template slot="title"> -->
<!-- <i class="el-icon-s-grid"></i> --> <!-- <i class="el-icon-s-grid"></i> -->
<svg-icon icon-class="mystudy"></svg-icon> <!-- <svg-icon icon-class="mystudy"></svg-icon>
<span>我的学习</span> <span>我的学习</span>
</template> </template> -->
<el-menu-item index="/uc/study/task"> <!-- <el-menu-item index="/uc/study/task"> -->
<!-- <i class="el-icon-menu"></i> --> <!-- <i class="el-icon-menu"></i> -->
<span slot="title" class="study textl"><el-badge :value="studyTaskCount||''" class="item">学习任务</el-badge></span> <!-- <span slot="title" class="study textl"><el-badge :value="studyTaskCount||''" class="item">学习任务</el-badge></span>
</el-menu-item> </el-menu-item> -->
<el-menu-item index="/uc/study/courses"> <!-- <el-menu-item index="/uc/study/courses"> -->
<!-- <i class="el-icon-menu"></i> --> <!-- <i class="el-icon-menu"></i> -->
<!-- <span slot="title" class="textl">自主学习</span> --> <!-- <span slot="title" class="textl">自主学习</span> -->
<span slot="title" class="textl">我报名的</span> <!-- <span slot="title" class="textl">我报名的</span>
</el-menu-item> </el-menu-item> -->
<el-menu-item index="/exam/mytask"> <!-- <el-menu-item index="/exam/mytask">
<!-- <i class="el-icon-menu"></i> --> <i class="el-icon-menu"></i>
<span slot="title" class="textl">我的考试</span> <span slot="title" class="textl">我的考试</span>
</el-menu-item> </el-menu-item> -->
<el-menu-item index="/uc/study/growth"> <!-- <el-menu-item index="/uc/study/growth">
<span slot="title" class="textl">成长路径</span> <span slot="title" class="textl">成长路径</span>
</el-menu-item> </el-menu-item> -->
<!-- 去掉 <!-- 去掉
<el-menu-item index="/uc/study/path" v-show="isTest"> <el-menu-item index="/uc/study/path" v-show="isTest">
<span slot="title" class="textl">学习路径图</span> <span slot="title" class="textl">学习路径图</span>
@@ -275,7 +276,39 @@
<!-- <i class="el-icon-menu"></i> --> <!-- <i class="el-icon-menu"></i> -->
<!-- <span slot="title" class="textl">历史记录</span> <!-- <span slot="title" class="textl">历史记录</span>
</el-menu-item> --> </el-menu-item> -->
<!-- </el-submenu> -->
<el-submenu v-if="fistTotal+pathTotal+proTotal+growTotal" index="mystudy" v-show="curIdentity == 1">
<template slot="title">
<svg-icon icon-class="mystudy"></svg-icon>
<span>我的必修</span>
</template>
<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 v-if="growTotal" index="/uc/study/growth">
<span slot="title" class="textl">专业力必修</span>
</el-menu-item>
<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>
<el-menu-item v-else index="/uc/study/task?type=9" v-show="curIdentity == 1">
<svg-icon :icon-class="activeMenu == '/uc/study/task'?'mystudy':'mystudy'"></svg-icon>
<span slot="title">我的必修</span>
</el-menu-item>
<el-submenu index="myelective" v-show="curIdentity == 1">
<template slot="title">
<svg-icon icon-class="mystudy"></svg-icon>
<span>我的选修</span>
</template>
<el-menu-item index="/uc/study/courses">
<span slot="title" class="study textl">自选学习</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 index="/user/Mynotes" v-show="curIdentity == 1"> <el-menu-item index="/user/Mynotes" v-show="curIdentity == 1">
<svg-icon :icon-class="activeMenu == '/user/Mynotes'?'mybiji-active':'mybiji'"></svg-icon> <svg-icon :icon-class="activeMenu == '/user/Mynotes'?'mybiji-active':'mybiji'"></svg-icon>
<span slot="title">我的笔记</span> <span slot="title">我的笔记</span>
@@ -389,6 +422,8 @@ import apicourseStudy from "../../api/modules/courseStudy.js"
import {pageList} from "@/api/modules/lecturer" import {pageList} from "@/api/modules/lecturer"
import courseImage from "@/components/Course/courseImage.vue" import courseImage from "@/components/Course/courseImage.vue"
import testUser from '@/utils/testUsers.js' import testUser from '@/utils/testUsers.js'
import apiManage from '@/api/manage/manage.js'
import {getList} from '@/api/growth'
export default { export default {
name: 'UcMenu', name: 'UcMenu',
components: { components: {
@@ -399,6 +434,9 @@ export default {
activeMenu() { activeMenu() {
const route = this.$route; const route = this.$route;
const { meta, path } = route; const { meta, path } = route;
if(path == '/uc/study/task'){
return '/uc/study/task?type='+route.query.type
}
if(meta.title == '添加受众' || meta.title == '查看受众'){ if(meta.title == '添加受众' || meta.title == '查看受众'){
meta.activeMenu = '/manage/ugroups' meta.activeMenu = '/manage/ugroups'
} }
@@ -416,7 +454,12 @@ export default {
isCollapse: false, isCollapse: false,
lastStudy:{}, lastStudy:{},
overlayShow: false, overlayShow: false,
instructor:0 instructor:0,
fistTotal:0,
proTotal: 0,
pathTotal:0,
growTotal: 0,
openedsList:[]
}; };
}, },
created() { created() {
@@ -425,6 +468,7 @@ export default {
this.getLastStudy(); this.getLastStudy();
//获取讲师认证中条数 //获取讲师认证中条数
this.instructorCertification() this.instructorCertification()
this.learnTotal()
}, },
mounted() { mounted() {
//console.log(this.userInfo.loginName,'this.userInfo.loginName'); //console.log(this.userInfo.loginName,'this.userInfo.loginName');
@@ -437,6 +481,31 @@ export default {
// } // }
}, },
methods: { 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);
})
getList(this.userInfo.aid).then(res=>{
if(res.code == 200 ){
this.growTotal = 1
}
})
},
//讲师认证条数 //讲师认证条数
instructorCertification(){ instructorCertification(){
pageList({ teacherNo:this.userInfo.userNo,courseName:'', pageNo: 1, pageSize: 10}).then(res=>{ pageList({ teacherNo:this.userInfo.userNo,courseName:'', pageNo: 1, pageSize: 10}).then(res=>{
@@ -470,6 +539,7 @@ export default {
}, },
handleOpen(key, keyPath) { handleOpen(key, keyPath) {
console.log(key, keyPath); console.log(key, keyPath);
this.openedsList = [key]
}, },
handleClose(key, keyPath) { handleClose(key, keyPath) {
console.log(key, keyPath); console.log(key, keyPath);

View File

@@ -106,7 +106,7 @@
<div class="body_schedule_pro"> <div class="body_schedule_pro">
<span class="pro_text">总进度</span> <span class="pro_text">总进度</span>
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<el-progress style="width: 268px;" :show-text="false" :stroke-width="12" :percentage="Number(((detailData.overallCompletionRate || 0)*100).toFixed(2))"></el-progress> <el-progress style="width: 213px;" :show-text="false" :stroke-width="10" :percentage="Number(((detailData.overallCompletionRate || 0)*100).toFixed(2))"></el-progress>
<div class="text">{{ Number(((detailData.overallCompletionRate || 0)*100).toFixed(2)) || 0 }}%</div> <div class="text">{{ Number(((detailData.overallCompletionRate || 0)*100).toFixed(2)) || 0 }}%</div>
</div> </div>
</div> </div>
@@ -378,65 +378,66 @@ export default {
.growth_heads{ .growth_heads{
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin: 22px 43px 19px 40px; margin: 10px 43px 29px 40px;
position: relative; position: relative;
.growth_left{ .growth_left{
display: flex; display: flex;
justify-content: center; justify-content: center;
line-height: 40px; line-height: 40px;
.left_text{ .left_text{
width: 108px; // width: 108px;
height: 25px; height: 25px;
font-weight: 600; font-weight: 600;
font-size: 18px; font-size: 14px;
color: #333333; color: #333333;
text-align: left; text-align: left;
} }
.growth_i{ .growth_i{
cursor: pointer; cursor: pointer;
width: 20px; width: 16px;
height: 20px; height: 16px;
margin-left: 7px; margin-left: 6px;
border: 1px solid #999999; border: 1px solid #999999;
border-radius: 100%; border-radius: 100%;
margin-top: 10px; margin-top: 13px;
.growth_mark{ .growth_mark{
color: #999999; color: #999999;
line-height: 20px; line-height: 15px;
margin-left: 5px; margin-left: 4px;
} }
} }
} }
.growth_right{ .growth_right{
width: 198px; width: 158px;
height: 40px; height: 32px;
line-height: 40px; line-height: 32px;
background: #387DF7; background: #387DF7;
box-shadow: 1px 2px 15px 1px rgba(56,125,247,0.34); box-shadow: 1px 2 12px 1px rgba(56,125,247,0.34);
border-radius: 20px; border-radius: 16px;
display: flex; display: flex;
justify-content: center; justify-content: center;
.right_text{ .right_text{
width: 112px; // width: 112px;
height: 22px; height: 22px;
font-weight: 400; font-weight: 400;
font-size: 16px; font-size: 13px;
color: #FFFFFF; color: #FFFFFF;
text-align: left; text-align: left;
} }
.growth_img{ .growth_img{
cursor: pointer; cursor: pointer;
width: 20px; width: 16px;
height: 20px; height: 16px;
margin-left: 13px; margin-left: 10px;
.img{ .img{
width: 100%;
vertical-align: middle; vertical-align: middle;
} }
} }
} }
} }
.growth_body{ .growth_body{
max-width: 1340px; // max-width: 1340px;
height: 574px; height: 574px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 10px; border-radius: 10px;
@@ -464,32 +465,32 @@ export default {
} }
} }
.body_head{ .body_head{
max-width: 1340px; // max-width: 1066px;
height: 88px; height: 70px;
background: linear-gradient( 180deg, #DEEBFF 0%, #FFFFFF 100%); background: linear-gradient( 180deg, #DEEBFF 0%, #FFFFFF 100%);
border-radius: 10px 10px 0px 0px; border-radius: 10px 10px 0px 0px;
border: 1px solid #E4EDFE; border: 1px solid #E4EDFE;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 25px; margin-bottom: 23px;
.head_left{ .head_left{
// width: 272px; // width: 272px;
height: 28px; // height: 28px;
font-weight: 600; font-weight: 600;
font-size: 20px; font-size: 16px;
color: #387DF7; color: #387DF7;
line-height: 28px; // line-height: 28px;
text-align: left; text-align: left;
margin: 29px 0 0 33px; margin: 23px 0 0 26px;
} }
.head_right{ .head_right{
// width: 326px; // width: 326px;
height: 22px; height: 22px;
font-weight: 400; font-weight: 400;
font-size: 16px; font-size: 13px;
color: #666660; color: #666660;
line-height: 22px; line-height: 22px;
margin: 32px 45px 0 0; margin: 25px 36px 0 0;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
line-height: 22px; line-height: 22px;
@@ -510,11 +511,11 @@ export default {
} }
} }
.body_explain{ .body_explain{
margin-bottom: 25px; margin-bottom: 20px;
.body_explain_icon{ .body_explain_icon{
display: flex; display: flex;
margin-left: 35px; margin-left: 28px;
margin-bottom: 23px; margin-bottom: 20px;
.body_explain_img{ .body_explain_img{
width: 16px; width: 16px;
height: 16px; height: 16px;
@@ -524,29 +525,28 @@ export default {
width: 32px; width: 32px;
height: 22px; height: 22px;
font-weight: 600; font-weight: 600;
font-size: 16px; font-size: 13px;
color: #333333; color: #333333;
line-height: 22px; line-height: 22px;
text-align: left; text-align: left;
margin-left: 10px; margin-left: 8px;
} }
} }
.body_explain_item{ .body_explain_item{
margin-left: 35px; margin-left: 28px;
margin-right: 45px; margin-right: 36px;
max-width: 1260px; // max-width: 1003px;
max-height: 100px; max-height: 80px;
background: #F5F6F7; background: #F5F6F7;
border-radius: 10px; border-radius: 8px;
padding: 22px 25px 22px 16px; padding: 18px 20px 18px 13px;
.body_explain_text{ .body_explain_text{
max-width: 1219px; // max-width: 970px;
max-height: 56px; max-height: 45px;
font-weight: 400; font-weight: 400;
font-size: 14px; font-size: 11px;
color: #333333; color: #333333;
line-height: 28px; line-height: 22px;
text-align: left;
display: -webkit-box; display: -webkit-box;
word-wrap: break-word; word-wrap: break-word;
word-break:break-all; word-break:break-all;
@@ -560,42 +560,42 @@ export default {
.body_schedule{ .body_schedule{
.body_schedule_icon{ .body_schedule_icon{
display: flex; display: flex;
margin-bottom: 33px; margin-bottom: 27px;
.body_schedule_img{ .body_schedule_img{
width: 16px; width: 16px;
height: 16px; height: 16px;
margin-left: 35px; margin-left: 28px;
margin-top: 4px; margin-top: 3px;
} }
.body_schedule_text{ .body_schedule_text{
width: 64px; width: 64px;
height: 22px; height: 22px;
font-weight: 600; font-weight: 600;
font-size: 16px; font-size: 13px;
color: #333333; color: #333333;
line-height: 22px; line-height: 22px;
text-align: left; text-align: left;
margin-left: 10px; margin-left: 8px;
} }
} }
.body_schedule_item{ .body_schedule_item{
margin-left: 58px; margin-left: 58px;
.body_schedule_one{ .body_schedule_one{
display: flex; display: flex;
margin-bottom: 52px; margin-bottom: 41px;
.body_schedule_left{ .body_schedule_left{
min-width: 65px; min-width: 52px;
font-weight: 500; font-weight: 500;
font-size: 16px; font-size: 13px;
color: #3B3C4A; color: #3B3C4A;
line-height: 22px; line-height: 22px;
text-align: left; text-align: left;
} }
.body_schedule_right{ .body_schedule_right{
margin-left: 16px; margin-left: 13px;
min-width: 65px; min-width: 65px;
font-weight: 500; font-weight: 500;
font-size: 16px; font-size: 13px;
color: #2E72F2; color: #2E72F2;
line-height: 22px; line-height: 22px;
text-align: left; text-align: left;
@@ -604,13 +604,13 @@ export default {
.body_schedule_two{ .body_schedule_two{
display: flex; display: flex;
.body_schedule_pro{ .body_schedule_pro{
width: 314px; width: 250px;
height: 37px; height: 30px;
.pro_text{ .pro_text{
width: 42px; width: 42px;
height: 22px; height: 22px;
font-weight: 400; font-weight: 400;
font-size: 14px; font-size: 11px;
color: #666660; color: #666660;
line-height: 22px; line-height: 22px;
text-align: left; text-align: left;
@@ -618,29 +618,29 @@ export default {
} }
.text{ .text{
font-weight: 400; font-weight: 400;
font-size: 12px; font-size: 10px;
color: #333333; color: #333333;
margin-left: 19px; margin-left: 15px;
} }
} }
.body_schedule_btn{ .body_schedule_btn{
width: 140px; width: 112px;
cursor: pointer; cursor: pointer;
height: 40px; height: 32px;
margin-left: 44px; margin-left: 35px;
margin-top: 7px; margin-top: 6px;
background: #409EFF; background: #409EFF;
box-shadow: 1px 2px 15px 1px rgba(56,125,247,0.34); box-shadow: 1px 2 12px 1px rgba(56,125,247,0.34);
border-radius: 4px; border-radius: 3px;
text-align: center; text-align: center;
line-height: 40px; line-height: 30px;
.body_schedule_text{ .body_schedule_text{
width: 64px; width: 52px;
height: 22px; height: 18px;
font-weight: 400; font-weight: 400;
font-size: 16px; font-size: 13px;
color: #FFFFFF; color: #FFFFFF;
line-height: 22px; line-height: 18px;
text-align: left; text-align: left;
} }
} }

View File

@@ -1,80 +1,89 @@
<template> <template>
<div> <div>
<!-- <div style="display:flex; padding-left:20px; width:100%"> <div style="margin-top: 50px;" v-if="isType == 9">
<div style="width:100px">完成情况</div> <el-empty description="您还没有学习数据"></el-empty>
<div class="progress"><div class="msg">课程完成情况</div> <el-progress :text-inside="true" :stroke-width="16" :percentage="porcessData.course" status="warning" class="progressItem"> </el-progress> </div>
<div class="progress" ><div class="msg">项目完成情况</div> <el-progress :text-inside="true" :stroke-width="16" :percentage="porcessData.project" status="success" class="progressItem"> </el-progress> </div>
<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 style="display: flex; justify-content: space-between; padding: 12px 32px 10px 22px;">
<div style="display: flex; justify-content: flex-start">
<div>
<el-select class="search-input" v-model="status" clearable placeholder="学习进度">
<el-option label="全部" value=""></el-option>
<el-option label="未开始" value="0"></el-option>
<el-option label="进行中" value="1"></el-option>
<el-option label="已完成" value="2"></el-option>
</el-select>
</div>
<div style="padding-left: 10px"><el-input v-model="params.cmtask_name" clearable placeholder="搜索名称"></el-input></div>
<div class="button-class" style="padding-left: 10px"><el-button type="primary" icon="el-icon-search" @click="search()">搜索</el-button></div>
<div class="button-class" style="padding-left: 10px"><el-button type="primary" icon="el-icon-refresh-right" @click="reset()">重置</el-button></div>
</div>
</div> </div>
<!--课程列表内容--> <div v-else>
<div class="uc-list" v-if="couresList.length > 0"> <!-- <div style="display:flex; padding-left:20px; width:100%">
<div class="uc-course" v-for="(item, idx) in couresList" @click="jumpRouter(item)" :key="idx"> <div style="width:100px">完成情况</div>
<div class="uc-course-img"> <div class="progress"><div class="msg">课程完成情况</div> <el-progress :text-inside="true" :stroke-width="16" :percentage="porcessData.course" status="warning" class="progressItem"> </el-progress> </div>
<img :src="item.cmtask_imgurl" /> <div class="progress" ><div class="msg">项目完成情况</div> <el-progress :text-inside="true" :stroke-width="16" :percentage="porcessData.project" status="success" class="progressItem"> </el-progress> </div>
<span class="spanname" v-if="item.cmtask_type==1">学习路径图</span> <div class="progress"><div class="msg">路径图完成情况</div> <el-progress :text-inside="true" :stroke-width="16" :percentage="porcessData.router" class="progressItem"> </el-progress> </div>
<span class="spanname" v-if="item.cmtask_type==2">学习项目</span>
<!-- 类型3不显示20230307 东吴说已确认的修改 --> </div> -->
<!-- <span class="spanname" v-if="item.cmtask_type==3">老系统必修任务</span> --> <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>
<div class="uc-course-info"> <div style="display: flex; justify-content: space-between; padding: 12px 32px 10px 22px;">
<!-- 任务名称 --> <div style="display: flex; justify-content: flex-start">
<div class="uc-course-name one-line-ellipsis" style="cursor: pointer"> <div>
<span v-if="item.type==10" class="uc-course-type2">录播</span> <el-select class="search-input" v-model="status" clearable placeholder="学习进度">
<span v-if="item.type==20" class="uc-course-type2">录播</span> <el-option label="全部" value=""></el-option>
<!-- <a href="/course/detail?id=" target="_blank"> {{item.name}}</a> --> <el-option label="未开始" value="0"></el-option>
<span v-html="item.cmtask_name"></span> <el-option label="进行中" value="1"></el-option>
<el-option label="已完成" value="2"></el-option>
</el-select>
</div> </div>
<!-- <div class="uc-course-source" @click="jumpRouter(item)">来源{{ item.cmtask_name }}</div> --> <div style="padding-left: 10px"><el-input v-model="params.cmtask_name" clearable placeholder="搜索名称"></el-input></div>
<div style="padding-top: 18px; " class="uc-course-text">学习进度 <div class="button-class" style="padding-left: 10px"><el-button type="primary" icon="el-icon-search" @click="search()">搜索</el-button></div>
<span v-if="item.cmtask_user_status==0">未开始</span> <div class="button-class" style="padding-left: 10px"><el-button type="primary" icon="el-icon-refresh-right" @click="reset()">重置</el-button></div>
<span v-if="item.cmtask_user_status==1">进行中</span>
<span v-if="item.cmtask_user_status==2">已完成</span>
</div>
<!-- <div class="uc-course-time">推送时间{{ formatsec(Number(item.updated_at) * 1000 )}}</div> -->
<div class="uc-course-time">推送时间{{ item.created_at}}</div>
</div>
<div class="uc-course-btns">
<el-button @click="jumpRouter(item)" type="primary" size="small">开始学习</el-button>
</div> </div>
</div> </div>
<div style="height:150px; text-align: center; margin-top:57px;" > <!--课程列表内容-->
<el-pagination background <div class="uc-list" v-if="couresList.length > 0">
@size-change="handleSizeChange" <div class="uc-course" v-for="(item, idx) in couresList" @click="jumpRouter(item)" :key="idx">
@current-change="handleCurrentChange" <div class="uc-course-img">
:page-sizes="[10, 20, 30, 40]" <img :src="item.cmtask_imgurl" />
:current-page="page" <span class="spanname" v-if="item.cmtask_type==1">学习路径图</span>
:page-size="size" <span class="spanname" v-if="item.cmtask_type==2">学习项目</span>
layout="total, sizes, prev, pager, next, jumper" <!-- 类型3不显示20230307 东吴说已确认的修改 -->
:total="total"> <!-- <span class="spanname" v-if="item.cmtask_type==3">老系统必修任务</span> -->
</el-pagination> </div>
<div class="uc-course-info">
<!-- 任务名称 -->
<div class="uc-course-name one-line-ellipsis" style="cursor: pointer">
<span v-if="item.type==10" class="uc-course-type2">录播</span>
<span v-if="item.type==20" class="uc-course-type2">录播</span>
<!-- <a href="/course/detail?id=" target="_blank"> {{item.name}}</a> -->
<span v-html="item.cmtask_name"></span>
</div>
<!-- <div class="uc-course-source" @click="jumpRouter(item)">来源{{ item.cmtask_name }}</div> -->
<div style="padding-top: 18px; " class="uc-course-text">学习进度
<span v-if="item.cmtask_user_status==0">未开始</span>
<span v-if="item.cmtask_user_status==1">进行中</span>
<span v-if="item.cmtask_user_status==2">已完成</span>
</div>
<!-- <div class="uc-course-time">推送时间{{ formatsec(Number(item.updated_at) * 1000 )}}</div> -->
<div class="uc-course-time">推送时间{{ item.created_at}}</div>
</div>
<div class="uc-course-btns">
<el-button @click="jumpRouter(item)" type="primary" size="small">开始学习</el-button>
</div>
</div>
<div style="height:150px; text-align: center; margin-top:57px;" >
<el-pagination background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 30, 40]"
:current-page="page"
:page-size="size"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</div>
<!-- </div> -->
<div v-else class="zan-wu">
<div v-if="loading">
<span v-if="couresList.length==0">正在加载数据...</span>
<span v-else>查询中...</span>
</div>
<div v-else>
<span v-if="couresList.length==0">没有查询到相关内容</span>
</div>
</div> </div>
</div>
<!-- </div> -->
<div v-else class="zan-wu">
<div v-if="loading">
<span v-if="couresList.length==0">正在加载数据...</span>
<span v-else>查询中...</span>
</div>
<div v-else>
<span v-if="couresList.length==0">没有查询到相关内容</span>
</div>
</div> </div>
</div> </div>
</template> </template>
@@ -107,14 +116,32 @@ export default {
keyword:'', keyword:'',
formatsec, formatsec,
couresList:[], 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;
if(this.isType != 9){
this.loadBoeData();
}
},
immediate: true
}
},
mounted() { mounted() {
this.loadBoeData(); this.loadBoeData();
this.getPossData() this.getPossData()
}, },
methods: { methods: {
learnType(item){
this.typeClass = item
this.reset()
},
jumpRouter(item) { jumpRouter(item) {
//location.href=`${this.webBaseUrl}/course/boeframe?id=${item.cmtask_id}`; //location.href=`${this.webBaseUrl}/course/boeframe?id=${item.cmtask_id}`;
@@ -157,17 +184,59 @@ export default {
cmtask_name:this.params.cmtask_name, cmtask_name:this.params.cmtask_name,
} }
this.loading=true; this.loading=true;
apiManage.userTaskList(params).then(res=>{ if(this.isType == 1){
if(res.code==200){ //领导力必修
this.total =parseInt(res.data.total); apiManage.leadership(params).then(res=>{
this.couresList = res.data.records; if(res.code==200){
}else{ this.total =parseInt(res.data.total);
this.$message.error('查询数据失败:'+res.msg); this.couresList = res.data.records;
} }else{
this.loading=false; this.$message.error('查询数据失败:'+res.msg);
}).catch(()=>{ }
this.loading=false; 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(){ search(){
this.page=1; this.page=1;
@@ -196,6 +265,31 @@ export default {
</script> </script>
<style scoped lang="scss"> <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{ .progress{
width:calc((100% - 100px) / 3); width:calc((100% - 100px) / 3);
display: flex; display: flex;