You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
210 lines
9.0 KiB
210 lines
9.0 KiB
<template>
|
|
<div id="aCoursesList" class="bg-fa of">
|
|
<section class="container">
|
|
<section class="i-article">
|
|
<div class="fl col-7">
|
|
<section class="mr30">
|
|
<header class="comm-title all-article-title">
|
|
<h2 class="fl tac">
|
|
<span class="c-333" style="font-weight: bold;">推荐</span>
|
|
</h2>
|
|
<section class="c-tab-title">
|
|
<!-- <a href="javascript: void(0)"> </a> -->
|
|
</section>
|
|
</header>
|
|
<!-- /无数据提示 开始-->
|
|
<!-- /无数据提示 结束-->
|
|
<article class="i-article-list">
|
|
<!-- /文章列表 开始-->
|
|
<ul>
|
|
<li v-for="(recommendation,index) in recommendationList" :key="recommendation.id">
|
|
<aside class="i-article-pic">
|
|
<img :src="recommendation.imageUrl" :alt="1">
|
|
</aside>
|
|
<h3 class="hLh30 txtOf">
|
|
<a :title="recommendation.title" href="/home/1" class="i-art-title">{{ recommendation.title }}</a>
|
|
</h3>
|
|
<section class="i-q-txt mt5 i-q-txt2"/>
|
|
<section class="hLh30 txtOf mt5 a-list-extrainfo">
|
|
<div class="fl">
|
|
<img :src="recommendation.head" alt="" width="23px" height="23px" style="border-radius: 13px;">
|
|
<span class="c-999 f-fM">{{ recommendation.author }}</span>
|
|
<span class="c-999 f-fM">{{ formatDateTime(recommendation.publishTime) }}</span>
|
|
<span class="el-icon-view"> {{ recommendation.shares }}</span>
|
|
<span class="el-icon-chat-dot-square"> {{ recommendation.comments }}</span>
|
|
<!-- <span> -->
|
|
<!-- <a class="noter-dy vam" title="回答" href="http://127.0.0.1:81/front/articleinfo/23.html">
|
|
<em class="icon18"> </em>
|
|
<span>{{ recommendation.comments }}</span>
|
|
</a> -->
|
|
<!-- <a href="#" class=""><span class="el-icon-chat-dot-square">{{ recommendation.comments }}</span></a> -->
|
|
<!-- <tt title="赞一下" class=" vam ml10 f-fM" @click="addPraise(recommendation.id)">
|
|
<img src="/assets/img/pic/YES.png" alt="" style="color: aqua;">
|
|
<span>{{ recommendation.likes }}</span>
|
|
</tt> -->
|
|
<!-- </span> -->
|
|
<!-- <span class="" @click="praise(index,recommendation.id)">
|
|
<img v-if="recommendation.isLikd==0" src="/assets/img/pic/NO.png" alt=""></i>
|
|
<img src="/assets/img/pic/YES.png" alt="">
|
|
</span>
|
|
<span>{{ recommendation.likes }}</span> -->
|
|
<span>
|
|
<i
|
|
:id="'like-count'+recommendation.id"
|
|
:style="{color: recommendation.isLiked==0 ? '#f56c6c' : '#c0c4cc'}"
|
|
class="el-icon-thumb "
|
|
@click="praise(recommendation.id,recommendation.isLiked,index)"
|
|
> {{ recommendation.likes }}</i>
|
|
<!-- <i v-if="recommendation.isLiked==0" class="el-icon-thumb"> {{ recommendation.likes }}</i>
|
|
<i class="el-icon-thumb" style="color: aqua;"> {{ recommendation.likes }}</i> -->
|
|
</span>
|
|
</div>
|
|
</section>
|
|
</li>
|
|
</ul>
|
|
<!-- /文章列表 结束-->
|
|
</article>
|
|
|
|
<!-- 公共分页 开始 -->
|
|
<!-- <div>
|
|
<div class="paging">
|
|
<a class="undisable" title>首</a>
|
|
<a id="backpage" class="undisable" href="#" title><</a>
|
|
<a href="#" title class="current undisable">1</a>
|
|
<a href="#" title>2</a>
|
|
<a id="nextpage" href="#" title>></a>
|
|
<a href="#" title>末</a>
|
|
<div class="clear"/>
|
|
</div>
|
|
</div> -->
|
|
<!-- 公共分页 结束 -->
|
|
|
|
</section>
|
|
</div>
|
|
|
|
<!-- 精选视频 -->
|
|
<aside class="fl col-3 articleRecommend">
|
|
<div>
|
|
<header class="comm-title all-article-title">
|
|
<h2 class="fl tac">
|
|
|
|
<span class="c-333 " style="font-weight: bold;">精选视频</span>
|
|
</h2>
|
|
<section class="c-tab-title">
|
|
<!-- <a href="javascript: void(0)"> </a> -->
|
|
</section>
|
|
</header>
|
|
<article class="i-article-list">
|
|
<!-- /文章列表 开始-->
|
|
<ul>
|
|
<li v-for="featured in featuredList" :key="featured.id">
|
|
<aside class="i-article-pic">
|
|
<img :src="featured.imageUrl" :alt="1">
|
|
</aside>
|
|
<h3 class="hLh30 txtOf">
|
|
<a :title="featured.title" href="/home/1" class="i-art-title">{{ featured.title }}</a>
|
|
</h3>
|
|
<section class="i-q-txt mt5 i-q-txt2"/>
|
|
<section class="hLh30 txtOf mt5 pr10 a-list-extrainfo">
|
|
<div class="fl">
|
|
<span class="el-icon-view"> {{ featured.views }}</span>
|
|
<span class="c-999 f-fM">{{ formatDateTime(featured.publishTime) }}</span>
|
|
</div>
|
|
</section>
|
|
</li>
|
|
</ul>
|
|
<!-- /文章列表 结束-->
|
|
</article>
|
|
|
|
</div>
|
|
</aside></section></section></div></template>
|
|
<!-- <script>
|
|
|
|
</script> -->
|
|
<script>
|
|
import indexApi from '~/api/home'
|
|
import service from '../../utils/request'
|
|
// import service from '../../utils/request'
|
|
|
|
export default {
|
|
|
|
async asyncData() {
|
|
// 获取直播和专题数据
|
|
const RecommendationResponse = await indexApi.RecommendationList()
|
|
const recommendationList = RecommendationResponse.data
|
|
const FeaturedResponse = await indexApi.FeaturedList()
|
|
const featuredList = FeaturedResponse.data
|
|
// var time = recommendationList.publishTime
|
|
// var d = new Date(time)
|
|
// var times = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds()
|
|
return {
|
|
recommendationList,
|
|
featuredList
|
|
|
|
// currentMonth: new Date().getMonth() + 1
|
|
|
|
}
|
|
},
|
|
methods: {
|
|
praise(id, index) {
|
|
service.post('recommendation/api/addLike/' + id)
|
|
// .then(response => response.json())
|
|
.then(Response => {
|
|
// console.log(id)
|
|
// console.log(status)
|
|
// console.log(response)
|
|
// window.location.reload()
|
|
// console.log(this.RecommendationResponse)
|
|
// console.log(id)
|
|
|
|
// document.getElementById(`like-count`).textContent = data.data.likes
|
|
// document.getElementById(`like-isLiked`).className = data.isLiked ? 'liked' : ''
|
|
service.post('recommendation/api/selectRecommendation')
|
|
.then(Response => {
|
|
const data = Response.data
|
|
// console.log(data)
|
|
for (var i = 0; i < data.length; i++) {
|
|
// console.log(data[i])
|
|
if (data[i].id === id) {
|
|
// console.log(data[i].id)
|
|
// console.log(id)
|
|
document.getElementById(`like-count` + id).textContent = data[i].likes
|
|
if (data[i].isLiked === 0) {
|
|
// console.log(data[i].isLiked)
|
|
document.getElementById(`like-count` + id).style.color = '#f56c6c'
|
|
} else {
|
|
document.getElementById(`like-count` + id).style.color = '#c0c4cc'
|
|
}
|
|
}
|
|
}
|
|
|
|
// const isLikd = data.isLiked
|
|
// document.getElementById(`like-count`).textContent = data.likes
|
|
// const i = document.getElementById(`like-count`)
|
|
// // '#f56c6c' : '#c0c4cc'
|
|
// if (isLikd) {
|
|
// i.style.color = '#f56c6c'
|
|
// } else {
|
|
// i.style.color = '#c0c4cc'
|
|
// }
|
|
// console.log(Response)
|
|
})
|
|
|
|
// console.log(data)
|
|
})
|
|
.catch(error => {
|
|
console.log(error)
|
|
console.log('error')
|
|
})
|
|
},
|
|
formatDateTime(isoString) {
|
|
const date = new Date(isoString)
|
|
const month = (date.getMonth() + 1).toString().padStart(2, 0)
|
|
const day = date.getDate().toString().padStart(2, 0)
|
|
const hours = date.getHours().toString().padStart(2, 0)
|
|
const minutes = date.getMinutes().toString().padStart(2, '0')
|
|
return `${month}-${day} ${hours}:${minutes}`
|
|
}
|
|
}
|
|
}
|
|
</script>
|