mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-10 19:36:43 +08:00
我的关注
This commit is contained in:
@@ -59,7 +59,7 @@ const userDynamicList = function(data) {
|
|||||||
} data
|
} data
|
||||||
*/
|
*/
|
||||||
const userDynamicfollows = function(data) {
|
const userDynamicfollows = function(data) {
|
||||||
return ajax.postJson(baseURL,'/xboe/m/stat/userdynamic/follows',data);
|
return ajax.postJson(baseURL,'/xboe/m/stat/userdynamic/follow',data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
<ul v-if="list.length > 0">
|
<ul v-if="list.length > 0">
|
||||||
<li class="answer-list-index" v-for="item in list" :key="item.id">
|
<li class="answer-list-index" v-for="item in list" :key="item.id">
|
||||||
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px">
|
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px">
|
||||||
<span v-if="!personal">{{item.aname}}</span>
|
<span v-if="!personal || isFollow">{{item.aname}}</span>
|
||||||
{{item.cusInfo}}<span style="margin-left:28px">{{item.eventTime}}</span>
|
{{item.cusInfo}}<span style="margin-left:28px">{{item.eventTime}}</span>
|
||||||
<span v-if="personal && !item.hidden" class="follow-hide" style="float:right" @click="emitHide(item.id)">
|
<span v-if="personal && !item.hidden" class="follow-hide pointer" style="float:right" @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>隐藏
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
@@ -54,6 +54,10 @@
|
|||||||
personal:{
|
personal:{
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false,
|
default:false,
|
||||||
|
},
|
||||||
|
isFollow:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
<ul v-if="list.length > 0">
|
<ul v-if="list.length > 0">
|
||||||
<li class="article-list-index" v-for="item in list" :key="item.id">
|
<li class="article-list-index" v-for="item in list" :key="item.id">
|
||||||
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px">
|
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px">
|
||||||
<span v-if="!personal">{{item.aname}}</span>{{item.cusInfo}}
|
<span v-if="!personal || isFollow">{{item.aname}}</span>{{item.cusInfo}}
|
||||||
<span style="margin-left:28px">{{item.eventTime}}</span>
|
<span style="margin-left:28px">{{item.eventTime}}</span>
|
||||||
<span v-if="personal && !item.hidden" class="follow-hide" style="float:right" @click="emitHide(item.id)">
|
<span v-if="personal && !item.hidden" class="follow-hide pointer" style="float:right" @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>隐藏
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
@@ -58,6 +58,10 @@
|
|||||||
personal:{
|
personal:{
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false,
|
default:false,
|
||||||
|
},
|
||||||
|
isFollow:{//用于判断是否事我的关注页面,显示人名
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
|
|||||||
@@ -4,31 +4,32 @@
|
|||||||
<div :span="24" v-for="item in list" :key="item.id" class="case-list">
|
<div :span="24" v-for="item in list" :key="item.id" class="case-list">
|
||||||
<div class="case-info">
|
<div class="case-info">
|
||||||
<p v-if="isDynamic" class="portal-summary-text">
|
<p v-if="isDynamic" class="portal-summary-text">
|
||||||
<span v-if="!personal">{{item.aname}}</span>{{item.cusInfo}}
|
<span v-if="!personal || isFollow">{{item.aname}}</span>{{item.cusInfo}}
|
||||||
<span style="margin-left:28px">{{item.eventTime}}</span>
|
<span style="margin-left:28px">{{item.eventTime}}</span>
|
||||||
<span v-if="personal && !item.hidden" class="follow-hide" style="float:right" @click="emitHide(item.id)">
|
<span v-if="personal && !item.hidden" class="follow-hide pointer" style="float:right" @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>隐藏
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<div class="case-info-cont">
|
<div class="case-info-cont">
|
||||||
<router-link :to="'/case/detail?id='+item.info.id">
|
|
||||||
<div class="case-info-title">
|
<div class="case-info-title">
|
||||||
|
|
||||||
<div class="case-titdiv" style="">
|
<div class="case-titdiv" style="">
|
||||||
|
<router-link :to="'/case/detail?id='+item.info.id">
|
||||||
<span class="case-tittext" v-html="item.info.title || item.contentInfo"></span>
|
<span class="case-tittext" v-html="item.info.title || item.contentInfo"></span>
|
||||||
|
</router-link>
|
||||||
<span class="follow-hide" v-if="!isDynamic && personal && !item.hidden" @click="emitHide(item.id)">
|
<span class="follow-hide" 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>隐藏
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div style="height:58px;padding-top:18px;display:flex">
|
<div style="height:58px;padding-top:18px;display:flex">
|
||||||
<author :avatar="item.authorInfo.avatar" :name="item.authorInfo.name" :info="item.authorInfo.orgInfo" :sex="item.authorInfo.sex" :aid="item.authorInfo.aid"></author>
|
<author :avatar="item.authorInfo.avatar" :name="item.authorInfo.name" :info="item.authorInfo.orgInfo" :sex="item.authorInfo.sex" :aid="item.authorInfo.aid"></author>
|
||||||
<div class="sign-text">{{ item.authorInfo.sign }}</div>
|
<div class="sign-text">{{ item.authorInfo.sign }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="keyword-text clearfix">
|
<div class="keyword-text clearfix">
|
||||||
<div style="color:#2974D6;font-weight: 450;" v-if="item.orgDomain">{{ orgDomainTranslate(item.info.orgDomain) }}</div>
|
<div style="color:#2974D6;font-weight: 450;" v-if="item.info.orgDomain">{{ orgDomainTranslate(item.info.orgDomain) }}</div>
|
||||||
<div style="color:#2974D6;font-weight: 450;" v-if="item.orgDomain == '' && item.orgDomainParent">{{ orgDomainTranslate(item.info.orgDomainParent) }}</div>
|
<div style="color:#2974D6;font-weight: 450;" v-if="item.info.orgDomain == '' && item.info.orgDomainParent">{{ orgDomainTranslate(item.info.orgDomainParent) }}</div>
|
||||||
<div style="color:#2974D6;font-weight: 450;" v-for="item,idx in item.info.majorType" :key="idx" >{{ majorTypeTranslate(item) }}</div>
|
<div style="color:#2974D6;font-weight: 450;" v-for="item,idx in item.info.majorType" :key="idx" >{{ majorTypeTranslate(item) }}</div>
|
||||||
<div v-if="item.info.keyword1">{{ item.info.keyword1 }}</div>
|
<div v-if="item.info.keyword1">{{ item.info.keyword1 }}</div>
|
||||||
<div v-if="item.info.keyword2">{{ item.info.keyword2 }}</div>
|
<div v-if="item.info.keyword2">{{ item.info.keyword2 }}</div>
|
||||||
@@ -36,7 +37,7 @@
|
|||||||
<div v-if="item.info.keyword4">{{ item.info.keyword4 }}</div>
|
<div v-if="item.info.keyword4">{{ item.info.keyword4 }}</div>
|
||||||
<div v-if="item.info.keyword5">{{ item.info.keyword5 }}</div>
|
<div v-if="item.info.keyword5">{{ item.info.keyword5 }}</div>
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
|
||||||
<div class="case-info-summary two-line-ellipsis">
|
<div class="case-info-summary two-line-ellipsis">
|
||||||
{{item.info.summary}}
|
{{item.info.summary}}
|
||||||
<!-- {{displayAll(item)}}
|
<!-- {{displayAll(item)}}
|
||||||
@@ -78,11 +79,15 @@
|
|||||||
type:Array,
|
type:Array,
|
||||||
default:()=>[]
|
default:()=>[]
|
||||||
},
|
},
|
||||||
isDynamic:{
|
isDynamic:{// 是否全部
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false,
|
default:false,
|
||||||
},
|
},
|
||||||
personal:{
|
personal:{//显示隐藏,
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
|
},
|
||||||
|
isFollow:{//用于判断是否事我的关注页面,显示人名
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false,
|
default:false,
|
||||||
}
|
}
|
||||||
@@ -93,7 +98,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
emitHide(id) {
|
emitHide(id) {
|
||||||
@@ -115,6 +119,7 @@
|
|||||||
},
|
},
|
||||||
orgDomainTranslate(code){ // 组织领域翻译
|
orgDomainTranslate(code){ // 组织领域翻译
|
||||||
if(code==''){return '';}
|
if(code==''){return '';}
|
||||||
|
console.log(code,'code');
|
||||||
return this.orgDomainMap.get(code);
|
return this.orgDomainMap.get(code);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
<ul class="data-info-ul" v-if="list.length > 0">
|
<ul class="data-info-ul" v-if="list.length > 0">
|
||||||
<li class="data-info" v-for="item in list" :key="item.id">
|
<li class="data-info" v-for="item in list" :key="item.id">
|
||||||
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px">
|
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px">
|
||||||
<span v-if="!personal">{{item.aname}}</span>
|
<span v-if="!personal || isFollow">{{item.aname}}</span>
|
||||||
{{item.cusInfo}} <span style="margin-left:28px">{{item.eventTime}}</span>
|
{{item.cusInfo}} <span style="margin-left:28px">{{item.eventTime}}</span>
|
||||||
<span v-if="personal && !item.hidden" class="follow-hide" style="float:right" @click="emitHide(item.id)">
|
<span v-if="personal && !item.hidden" class="follow-hide pointer" style="float:right" @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>隐藏
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
@@ -65,6 +65,10 @@
|
|||||||
personal:{
|
personal:{
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false,
|
default:false,
|
||||||
|
},
|
||||||
|
isFollow:{//用于判断是否事我的关注页面,显示人名
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
<ul v-if="list.length > 0">
|
<ul v-if="list.length > 0">
|
||||||
<li class="note-list-index" v-for="item in list" :key="item.id">
|
<li class="note-list-index" v-for="item in list" :key="item.id">
|
||||||
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px">
|
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px">
|
||||||
<span v-if="!personal">{{item.aname}}</span>{{item.cusInfo}}
|
<span v-if="!personal || isFollow">{{item.aname}}</span>{{item.cusInfo}}
|
||||||
<span style="margin-left:28px">{{item.eventTime}}</span>
|
<span style="margin-left:28px">{{item.eventTime}}</span>
|
||||||
<span v-if="personal && !item.hidden" class="follow-hide" style="float:right" @click="emitHide(item.id)">
|
<span v-if="personal && !item.hidden" class="follow-hide pointer" style="float:right" @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>隐藏
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<h6 class="note-title-info follow-home-title pointer" @click="jumpDetail(item)">{{processNoteTitles(item.contentInfo, 1)}} <span style="color: #333333;font-weight: 400;font-size: 14px;margin-left: 20px;"></span> <span class="score-info" style="margin-left:22px">{{processNoteTitles(item.contentInfo, 2)}}分</span>
|
<h6 class="note-title-info follow-home-title pointer"><span @click="jumpDetail(item)">{{processNoteTitles(item.contentInfo, 1)}}</span> <span style="color: #333333;font-weight: 400;font-size: 14px;margin-left: 20px;"></span> <span class="score-info" @click="jumpDetail(item)" style="margin-left:22px">{{processNoteTitles(item.contentInfo, 2)}}分</span>
|
||||||
<span class="follow-hide" style="float:right" v-if="!isDynamic && personal && !item.hidden" @click="emitHide(item.id)">
|
<span class="follow-hide pointer" style="float: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>隐藏
|
||||||
</span>
|
</span>
|
||||||
</h6>
|
</h6>
|
||||||
@@ -51,6 +51,10 @@
|
|||||||
personal:{
|
personal:{
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false,
|
default:false,
|
||||||
|
},
|
||||||
|
isFollow:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
@@ -63,6 +67,12 @@
|
|||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
processNoteTitles(info,num) {
|
processNoteTitles(info,num) {
|
||||||
|
if(info == null){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if(info.indexOf('&')<0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
let data = info.split('&');
|
let data = info.split('&');
|
||||||
if(num ==1) {
|
if(num ==1) {
|
||||||
return data[0];
|
return data[0];
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
<ul v-if="list.length > 0">
|
<ul v-if="list.length > 0">
|
||||||
<li class="put-list-index" v-for="item in list" :key="item.id">
|
<li class="put-list-index" v-for="item in list" :key="item.id">
|
||||||
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px;margin-top:10px">
|
<p v-if="isDynamic" class="portal-summary-text" style="margin-bottom:18px;margin-top:10px">
|
||||||
<span v-if="!personal">{{item.aname}}</span>{{item.cusInfo}}
|
<span v-if="!personal || isFollow">{{item.aname}}</span>{{item.cusInfo}}
|
||||||
<span style="margin-left:28px">{{item.eventTime}}</span>
|
<span style="margin-left:28px">{{item.eventTime}}</span>
|
||||||
<span v-if="personal && !item.hidden" class="follow-hide" style="float:right" @click="emitHide(item.id)">
|
<span v-if="personal && !item.hidden" class="follow-hide pointer" style="float:right" @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>隐藏
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
@@ -49,6 +49,10 @@
|
|||||||
personal:{
|
personal:{
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false,
|
default:false,
|
||||||
|
},
|
||||||
|
isFollow:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<!-- <el-avatar shape="square" size="small" :src="userAvatar" v-if="userAvatar"></el-avatar> -->
|
<!-- <el-avatar shape="square" size="small" :src="userAvatar" v-if="userAvatar"></el-avatar> -->
|
||||||
<!-- <div v-else class="uavatar"><span class="uavatar-text">{{avatarText}}</span></div> -->
|
<!-- <div v-else class="uavatar"><span class="uavatar-text">{{avatarText}}</span></div> -->
|
||||||
<el-avatar shape="circle" size="small" :src="userAvatar" v-if="userAvatar"></el-avatar>
|
<el-avatar shape="circle" size="small" :src="userAvatar" v-if="userAvatar"></el-avatar>
|
||||||
|
|
||||||
<div v-else class="uavatar">
|
<div v-else class="uavatar">
|
||||||
<div v-if="sex == null" style="border-radius: 50%;width: 40px;height: 40px;"></div>
|
<div v-if="sex == null" style="border-radius: 50%;width: 40px;height: 40px;"></div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
|||||||
@@ -9,12 +9,12 @@
|
|||||||
<el-tab-pane name="">
|
<el-tab-pane name="">
|
||||||
<span slot="label"><svg-icon icon-class="home-dynamic" style="font-size: 30px;"></svg-icon> <span class="tabs-info">动态</span></span>
|
<span slot="label"><svg-icon icon-class="home-dynamic" style="font-size: 30px;"></svg-icon> <span class="tabs-info">动态</span></span>
|
||||||
<template v-for="item in allPageList">
|
<template v-for="item in allPageList">
|
||||||
<course-list v-if="item.contentType == 1" :list="[item]" :isDynamic="true" :personal="personal"></course-list>
|
<course-list v-if="item.contentType == 1" :list="[item]" :isDynamic="true" :personal="personal" @hideIndex="dynamicHide"></course-list>
|
||||||
<case-list v-if="item.contentType == 3" :list="[item]" :isDynamic="true" :personal="personal"></case-list>
|
<case-list v-if="item.contentType == 3" :list="[item]" :isDynamic="true" :personal="personal" @hideIndex="dynamicHide"></case-list>
|
||||||
<note-list v-if="item.contentType == 6" :list="[item]" :isDynamic="true" :personal="personal"></note-list>
|
<note-list v-if="item.contentType == 6" :list="[item]" :isDynamic="true" :personal="personal" @hideIndex="dynamicHide"></note-list>
|
||||||
<put-list v-if="item.contentType == 4" :list="[item]" :isDynamic="true" :personal="personal"></put-list>
|
<put-list v-if="item.contentType == 4" :list="[item]" :isDynamic="true" :personal="personal" @hideIndex="dynamicHide"></put-list>
|
||||||
<answer-list v-if="item.contentType == 5" :list="[item]" :isDynamic="true" :personal="personal"></answer-list>
|
<answer-list v-if="item.contentType == 5" :list="[item]" :isDynamic="true" :personal="personal" @hideIndex="dynamicHide"></answer-list>
|
||||||
<article-list v-if="item.contentType == 2" :list="[item]" :isDynamic="true" :personal="personal"></article-list>
|
<article-list v-if="item.contentType == 2" :list="[item]" :isDynamic="true" :personal="personal" @hideIndex="dynamicHide"></article-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
@@ -146,7 +146,6 @@
|
|||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
init(){
|
init(){
|
||||||
|
|
||||||
this.getList();
|
this.getList();
|
||||||
if(this.pageId == this.userInfo.aid) {
|
if(this.pageId == this.userInfo.aid) {
|
||||||
this.personal = true;
|
this.personal = true;
|
||||||
|
|||||||
@@ -13,38 +13,38 @@
|
|||||||
</div>
|
</div>
|
||||||
-->
|
-->
|
||||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane name="first" label="动态">
|
<el-tab-pane name="" label="全部">
|
||||||
<!-- <span slot="label"><svg-icon icon-class="home-dynamic" style="font-size: 30px;"></svg-icon> <span class="tabs-info">动态</span></span> -->
|
<template v-for="item in allPageList">
|
||||||
动态
|
<course-list v-if="item.contentType == 1" :list="[item]" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></course-list>
|
||||||
|
<case-list v-if="item.contentType == 3" :list="[item]" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></case-list>
|
||||||
|
<note-list v-if="item.contentType == 6" :list="[item]" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></note-list>
|
||||||
|
<put-list v-if="item.contentType == 4" :list="[item]" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></put-list>
|
||||||
|
<answer-list v-if="item.contentType == 5" :list="[item]" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></answer-list>
|
||||||
|
<article-list v-if="item.contentType == 2" :list="[item]" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></article-list>
|
||||||
|
</template>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane name="second" label="课程">
|
<el-tab-pane name="1" label="课程">
|
||||||
<!-- <span slot="label"><svg-icon icon-class="home-course" style="font-size: 30px;"></svg-icon><span class="tabs-info">课程</span></span> -->
|
<course-list :list="cousrePageList" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></course-list>
|
||||||
<course-list></course-list>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane name="case" label="案例">
|
<el-tab-pane name="6" label="笔记">
|
||||||
<!-- <span slot="label"><svg-icon icon-class="home-case" style="font-size: 30px;"></svg-icon><span class="tabs-info">案例</span></span> -->
|
<note-list :list="notePageList" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></note-list>
|
||||||
<case-list></case-list>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane name="note" label="笔记">
|
<el-tab-pane name="3" label="案例">
|
||||||
<!-- <span slot="label"><svg-icon icon-class="home-note" style="font-size: 30px;"></svg-icon><span class="tabs-info">笔记</span></span> -->
|
<case-list :list="casePageList" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></case-list>
|
||||||
<note-list></note-list>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane name="qa" label="提问">
|
<el-tab-pane name="2" label="文章">
|
||||||
<!-- <span slot="label"><svg-icon icon-class="home-qa" style="font-size: 30px;"></svg-icon><span class="tabs-info">提问</span></span> -->
|
<article-list :list="articlePageList" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></article-list>
|
||||||
<put-list></put-list>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane name="answer" label="回答">
|
<el-tab-pane name="4" label="提问">
|
||||||
<!-- <span slot="label"><svg-icon icon-class="home-answer" style="font-size: 30px;"></svg-icon><span class="tabs-info">回答</span></span> -->
|
<put-list :list="qaPageList" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></put-list>
|
||||||
<answer-list></answer-list>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane name="article" label="文章">
|
<el-tab-pane name="5" label="回答">
|
||||||
<!-- <span slot="label"><svg-icon icon-class="home-article" style="font-size: 30px;"></svg-icon><span class="tabs-info">文章</span></span> -->
|
<answer-list :list="answerPageList" :isDynamic="true" :personal="true" :isFollow="true" @hideIndex="dynamicHide"></answer-list>
|
||||||
<article-list></article-list>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane name="fourth" label="关注">
|
|
||||||
<!-- <span slot="label"><svg-icon icon-class="home-follow" style="font-size: 30px;"></svg-icon><span class="tabs-info">关注</span></span> -->
|
<!-- <el-tab-pane name="7" label="关注">
|
||||||
<follow-list></follow-list>
|
<follow-list></follow-list>
|
||||||
</el-tab-pane>
|
</el-tab-pane> -->
|
||||||
<!--
|
<!--
|
||||||
<el-tab-pane name="book" label="书籍">
|
<el-tab-pane name="book" label="书籍">
|
||||||
<span slot="label"><svg-icon icon-class="home-book" style="font-size: 30px;"></svg-icon><span class="tabs-info">书籍</span></span>
|
<span slot="label"><svg-icon icon-class="home-book" style="font-size: 30px;"></svg-icon><span class="tabs-info">书籍</span></span>
|
||||||
@@ -52,10 +52,21 @@
|
|||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
-->
|
-->
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<div style="width:200px"></div>
|
<div style="text-align: center; margin-top:57px;" v-show="page.count > 0 && activeName!='7'">
|
||||||
|
<el-pagination
|
||||||
|
background
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:current-page="page.pageIndex"
|
||||||
|
:page-sizes="[10, 20, 30, 40]"
|
||||||
|
:page-size="page.pageSize"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="page.count">
|
||||||
|
</el-pagination>
|
||||||
|
</div>
|
||||||
|
<div style="height:200px"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -70,6 +81,16 @@
|
|||||||
import ArticleList from "@/components/HomePage/articleList.vue"
|
import ArticleList from "@/components/HomePage/articleList.vue"
|
||||||
import FollowList from "@/components/HomePage/followList.vue"
|
import FollowList from "@/components/HomePage/followList.vue"
|
||||||
import BookList from "@/components/HomePage/bookList.vue"
|
import BookList from "@/components/HomePage/bookList.vue"
|
||||||
|
import apiFollow from "@/api/phase2/userfollow.js"
|
||||||
|
import apiStat from "@/api/phase2/stat.js"
|
||||||
|
import apiArticle from '@/api/modules/article.js'
|
||||||
|
import apiCases from '@/api/modules/cases.js'
|
||||||
|
import apiQa from '@/api/modules/qa.js'
|
||||||
|
import apiCourse from '@/api/modules/course.js'
|
||||||
|
import apiNote from '@/api/phase2/note.js'
|
||||||
|
import apiUser from "@/api/system/user.js";
|
||||||
|
import {cutFullName} from "@/utils/tools.js";
|
||||||
|
import { mapGetters,mapActions } from 'vuex';
|
||||||
|
|
||||||
export default{
|
export default{
|
||||||
components:{portalHeader,UcHeader,CaseList,CourseList,NoteList,PutList,AnswerList,ArticleList,FollowList,BookList},
|
components:{portalHeader,UcHeader,CaseList,CourseList,NoteList,PutList,AnswerList,ArticleList,FollowList,BookList},
|
||||||
@@ -77,12 +98,366 @@
|
|||||||
return{
|
return{
|
||||||
input:'',
|
input:'',
|
||||||
activeName:'first',
|
activeName:'first',
|
||||||
|
page:{
|
||||||
|
pageIndex:1,
|
||||||
|
pageSize:10,
|
||||||
|
count:0
|
||||||
|
},
|
||||||
|
input:'',
|
||||||
|
activeName:'',
|
||||||
|
pageId:'',
|
||||||
|
// pageList:[],
|
||||||
|
casePageList:[],
|
||||||
|
notePageList:[],
|
||||||
|
articlePageList:[],
|
||||||
|
qaPageList:[],
|
||||||
|
answerPageList:[],
|
||||||
|
cousrePageList:[],
|
||||||
|
allPageList:[],
|
||||||
|
personal:true,
|
||||||
|
orgData:[],
|
||||||
|
Profess:[],
|
||||||
|
ids:[],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['userInfo','majorTypeMap','orgDomainMap','attention']),
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
apiFollow.list().then(res=>{
|
||||||
|
if(res.status == 200) {
|
||||||
|
this.ids = res.result.map(item=>item.followId);
|
||||||
|
this.getList()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.loadMajorType();
|
||||||
|
this.loadOrgDomain();
|
||||||
|
},
|
||||||
methods:{
|
methods:{
|
||||||
handleClick() {
|
emitInput(){
|
||||||
|
|
||||||
}
|
},
|
||||||
|
...mapActions({
|
||||||
|
loadMajorType:'majorType/loadMajorTypes',
|
||||||
|
loadOrgDomain:'orgDomain/loadOrgDomains'
|
||||||
|
}),
|
||||||
|
dynamicHide(id){
|
||||||
|
apiStat.dynamicHide(id).then(res=>{
|
||||||
|
if(res.status == 200){
|
||||||
|
this.$message.success('动态隐藏成功')
|
||||||
|
this.getList();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.page.pageSize = val;
|
||||||
|
this.page.pageIndex = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.page.pageIndex = val;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
getList(ids) {
|
||||||
|
let data = {
|
||||||
|
pageIndex:this.page.pageIndex,
|
||||||
|
pageSize:this.page.pageSize,
|
||||||
|
contentType:this.activeName == 0? '':this.activeName,//内容类型
|
||||||
|
aids:this.ids // 数组
|
||||||
|
}
|
||||||
|
apiStat.userDynamicfollows(data).then(res=>{
|
||||||
|
if(res.status == 200) {
|
||||||
|
this.page.count = res.result.count;
|
||||||
|
let ids = res.result.list.map(item=>item.contentId);
|
||||||
|
const noReapetIds = [...new Set(ids)];
|
||||||
|
res.result.list.forEach(item=>{
|
||||||
|
item.info = {};
|
||||||
|
item.authorInfo = {
|
||||||
|
aid: "",
|
||||||
|
name: "",
|
||||||
|
orgInfo: "",
|
||||||
|
avatar: "",
|
||||||
|
sex: null
|
||||||
|
}
|
||||||
|
item.isAll = false;
|
||||||
|
})
|
||||||
|
if(this.activeName == 0) {// 动态处理
|
||||||
|
this.getAllList(res.result.list)
|
||||||
|
}
|
||||||
|
if(this.activeName == 1){
|
||||||
|
this.cousrePageList = res.result.list
|
||||||
|
this.getCourse(noReapetIds,res.result.list);
|
||||||
|
}
|
||||||
|
if(this.activeName == 2) {
|
||||||
|
this.articlePageList = res.result.list;
|
||||||
|
this.getArticle(noReapetIds,res.result.list);
|
||||||
|
}
|
||||||
|
if(this.activeName == 3) {
|
||||||
|
this.casePageList = res.result.list;
|
||||||
|
this.getCase(noReapetIds,res.result.list);
|
||||||
|
console.log(this.casePageList,'this.casePageList');
|
||||||
|
}
|
||||||
|
if(this.activeName == 6) { // 笔记
|
||||||
|
this.getNote(noReapetIds,res.result.list);
|
||||||
|
this.notePageList = res.result.list;
|
||||||
|
}
|
||||||
|
if(this.activeName == 4) { // 提问
|
||||||
|
this.qaPageList = res.result.list;
|
||||||
|
this.getQa(noReapetIds,res.result.list);
|
||||||
|
}
|
||||||
|
if(this.activeName == 5) { // 回答
|
||||||
|
this.answerPageList = res.result.list;
|
||||||
|
this.getAnswer(ids,res.result.list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getAllList(list) {
|
||||||
|
this.allPageList = [];
|
||||||
|
let casePageList=[];
|
||||||
|
let notePageList=[];
|
||||||
|
let articlePageList=[];
|
||||||
|
let qaPageList=[];
|
||||||
|
let answerPageList=[];
|
||||||
|
let cousrePageList=[];
|
||||||
|
list.forEach(item=>{
|
||||||
|
if(item.contentType == 1) {
|
||||||
|
cousrePageList.push(item);
|
||||||
|
}
|
||||||
|
if(item.contentType == 2) {
|
||||||
|
articlePageList.push(item);
|
||||||
|
}
|
||||||
|
if(item.contentType == 3) {
|
||||||
|
casePageList.push(item);
|
||||||
|
}
|
||||||
|
if(item.contentType == 4) {
|
||||||
|
qaPageList.push(item);
|
||||||
|
}
|
||||||
|
if(item.contentType == 5) {
|
||||||
|
answerPageList.push(item);
|
||||||
|
}
|
||||||
|
if(item.contentType == 6) {
|
||||||
|
notePageList.push(item);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
let caseIds = casePageList.map(item=>item.contentId);
|
||||||
|
const noReapetCaseIds = [...new Set(caseIds)];
|
||||||
|
let articleIds = articlePageList.map(item=>item.contentId);
|
||||||
|
const noReapetArticleIds = [...new Set(articleIds)];
|
||||||
|
let cousreIds = cousrePageList.map(item=>item.contentId);
|
||||||
|
const noReapetCousreIds = [...new Set(cousreIds)];
|
||||||
|
let qaIds = qaPageList.map(item=>item.contentId);
|
||||||
|
const noReapetQaIds = [...new Set(qaIds)];
|
||||||
|
let anwerIds = answerPageList.map(item=>item.contentId);
|
||||||
|
const noReapetAnwerIds = [...new Set(anwerIds)];
|
||||||
|
let noteIds = notePageList.map(item=>item.contentId);
|
||||||
|
const noReapetNoteIds = [...new Set(noteIds)];
|
||||||
|
if(noReapetCaseIds.length > 0) {
|
||||||
|
this.getCase(noReapetCaseIds,casePageList);
|
||||||
|
}
|
||||||
|
if(noReapetArticleIds.length > 0) {
|
||||||
|
this.getArticle(noReapetArticleIds,articlePageList);
|
||||||
|
}
|
||||||
|
if(noReapetCousreIds.length > 0) {
|
||||||
|
this.getCourse(noReapetCousreIds,cousrePageList);
|
||||||
|
}
|
||||||
|
if(noReapetQaIds.length > 0) {
|
||||||
|
this.getQa(noReapetQaIds,qaPageList);
|
||||||
|
}
|
||||||
|
if(noReapetAnwerIds.length > 0) {
|
||||||
|
this.getAnswer(noReapetAnwerIds,answerPageList);
|
||||||
|
}
|
||||||
|
if(noReapetNoteIds.length > 0) {
|
||||||
|
this.getNote(noReapetNoteIds,notePageList);
|
||||||
|
}
|
||||||
|
this.allPageList.push(...casePageList,...articlePageList,...cousrePageList,...qaPageList,...answerPageList,...notePageList);
|
||||||
|
this.allPageList.sort(this.pcompare("eventTime", false))
|
||||||
|
},
|
||||||
|
pcompare(prop, rev) {
|
||||||
|
if (rev === undefined) {
|
||||||
|
rev = 1;
|
||||||
|
} else {
|
||||||
|
rev = rev ? 1 : -1;
|
||||||
|
}
|
||||||
|
return function(obj1, obj2) {
|
||||||
|
let val1 = obj1[prop],
|
||||||
|
val2 = obj2[prop];
|
||||||
|
return val1 < val2 ? rev * -1 : rev * 1;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
getAnswer(ids,list){
|
||||||
|
if(ids.length == 0){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
apiQa.answerIds(ids).then(res=>{
|
||||||
|
if(res.status == 200) {
|
||||||
|
list.forEach((item, index) => {
|
||||||
|
res.result.some(con => {
|
||||||
|
if (con.id == item.contentId) {
|
||||||
|
item.info = con;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getQa(ids,list){
|
||||||
|
apiQa.ids(ids).then(res=>{
|
||||||
|
if(res.status == 200) {
|
||||||
|
list.forEach((item, index) => {
|
||||||
|
res.result.some(con => {
|
||||||
|
if (con.id == item.contentId) {
|
||||||
|
item.info = con;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getNote(ids,list) {
|
||||||
|
apiNote.ids(ids).then(res=>{
|
||||||
|
if(res.status == 200) {
|
||||||
|
list.forEach((item, index) => {
|
||||||
|
res.result.some(con => {
|
||||||
|
if (con.id == item.contentId) {
|
||||||
|
item.info = con;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getCase(ids,list){
|
||||||
|
apiCases.ids(ids).then(res=>{
|
||||||
|
if(res.status == 200) {
|
||||||
|
list.forEach((item, index) => {
|
||||||
|
res.result.some(con => {
|
||||||
|
if (con.id == item.contentId) {
|
||||||
|
item.info = con;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
this.getCaseUserData(list);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getCaseUserData(list) {
|
||||||
|
// let ids = caseList.map((item, index) => {
|
||||||
|
// return item.info.authorId;
|
||||||
|
// });
|
||||||
|
// const noReapetIds = [...new Set(ids)];
|
||||||
|
let data = list.filter((item, index) => {
|
||||||
|
return item.info && item.info.authorId != null;
|
||||||
|
});
|
||||||
|
let ids = data.map((item, index) => {
|
||||||
|
return item.info.authorId;
|
||||||
|
});
|
||||||
|
const noReapetIds = [...new Set(ids)];
|
||||||
|
apiUser.getByIds(noReapetIds).then(res => {
|
||||||
|
if (res.status == 200) {
|
||||||
|
list.forEach((item, index) => {
|
||||||
|
res.result.some(author => {
|
||||||
|
if (author.aid == item.info.authorId) {
|
||||||
|
item.authorInfo = author;
|
||||||
|
author.orgInfo=cutFullName(author.orgInfo,1);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getArticle(ids,list){
|
||||||
|
apiArticle.ids(ids).then(res=>{
|
||||||
|
if(res.status == 200) {
|
||||||
|
list.forEach((item, index) => {
|
||||||
|
res.result.some(con => {
|
||||||
|
if (con.id == item.contentId) {
|
||||||
|
item.info = con;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
this.getArticleUserData(list);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getArticleUserData(list) {
|
||||||
|
let data = list.filter((item, index) => {
|
||||||
|
return item.info && item.info.sysCreateAid != null;
|
||||||
|
});
|
||||||
|
let ids = data.map((item, index) => {
|
||||||
|
return item.info.sysCreateAid;
|
||||||
|
});
|
||||||
|
const noReapetIds = [...new Set(ids)];
|
||||||
|
apiUser.getByIds(noReapetIds).then(res => {
|
||||||
|
if (res.status == 200) {
|
||||||
|
list.forEach((item, index) => {
|
||||||
|
res.result.some(author => {
|
||||||
|
if (author.aid == item.info.sysCreateAid) {
|
||||||
|
item.authorInfo = author;
|
||||||
|
author.orgInfo=cutFullName(author.orgInfo,1);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getCourse(ids,list) {
|
||||||
|
apiCourse.ids(ids).then(res=>{
|
||||||
|
if(res.status == 200) {
|
||||||
|
list.forEach((item, index) => {
|
||||||
|
res.result.some(con => {
|
||||||
|
if (con.id == item.contentId) {
|
||||||
|
item.info = con;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// this.getArticleUserData(list);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleClick() {
|
||||||
|
if(this.activeName == '7') {
|
||||||
|
//单独的分页,所以这里不与当前页面的分页共用
|
||||||
|
this.$refs.followList.resetActive();
|
||||||
|
this.$refs.followList.getPage();
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if(this.activeName == '8') {
|
||||||
|
this.page.count = 0;
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -93,7 +468,7 @@
|
|||||||
}
|
}
|
||||||
.follow-page{
|
.follow-page{
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
height: 100vh;
|
// height: 100%;
|
||||||
::v-deep .el-tabs__active-bar{
|
::v-deep .el-tabs__active-bar{
|
||||||
height: 4px;
|
height: 4px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
|||||||
Reference in New Issue
Block a user