<template>
	<view class="recommend-index">
		<view class="index-banner">
			<image style="width: 100%;height:301upx" src="../../static/images/banner-index.png" mode=""></image>
		</view>
		<view class="course-re">
			<view class="recommend-index-title">
				<text class="title-line"></text>
				热门课程推荐
				<!-- <text class="tetle-text">查看更多</text> -->
			</view>
			<view class="course-re-list">
				<view class="course-re-index" v-for="course in courseDataList" :key="course.id" @click="toCourseDetail(course)">
					<view class="course-img">
						<text class="img-score">
							<image style="width:28upx;height:28upx;margin-right: 6upx;" src="../../static/images/icon/index-start.png" mode=""></image>
							{{converToScore(course.score)}}分</text>
							<course-image :course="course" width="332upx" height="192upx"></course-image>
						<!-- <image style="width: 100%;height:100%;border-radius: 16upx;" src="../../static/images/course.png" mode=""></image> -->
					</view>
					<view class="course-title">
						{{course.name}}
					</view>
					<view class="course-text">
						{{course.sysCreateBy}} | {{course.studys}}人已学
					</view>
					<view class="course-type">
						<!-- <text class="type-index">通用力</text>
						<text class="type-index">产品经理</text> -->
						<text class="type-index" v-if="sysTypeName(course.sysType1) != ''">{{sysTypeName(course.sysType1)}}</text>
						<text class="type-tow" v-if="sysTypeName(course.sysType2) != ''">{{sysTypeName(course.sysType2)}}</text>
					</view>
				</view>
			</view>
		</view>
		<view style="margin:30upx 0 60upx 0">
			<image style="width: 100%;height:220upx" src="../../static/images/banner-tow.png" mode=""></image>
		</view>
		<view class="ranking-list">
			<view class="recommend-index-title">
				<text class="title-line"></text>
				排行榜
			</view>
			<view class="list-box">
				<view class="list-box-index">
				    <view class="list-box-title course-bg-info">
				    	课程排行榜
				    </view>	
					<view class="list-box-text" v-for="(cou,index) in courseRankingList" @click="toCourseDetail(cou)">
						<image v-if="index == 0" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/listblue01.png" mode=""></image>
						<image v-if="index == 1" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/listblue02.png" mode=""></image>
						<image v-if="index == 2" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/listblue03.png" mode=""></image>
						<text>{{cou.name}}</text>
					</view>
				</view>
				<view class="list-box-index">
				    <view class="list-box-title art-bg-info">
				    	热门文章排行榜
				    </view>	
					<view class="list-box-text" v-for="(arl,index) in arlRankingList" @click="toArticleDetail(arl)">
						<image v-if="index == 0" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/listred01.png" mode=""></image>
						<image v-if="index == 1" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/listred02.png" mode=""></image>
						<image v-if="index == 2" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/listred03.png" mode=""></image>
						<text>{{arl.title}}</text>
					</view>
				</view>
				<view class="list-box-index">
				    <view class="list-box-title qa-bg-info">
				    	热门问答排行榜
				    </view>	
					<view class="list-box-text" v-for="(qa,index) in qaRankingList" @click="toQaDetail(qa)">
						<image v-if="index == 0" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/list-01.png" mode=""></image>
						<image v-if="index == 1" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/list02.png" mode=""></image>
						<image v-if="index == 2" style="width:50upx;height: 50upx;vertical-align: middle;" src="../../static/images/ranking/list03.png" mode=""></image>
						<text>{{qa.title}}</text>
					</view>
				</view>
			</view>
		</view>
		<view class="articl-recommend">
			<view class="recommend-index-title">
				<text class="title-line"></text>
				热门文章推荐
				<!-- <text class="tetle-text">查看更多</text> -->
			</view>
			<view class="articl-box">
				<view class="articl-box-index" v-for="ar in arlDataList" @click="toArticleDetail(ar)">
					<image v-if="ar.coverurl == ''" style="width: 560upx;height: 314upx;border-radius: 24upx 24upx 0 0;" src="../../static/images/course.png" mode=""></image>
					<image v-else style="width: 560upx;height: 314upx;border-radius: 24upx 24upx 0 0;" :src="fileUrl+ar.coverurl" mode=""></image>
					<view class="box-index">
						<view class="box-index-title" style="height:90upx">
							{{ar.title}}
						</view>
						<view class="box-index-authr">
							<author-info width="32px" height="32px" :avatar="ar.authorInfo.avatar" :name="ar.authorInfo.name" :sex="ar.authorInfo.sex"></author-info>
							<!-- <image style="width: 64upx;height:64upx;vertical-align: middle;margin-right: 24upx;" src="../../static/images/woman.png" mode=""></image>
							学习小助手 -->
						</view>
					</view>
				</view>
			</view>
		</view>
		<view class="qa-recommend">
			<view class="recommend-index-title">
				<text class="title-line"></text>
				热门问答推荐
				<!-- <text class="tetle-text">查看更多</text> -->
			</view>
			<view class="qa-box" style="display: flex;overflow-x: auto;">
				<view class="qa-box-index" v-for="qa in qaDataList" @click="toQaDetail(qa)">
					<view class="box-index-title">
						{{qa.title}}
					</view>
					<view class="box-index-authr" style="display: flex;">
						<author-info width="26px" height="26px" :avatar="qa.authorInfo.avatar" :name="qa.authorInfo.name" :sex="qa.authorInfo.sex"></author-info>
						<!-- <image style="width: 64upx;height:64upx;vertical-align: middle;margin-right: 24upx;" src="../../static/images/woman.png" mode=""></image>
						<text style="font-size: 28upx;color: #39424C;">学习小助手</text> -->
						<text style="font-size: 28upx;color: #6E7B84;margin-top: 10upx;display: inline-block;margin-left: 20upx;">「最热答案」</text>
					</view>
					<view class="box-index-text">
						{{qa.content}}
					</view>
				</view>
			</view>
		</view>
		<u-divider text="没有更多了"></u-divider>
	</view>
