Files
learning-system-portal/src/views/study/TaskList.vue

256 lines
7.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<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 class="uc-list" v-if="couresList.length > 0">
<div class="uc-course" v-for="(item, idx) in couresList" @click="jumpRouter(item)" :key="idx">
<div class="uc-course-img">
<img :src="item.cmtask_imgurl" />
<span class="spanname" v-if="item.cmtask_type==1">学习路径图</span>
<span class="spanname" v-if="item.cmtask_type==2">学习项目</span>
<!-- 类型3不显示20230307 东吴说已确认的修改 -->
<!-- <span class="spanname" v-if="item.cmtask_type==3">老系统必修任务</span> -->
</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>
</template>
<script>
import studyItem from '@/components/Course/studyItem.vue';
import apiManage from '@/api/manage/manage.js'
import {formatsec} from '@/utils/datetime.js'
export default {
name: 'ucStudyTask',
components: { studyItem },
data() {
return {
status: '',
params:{
cmtask_name:'',
cmtask_status:'',
type:'',
},
loading:true,
size:10,
page:1,
keyword:'',
formatsec,
couresList:[],
total: 0
};
},
mounted() {
this.loadBoeData();
},
methods: {
jumpRouter(item) {
//location.href=`${this.webBaseUrl}/course/boeframe?id=${item.cmtask_id}`;
//let urlPre=window.location.protocol+'//'+window.location.host;
let studentPath=process.env.VUE_APP_STUDENT_PATH;
if(item.cmtask_type==1){ //学习路径图
let params=encodeURIComponent('routerId='+item.cmtask_id);
//this.$router.push('/forward?to='+studentPath+'/pathdetails&params='+params);
this.$router.push('/forward?to='+studentPath+'/pathchapterdetails&params='+params);
}else if(item.cmtask_type==2){ //学习项目
let params=encodeURIComponent('projectId='+item.cmtask_id);
this.$router.push('/forward?to='+studentPath+'/projectdetails&params='+params);
}else if(item.cmtask_type==3){
let pushUrl=`/course/boeframe?id=${item.cmtask_id}&type=3`;
this.$router.push(pushUrl);
}
},
loadBoeData() {
if(this.status !== '5') {
this.params.cmtask_status = this.status;
}
let params={
pageNo:this.page,
pageSize:this.size,
cmtask_user_status:this.params.cmtask_status,
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;
})
},
search(){
this.page=1;
this.loadBoeData()
},
reset() {
this.loading=false;
this.params.cmtask_name = '',
this.params.type = '',
this.params.cmtask_status = ''
this.status = '';
this.page=1;
this.loadBoeData();
},
handleSizeChange(value) {
this.size = value;
this.loadBoeData();
},
//改变条数的回调
handleCurrentChange(value) {
this.page = value;
this.loadBoeData();
}
}
};
</script>
<style scoped lang="scss">
.zan-wu{
text-align: center;
font-size: 20px;
margin-top: 70px;
color: #ccc;
}
.one-line-ellipsis {
display: -webkit-box;
white-space: pre-wrap;
overflow: hidden;
text-overflow:ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
box-sizing: border-box;
}
.button-class{
// height: 42px;
}
.uc-list{
padding-left: 22px;
}
.uc-course-time{
color: #666;
font-size: 14px;
}
.uc-badge {
margin-top: 10px;
margin-right: 40px;
}
.spanname {
position: absolute;
background-color: #6a99a4;
color:#ffffff;
padding: 4px 10px;
font-size: 12px;
bottom: 0px;
z-index: 100;
left: 0px;
}
.uc-course {
cursor: pointer;
display: flex;
justify-content: space-around;
border-bottom: 1px solid #E8E8E8;
margin-right: 32px;
padding: 20px 0px 15px 0px ;
.uc-course-img {
width: 212px;
height: 119px;
position: relative;
img {
width: 100%;
height: 100%;
}
}
.uc-course-info {
// width: 50%;
flex: 1;
line-height: 28px;
padding: 0px 10px;
.uc-course-name {
font-size: 18px;
color: #333;
margin-top: -3px;
font-weight: 700;
}
.uc-course-text {
color: #444;
margin-bottom:3px;
font-size: 16px;
margin-top: 20px;
}
}
.uc-course-btns {
text-align: right;
margin-top: 80px;
width: 100px;
height: 44px;
}
}
</style>