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
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>
|