</template>

<script>
	import apiIndex from '@/api/phase2/index.js';
	import { mapGetters,mapActions} from 'vuex';
	import apiUser from '@/api/system/user.js';
	import {toScore} from '@/utils/tools.js'
	export default {
		data() {
			return {
				fileUrl:this.$config.fileUrl,
				arlDataList:[],
				qaDataList:[],
				courseDataList:[],
				qaRankingList:[],
				arlRankingList:[],
				courseRankingList:[],
				converToScore:toScore,
			}
		},
		computed: {
		    ...mapGetters(['userInfo','sysTypeMap'])
		},
		mounted(){
			this.getCourseData();
			// this.getSysTypeTree();
			// this.findCourseData();
			this.loadSysTypes();
			this.getQaRanking();
			this.getArtRanking();
			this.getArtData();
			this.getQaData();
			this.getCourseRanking();
		},
		methods: {
			//文章跳转详情
			toArticleDetail(item) {
				uni.navigateTo({
					url: '/pages/resource/articeDetail?id=' + item.id
				});
			},
			toQaDetail(item) {
				uni.navigateTo({
					url: '/pages/resource/qaDetail?id=' + item.id
				});
			},
			//课程跳转详情
			toCourseDetail(citem) {
				if(citem.source == 1){
				 uni.navigateTo({
				 	url: '/pages/study/studydetail?id='+citem.id+'&type='+citem.type
				 });
				} else {
					if (citem.type == 10) {
						uni.navigateTo({
							url: '/pages/resource/microDetail?id='  + citem.id 
						});
					} else if (citem.type == 20) {
						uni.navigateTo({
							url: '/pages/resource/courseDetail?id=' +citem.id
						});
					}
				}
			},
			...mapActions({
			      // getResOwnerTree:'resOwner/getResOwnerTree',
			      // loadResOwners:'resOwner/loadResOwners',
			      getSysTypeTree:'sysType/getSysTypeTree',
			      loadSysTypes:'sysType/loadSysTypes'
			    }),
			sysTypeName(code){
			  if(code=='' || code==0){return '';}
			  return this.sysTypeMap.get(code);
			},
			//问答排行榜
			getQaRanking(){
				apiIndex.qaAnswers(3).then(res=>{
					if(res.status == 200) {
						this.qaRankingList = res.result;
					}
				})
			},
			//文章排行榜
			getArtRanking(){
				apiIndex.articleViews(3).then(res=>{
					if(res.status == 200){
						this.arlRankingList = res.result;
					}
				})
			},
			//课程排行榜
			getCourseRanking(){
				apiIndex.scorelist(3,1).then(res=>{
					if(res.status == 200){
						this.courseRankingList = res.result;
					}
				})
			},
			//推荐文章
			getArtData() {
				apiIndex.articlelist(2).then(res=>{
					if(res.status == 200) {
						let ids = [];
						res.result.forEach(item=>{
							ids.push(item.sysCreateAid);
							item.authorInfo={avatar:'',name:'',code:'',sex:null};
						})
						this.arlDataList = res.result;
						this.loadAuthorInfo(res.result,ids);
					}
				})
			},
			// 推荐问答
			getQaData(){
				let params = {
				  pageSize: 4,
				  orderAsc: false,
				  orderField: 'views'
				};
			    apiIndex.indexList(params).then(res=>{
					if(res.status == 200){
						let ids = [];
						res.result.forEach(item=>{
							ids.push(item.sysCreateAid);
							item.authorInfo={avatar:'',name:'',code:'',sex:null};
						})
						this.qaDataList = res.result;
						this.loadAuthorInfo(res.result,ids);
						console.log(this.qaDataList,'this.qaDataList')
					}
				})
			},
			// 推荐课程
			getCourseData(){
				let course = {
				  num:6,
				  device: 1,
				  orderField: 'studys',
				  orderAsc: false,
				  topOrder: true,
				};
				apiIndex.mobileIndex(course).then(res=>{
					if(res.status == 200) {
						this.courseDataList = res.result;
					}
				})
			},
			loadAuthorInfo(list, ids) {
			        //加载作者信息，头像，机构信息
			        if (ids.length == 0) {
			          return;
			        }
			        const noReapetIds = [...new Set(ids)];
			        apiUser.getByIds(ids).then(res => {
			          if (res.status == 200) {
			            list.forEach((item, index) => {
			              res.result.some(author => {
			                if (author.aid == item.sysCreateAid) {
			                  item.authorInfo = author;
			                  return true;
			                } else {
			                  return false;
			                }
			              });
			            });
			          } else {
			            console.log('加载用户信息失败:' + res.error);
			          }
			        });
			      },
		}
	}
