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.
 
 
 

134 lines
4.6 KiB

<template>
<div>
<div id="aCoursesList">
<!-- 直播课程 开始 -->
<div>
<section class="container">
<header class="comm-title">
<h2 class="tac">
<!-- <span class="c-333">即将开播</span> -->
</h2>
</header>
<div>
<article class="comm-course-list">
<ul id="bna" class="of">
<li v-for="video in videoList" :key="video.id">
<div class="cc-l-wrap">
<section class="course-img">
<img
:src="video.coverImg"
:alt="video.mainTitle"
class="img-responsive"
style="width: 315px; height: 150px;align-items: center;"
>
<div class="cc-mask">
<a :href="'/video/'+video.id" title="即将开播" class="comm-btn c-btn-1">即将开播<br>明天{{ formatDateTime(video.publishTime) }}开播</a>
</div>
</section>
<h3 class="hLh30 txtOf mt10">
<a :href="'/video/'+video.id" :title="video.mainTitle" class="course-title fsize18 c-333">{{ video.mainTitle }}</a>
</h3>
<div class="fl jgAttr c-ccc f-fA" style="position: absolute;">
<img :src="video.head" alt="" width="22px" height="22px" style="border-radius: 10px;display: inline-block;" >
<span class="c-999 f-fA" >{{ video.description }}</span>
</div>
<el-button
:id="'reservation'+video.id"
:style="{background: video.isBooked==0 ? 'cyan' : '#f56c6c'}"
style="position: absolute;margin-bottom: 120px;margin-left: 220px; height: 23px;width: 40px;padding: 1px;"
type="text"
size="small"
@click="reservation(video.id)">{{ video.isBooked==0? '预约':'已预约' }}</el-button>
<a href=""/>
</div>
</li>
</ul>
<div class="clear"/>
</article>
<section class="tac pt20">
<a href="#" title="全部直播" class="comm-btn c-btn-2">全部直播</a>
</section>
</div>
</section>
</div>
<!-- 直播课程 结束 -->
</div>
</div>
</template>
<script>
import indexApi from '~/api/index'
import service from '../utils/request'
export default {
async asyncData() {
// 获取课程和讲师数据
const indexDataResponse = await indexApi.getVideoData()
const videoList = indexDataResponse.data
return {
indexDataResponse,
videoList
}
},
// 幻灯片导航的定义
data() {
return {
swiperOption: {
// 配置分页
pagination: {
el: '.swiper-pagination'// 分页的dom节点
},
// 配置导航
navigation: {
nextEl: '.swiper-button-next', // 下一页dom节点
prevEl: '.swiper-button-prev'// 前一页dom节点
}
}
}
},
methods: {
reservation(id, index) {
service.post('video-data/api/isBookedById/' + id)
.then(Response => {
service.post('video-data/api/selectVideoData')
.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)
var text = '预约'
// console.log(id)
if (data[i].isBooked === 1) {
text = '已预约'
document.getElementById(`reservation` + id).style.background = '#f56c6c'
} else {
document.getElementById(`reservation` + id).style.background = 'cyan'
}
document.getElementById(`reservation` + id).textContent = text
}
}
})
})
.catch(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 `${hours}:${minutes}`
}
}
}
</script>