This commit is contained in:
daihh
2022-10-22 15:48:37 +08:00
6 changed files with 54 additions and 68 deletions

View File

@@ -17,32 +17,15 @@
</el-button> </el-button>
</div> </div>
</div> </div>
<div class="uc-bpttom"> <div class="uc-bpttom">
<div class="uc-course-text"> <i class="el-icon-time"></i> 报名时间{{ item.time || item.favoritesTime}}</div> <div class="uc-course-text"> <i class="el-icon-time"></i> 报名时间{{ item.time || item.favoritesTime}}</div>
<div class="uc-coures-button"> <div class="uc-coures-button">
<el-button type="primary">去上课</el-button> <el-button type="primary">去上课</el-button>
</div>
</div>
</div>
<!-- <div class="uc-course-info">
<div style="display: flex;justify-content: space-between;">
<router-link target="_blank" :to="'/course/detail?id='+item.objId" class="uc-course-name">
<span :class="contentTypeFilter(item.contentType).class">{{contentTypeFilter(item.contentType).text}}</span>
<span>{{ item.title }}</span>
</router-link>
<div><el-button v-if="remove" @click="delItem(item)" type="text" icon="el-icon-remove">取消收藏</el-button></div>
</div>
<div style="display: flex;justify-content: space-between;align-items: flex-end;">
<div>
<div class="uc-course-text">讲师{{item.authorName}}</div>
<div class="uc-course-text">收藏日期{{item.time}}</div>
</div> </div>
<interactBar :type="0" :data="item" :views="false" :shares="false"></interactBar>
</div> </div>
</div> --> <div class="pro-line"> <div>当前进度</div> <div style="width:200px"><el-progress :percentage="item.progress"></el-progress></div></div>
<!-- </router-link> --> </div>
</div> </div>
</div> </div>
</template> </template>
@@ -152,18 +135,28 @@ export default {
color: #333333; color: #333333;
margin-left: 5px; margin-left: 5px;
} }
.pro-line{
font-size: 14px;
color: #333333;
display: flex;
margin-top: 28px;
}
.uc-bpttom{ .uc-bpttom{
display: flex; display: flex;
position: relative;
.uc-coures-button{ .uc-coures-button{
position: absolute;
margin-left: auto; margin-left: auto;
margin-top: 55px; right:0;
bottom: -38px;
} }
} }
.uc-course-text{ .uc-course-text{
flex: 1; flex: 1;
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
margin-top: 70px; margin-top: 14px;
} }
.course-type { .course-type {
position: absolute; position: absolute;

View File

@@ -13,20 +13,18 @@
<div style="width:254px"> <div style="width:254px">
<course-image width="254px" height="144px" :course="item.info"></course-image> <course-image width="254px" height="144px" :course="item.info"></course-image>
</div> </div>
<!-- <img style="width:254px;height:144px" src="/images/list-img.png" alt=""> -->
<div class="data-cen"> <div class="data-cen">
<h6 class="course-tit portal-title-tow">{{item.info.name || item.contentInfo}} <span class="score-info">{{toScore(item.info.score)}}</span> </h6> <h6 class="course-tit portal-title-tow">{{item.info.name || item.contentInfo}} <span class="score-info">{{toScore(item.info.lastScore)}}</span> </h6>
<p class="title-info">{{item.info.summary}}</p> <p class="title-info">{{item.info.summary}}</p>
<div class="pro-line"> <div>当前进度</div> <div style="width:200px"><el-progress :percentage="50"></el-progress></div></div> <div class="pro-line"> <div>当前进度</div> <div style="width:200px"><el-progress :percentage="item.info.progress"></el-progress></div></div>
<p class="portal-time">最新一次学习时间{{item.eventTime}}</p> <p class="portal-time">最新一次学习时间{{item.info.lastTime}}</p>
</div> </div>
<div style="width:150px"> <div style="width:150px">
<div class="follow-hide pointer" style="text-align: right;" v-if="!isDynamic && personal && !item.hidden" @click="emitHide(item.id)"> <div class="follow-hide pointer" style="text-align: right;" v-if="!isDynamic && personal && !item.hidden" @click="emitHide(item.id)">
<svg-icon style="margin-right: 10px;font-size:22px;padding-top: 4px;" icon-class="eyes"></svg-icon>隐藏 <svg-icon style="margin-right: 10px;font-size:22px;padding-top: 4px;" icon-class="eyes"></svg-icon>隐藏
</div> </div>
<div class="btn-right"> <div class="btn-right" v-if="!(personal && item.info.progress == 100)">
<el-button class="btn" type="primary" @click="jumpDetail(item.info)">{{pageId == userInfo.aid || isFollow? '继续学习' : '我也去学'}}</el-button> <el-button class="btn" type="primary" @click="jumpDetail(item.info)">{{isFollow ? '我也去学':pageId == userInfo.aid? '继续学习' : '我也去学'}}</el-button>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -130,7 +130,6 @@
}, },
watch:{ watch:{
'$route' (to, from) { //监听路由是否变化 '$route' (to, from) { //监听路由是否变化
//console.log(from,'from')
if(to.params.id != from.params.id){ if(to.params.id != from.params.id){
this.pageId = to.params.id; this.pageId = to.params.id;
let urlPre=window.location.protocol+'//'+window.location.host; let urlPre=window.location.protocol+'//'+window.location.host;
@@ -189,8 +188,6 @@
let ids = res.result.list.map(item=>item.contentId); let ids = res.result.list.map(item=>item.contentId);
const noReapetIds = [...new Set(ids)]; const noReapetIds = [...new Set(ids)];
res.result.list.forEach(item=>{ res.result.list.forEach(item=>{
item.lastTime = '';
item.progress = null;
item.info = {}; item.info = {};
item.authorInfo = { item.authorInfo = {
aid: "", aid: "",
@@ -205,9 +202,8 @@
this.getAllList(res.result.list) this.getAllList(res.result.list)
} }
if(this.activeName == 1){ if(this.activeName == 1){
this.cousrePageList = res.result.list this.cousrePageList = res.result.list
this.getCourse(noReapetIds,res.result.list); this.getCourse(noReapetIds,res.result.list);
this.getCourseProgress(noReapetIds,res.result.list);
} }
if(this.activeName == 2) { if(this.activeName == 2) {
this.articlePageList = res.result.list; this.articlePageList = res.result.list;
@@ -305,21 +301,6 @@
return val1 < val2 ? rev * -1 : rev * 1; return val1 < val2 ? rev * -1 : rev * 1;
}; };
}, },
getCourseProgress(ids,list) {
apiCourseStudy.ids(ids).then((res)=>{
console.log(res,'res');
// list.forEach((item, index) => {
// res.result.some(con => {
// if (con.id == item.contentId) {
// item.info = con;
// return true;
// } else {
// return false;
// }
// });
// });
})
},
getAnswer(ids,list){ getAnswer(ids,list){
if(ids.length == 0){ if(ids.length == 0){
return return
@@ -465,11 +446,19 @@
}); });
}, },
getCourse(ids,list) { getCourse(ids,list) {
apiCourse.ids(ids).then(res=>{ let aid = {}
let params = {
ids:ids,
// aid:[this.pageId]
}
if(this.pageId != this.userInfo.aid) {
params.aid = this.pageId
}
apiCourseStudy.ids(params).then(res=>{
if(res.status == 200) { if(res.status == 200) {
list.forEach((item, index) => { list.forEach((item, index) => {
res.result.some(con => { res.result.some(con => {
if (con.id == item.contentId) { if (con.courseId == item.contentId) {
item.info = con; item.info = con;
return true; return true;
} else { } else {
@@ -477,7 +466,6 @@
} }
}); });
}); });
// this.getArticleUserData(list);
} }
}) })
}, },

View File

@@ -85,6 +85,7 @@
import apiStat from "@/api/phase2/stat.js" import apiStat from "@/api/phase2/stat.js"
import apiArticle from '@/api/modules/article.js' import apiArticle from '@/api/modules/article.js'
import apiCases from '@/api/modules/cases.js' import apiCases from '@/api/modules/cases.js'
import apiCourseStudy from '@/api/modules/courseStudy.js'
import apiQa from '@/api/modules/qa.js' import apiQa from '@/api/modules/qa.js'
import apiCourse from '@/api/modules/course.js' import apiCourse from '@/api/modules/course.js'
import apiNote from '@/api/phase2/note.js' import apiNote from '@/api/phase2/note.js'
@@ -117,7 +118,7 @@
personal:true, personal:true,
orgData:[], orgData:[],
Profess:[], Profess:[],
ids:[], followIds:[],
} }
}, },
computed: { computed: {
@@ -126,7 +127,7 @@
created() { created() {
apiFollow.list().then(res=>{ apiFollow.list().then(res=>{
if(res.status == 200) { if(res.status == 200) {
this.ids = res.result.map(item=>item.followId); this.followIds = res.result.map(item=>item.followId);
this.getList() this.getList()
} }
}) })
@@ -160,19 +161,21 @@
this.page.pageIndex = val; this.page.pageIndex = val;
this.getList(); this.getList();
}, },
getList(ids) { getList() {
let data = { let data = {
pageIndex:this.page.pageIndex, pageIndex:this.page.pageIndex,
pageSize:this.page.pageSize, pageSize:this.page.pageSize,
contentType:this.activeName == 0? '':this.activeName,//内容类型 contentType:this.activeName == 0? '':this.activeName,//内容类型
aids:this.ids // 数组 aids:this.followIds // 数组
} }
apiStat.userDynamicfollows(data).then(res=>{ apiStat.userDynamicfollows(data).then(res=>{
if(res.status == 200) { if(res.status == 200) {
this.page.count = res.result.count; this.page.count = res.result.count;
let ids = res.result.list.map(item=>item.contentId); let ids = res.result.list.map(item=>item.contentId);
let aids = [];
const noReapetIds = [...new Set(ids)]; const noReapetIds = [...new Set(ids)];
res.result.list.forEach(item=>{ res.result.list.forEach(item=>{
aids.push(item.aid);
item.info = {}; item.info = {};
item.authorInfo = { item.authorInfo = {
aid: "", aid: "",
@@ -187,8 +190,9 @@
this.getAllList(res.result.list) this.getAllList(res.result.list)
} }
if(this.activeName == 1){ if(this.activeName == 1){
this.cousrePageList = res.result.list const noReapetAids = [...new Set(aids)];
this.getCourse(noReapetIds,res.result.list); this.cousrePageList = res.result.list;
this.getCourse(noReapetIds,res.result.list);
} }
if(this.activeName == 2) { if(this.activeName == 2) {
this.articlePageList = res.result.list; this.articlePageList = res.result.list;
@@ -197,7 +201,6 @@
if(this.activeName == 3) { if(this.activeName == 3) {
this.casePageList = res.result.list; this.casePageList = res.result.list;
this.getCase(noReapetIds,res.result.list); this.getCase(noReapetIds,res.result.list);
console.log(this.casePageList,'this.casePageList');
} }
if(this.activeName == 6) { // 笔记 if(this.activeName == 6) { // 笔记
this.getNote(noReapetIds,res.result.list); this.getNote(noReapetIds,res.result.list);
@@ -429,11 +432,15 @@
}); });
}, },
getCourse(ids,list) { getCourse(ids,list) {
apiCourse.ids(ids).then(res=>{ let params = {
ids:ids,
aids:this.followIds
}
apiCourseStudy.followIds(params).then(res=>{
if(res.status == 200) { if(res.status == 200) {
list.forEach((item, index) => { list.forEach((item, index) => {
res.result.some(con => { res.result.some(con => {
if (con.id == item.contentId) { if (item.contentId == con.courseId && item.aid == con.aid) {
item.info = con; item.info = con;
return true; return true;
} else { } else {

View File

@@ -36,7 +36,7 @@
<div class="exp-hear-text"> <div class="exp-hear-text">
经验值排行榜 经验值排行榜
<el-tooltip placement="top" effect="light"> <el-tooltip placement="top" effect="light">
<div slot="content">占位内容<br/>占位内容</div> <div slot="content">所有用户经验值TOP排行榜单通过学习贡献等行为可以获得经验值</div>
<svg-icon style="margin-left: 5px;font-size:20px;padding-top: 4px;" icon-class="doubt"></svg-icon> <svg-icon style="margin-left: 5px;font-size:20px;padding-top: 4px;" icon-class="doubt"></svg-icon>
</el-tooltip> </el-tooltip>
<span class="exp-hear-textbor"></span> <span class="exp-hear-textbor"></span>

View File

@@ -5,7 +5,7 @@
<div class="exp-hear-text"> <div class="exp-hear-text">
经验值排行榜 经验值排行榜
<el-tooltip placement="top" effect="light"> <el-tooltip placement="top" effect="light">
<div slot="content">占位内容<br/>占位内容</div> <div slot="content">所有用户经验值TOP排行榜单通过学习贡献等行为可以获得经验值</div>
<svg-icon style="margin-left: 14px;font-size:20px;padding-top: 4px;" icon-class="doubt"></svg-icon> <svg-icon style="margin-left: 14px;font-size:20px;padding-top: 4px;" icon-class="doubt"></svg-icon>
</el-tooltip> </el-tooltip>
<span class="exp-hear-textbor"></span> <span class="exp-hear-textbor"></span>
@@ -105,7 +105,7 @@
<div class="exp-hear-text"> <div class="exp-hear-text">
学习时长排行榜 学习时长排行榜
<el-tooltip placement="top" effect="light"> <el-tooltip placement="top" effect="light">
<div slot="content">占位内容<br/>占位内容</div> <div slot="content">所有用户学习时长TOP排行榜单统计单位为小时</div>
<svg-icon style="margin-left: 14px;font-size:20px;padding-top: 4px;" icon-class="doubt"></svg-icon> <svg-icon style="margin-left: 14px;font-size:20px;padding-top: 4px;" icon-class="doubt"></svg-icon>
</el-tooltip> </el-tooltip>
<span class="exp-hear-textbor"></span> <span class="exp-hear-textbor"></span>
@@ -188,7 +188,7 @@
<div class="exp-hear-text"> <div class="exp-hear-text">
学习天数排行榜 学习天数排行榜
<el-tooltip placement="top" effect="light"> <el-tooltip placement="top" effect="light">
<div slot="content">占位内容<br/>占位内容</div> <div slot="content">所有用户学习天数TOP排行榜单每活跃学习1天可累计学习天数</div>
<svg-icon style="margin-left: 14px;font-size:20px;padding-top: 4px;" icon-class="doubt"></svg-icon> <svg-icon style="margin-left: 14px;font-size:20px;padding-top: 4px;" icon-class="doubt"></svg-icon>
</el-tooltip> </el-tooltip>
<span class="exp-hear-textbor" style="background:#f1b48f !important"></span> <span class="exp-hear-textbor" style="background:#f1b48f !important"></span>