</script>

<style scoped lang="scss">
.recommend-index{
	background-color: #fff;
	padding:8upx 30upx;
	padding-bottom: 100upx;
	.recommend-index-title{
		font-size: 36upx;
		font-weight: 600;
		height: 40upx;
		line-height: 40upx;
		color: #04243C;
		margin-top: 50upx;
		.title-line{
			display: inline-block;
			width: 8upx;
			height: 28upx;
			background: #387DF7;
			border-radius: 8upx;
			margin-right: 12upx;
		}
		.tetle-text{
			float: right;
			font-size: 24upx;
			color: #6E7B84;
			font-weight: 400;
		}
	}
	.course-re-list{
		display: flex;
		flex-wrap: wrap;
		margin-top: 20upx;
		.course-re-index{
			padding: 15upx 0;
			width: 335upx;
			min-width: 335upx;
			&:nth-child(2n-1){
				margin-right: 20upx;
			}
			.course-img{
				width: 335upx;
				height: 188upx;
				border-radius: 16upx;
				position: relative;
				/deep/ uni-image {
					border-radius: 8upx;
				}
				.img-score{
					display: inline-block;
					padding: 7upx 15upx;
					box-sizing: border-box;
					position: absolute;
					right:2upx;
					bottom: -2upx;
					color: #FFFFFF;
					font-size: 28upx;
					z-index: 99999;
					width: 136upx;
					height: 44upx;
					background: #1767FF;
					// background: ;
					// background: rgba($color: #1767FF, $alpha: 0.2);
					border-radius: 24upx 0px 0px 0px;
					backdrop-filter: blur(20px);
				}
			}
			.course-title{
				margin-top: 20upx;
				font-size: 28upx;
				color: #39424C;
				display: -webkit-box;
				word-break:break-all;
				// white-space:pre-wrap;
				overflow: hidden;
				// text-overflow:ellipsis;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 1;
				box-sizing: border-box;
			}
			.course-text{
				margin-top: 20upx;
				font-size: 28upx;
				color: #6E7B84;
			}
			.course-type{
				margin-top: 20upx;
				.type-index{
					font-size: 22upx;
					color: #6E7B84;
					background: rgba($color: #387DF7, $alpha: 0.1);
					border-radius: 8upx;
					margin-right: 12upx;
					padding: 2upx 12upx;
				}
				.type-tow{
					font-size: 22upx;
					color: #D98135;
					background: rgba($color: #FF7900, $alpha: 0.1);
					border-radius: 8upx;
					margin-right: 12upx;
					padding: 4upx 12upx;
				}
			}
		}
		
	}
    .ranking-list{
		.list-box{
			// width: 1720upx;
			margin-top: 30upx;
			display: flex;
			overflow-x: auto;
		}
		.list-box-index:nth-child(1){
			background: url(../../static/images/ranking/qa-box.png) no-repeat 100% / 100%;
			background-position: 0 0;
		}
		.list-box-index:nth-child(2){
			background: url(../../static/images/ranking/list-or.png) no-repeat 100% / 100%;
			background-position: 0 -1px;
		}
		.list-box-index:nth-child(3){
			background: url(../../static/images/ranking/list-pink.png) no-repeat 100% / 100%;
			background-position: 0 0;
		}
	   .list-box-index{
		   width: 560upx;
		   min-width: 560upx;
		   height: 332upx;
		   box-sizing: border-box;
		   border-radius: 24upx;
		   border: 2upx solid #E4EAEF;
		   padding: 34upx 30upx;
		   // background: url(../../static/images/ranking/qa-box.png) no-repeat 100% / 100%;
		   // background-position: 0 0;
		   margin-right: 20upx;
		  
		   .list-box-title{
			   font-size: 32upx;
			   font-weight: 600;
			   color: #04243C;
			   margin-bottom: 4upx;
		   }
		   .list-box-text{
			   margin-top: 26upx;
			   font-size: 28upx;
			   color: #39424C;
			   overflow: hidden;
			   text-overflow: ellipsis;
			   -webkit-box-orient: vertical; 
			   display: -webkit-box;-webkit-line-clamp: 1; 
			   word-break:break-all;
		   }
	   }
    }
	.articl-recommend{
		.articl-box{
			margin-top: 28upx;
			display: flex;
			overflow-x: auto;
			.articl-box-index{
				width: 560upx;
				border-radius: 24upx;
				border: 2upx solid #E4EAEF;
				margin-right: 20upx;
				.box-index{
					padding: 30upx;
					.box-index-title{
						font-size: 32upx;
						font-weight: 600;
						color: #39424C;
						overflow: hidden;
						text-overflow: ellipsis;
						-webkit-box-orient: vertical; 
						display: -webkit-box;-webkit-line-clamp: 2; 
						word-break:break-all;
					}
					.box-index-authr{
						margin-top: 30upx;
						font-size: 28upx;
						color: #6E7B84;
					}
				}
			}
		}
	}
    .qa-recommend{
		.qa-box{
			margin-top: 32upx;
			margin-bottom: 60upx;
			
			.qa-box-index{
				background: url(../../static/images/ranking/qa-bg.png) no-repeat 100% / 100%;
				background-position: 0 0;
				margin-right: 20upx;
				width: 560upx;
				min-width: 560upx;
				border: 2upx solid #E4EAEF;
				border-radius: 24upx;
				padding: 30upx;
				box-sizing: border-box;
				.box-index-title{
					font-size: 32upx;
					font-weight: 600;
					color: #02233C;
					overflow: hidden;
					text-overflow: ellipsis;
					-webkit-box-orient: vertical; 
					display: -webkit-box;-webkit-line-clamp: 2; 
					word-break:break-all;
				}
				.box-index-authr{
					margin-top: 30upx;
					margin-bottom: 20upx;
					/deep/.author-name{
						color: #39424C !important;
					}
				}
				.box-index-text{
					font-size: 28upx;
					color: #6E7B84;
					margin-bottom: 10upx;
					overflow: hidden;
					text-overflow: ellipsis;
					-webkit-box-orient: vertical; 
					display: -webkit-box;-webkit-line-clamp: 2; 
					word-break:break-all;
				}
			}
			
		}
	}
}
</style>
