martial-arts/pagesB/course-video/course-video.vue

173 lines
5.7 KiB
Vue
Raw Normal View History

2023-02-21 06:20:06 +00:00
<template>
<view>
<status-container titlet="课程详情" returnc="#FFFFFF">
<view v-if="isLoading" slot="content" style="margin-top: -20rpx;">
<view class="bacf">
<view class="fon32 tcenter pad-s50">{{couresDetail.title}}</view>
<view class="pad30 posir disjcac">
<image :src="hostapi + couresDetail.cover" style="height: 388rpx;" mode="aspectFill" class="width100" lazy-load></image>
<image v-if="couresDetail.video.includes('.mp4')" @tap="playVideo" class="posia" src="/static/tabbar/icon-play.png" mode="" style="width: 70rpx;height: 70rpx;" lazy-load></image>
</view>
<view class="mar-zy30 bbot pad-x10">
<span class="fon28 bold posir pad-x10">
<text>课程介绍</text>
<view class="posia-xzy" style="height: 6rpx;background-color: #e42417;bottom: -2rpx;"></view>
</span>
</view>
<view class="mar-zy30 pad-sx20 bbot">
<view class="disjbac ae pad-x20" style="color: #262626;display: block;">
<view class="fon24">介绍{{couresDetail.summary}}</view>
<view class="fon20 pad-s20">{{couresDetail.create_time.slice(0,10).split('-').join('.')}}</view>
</view>
<view class="rich-text fon24" style="line-height: 1.8;">
<rich-text :nodes="couresDetail.content" style="color: #5a5a5a;"></rich-text>
</view>
</view>
</view>
<!-- <view class="pad-zy20">
<view class="disjb ae mar-s40">
<view class="fon32 bold colb">推荐课程</view>
<view class="fon20" style="color: #bbb4b3;" @tap="$toolAll.tools.goPage('/pages/tabbar/course/course')">+</view>
</view>
<list ref="refcourse" @goDetail="goDetail"></list>
</view> -->
<!-- 登录弹框 start -->
<view class="posAll disjc" v-if="ifLogin">
<view class="bacf radius10 posir disjcac fc pad-zy60" style="height: 256rpx;margin-top: 304rpx;">
<image src="/static/tabbar/icon-password.png" mode="" lazy-load style="width: 86rpx;height: 102rpx;"></image>
<view class="fon28 mar-s20">请登录后查看课程<span style="color:#e42417;" @tap="goLogin"></span></view>
<view class="posia-sy20" @tap="ifLogin=false"><i class="icon icon-del-white fon24" style="color: #9d9d9d;"></i></view>
</view>
</view>
<!-- 登录弹框 end -->
</view>
</status-container>
</view>
</template>
<script>
// 底部组件
import footTab from '@/components/foot-tabs/foot-tab.vue';
import list from '@/components/list.vue';
export default {
components:{'foot-tab' :footTab,list},
data() {
return {
richText:'', //
ifLogin:false, //是否登录
isLoading:false, //加载完成
couresRecommend:[], //课程推荐
couresDetail:'',//课程详情
classId:'', //分类id
course_video_id:'', //课程id
page:1, //页数
size:1000, //条数
duration:0,//观看时长
hostapi:'',// 域名
}
},
onLoad(op) {
if(op.id){
if(op.invite_code) {
// 设置为第一次进入
this.$store.commit('setFristIn',true);
uni.setStorageSync('invite_code',op.invite_code);
} else {
this.$store.commit('setFristIn',false);
}
this.hostapi = getApp().globalData.hostapi;
this.course_video_id = op.id;
// 获取课程详情
this.getCouresDetail(this.course_video_id);
}
},
onShareAppMessage(res) {
var shareObj = {
     title: ``, // 默认是小程序的名称(可以写slogan等)
     path: `/pagesB/course-detail/course-detail?id=${this.id}&category_id=${this.classId}&invite_code=${uni.getStorageSync('invite_code')}`, // 默认是当前页面,必须是以‘/’开头的完整路径
     imageUrl: ``//自定义图片路径可以是本地文件路径、代码包文件路径或者网络图片路径支持PNG及JPG不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
  };
  return shareObj;
},
onShow() {
uni.removeStorageSync('courseInfo');
uni.removeStorageSync('skuList');
},
methods: {
// 获取课程详情
getCouresDetail(course_video_id){
uni.showLoading({
title:'加载中'
});
this.$requst.get('/api/course/get-course-video-info',{course_video_id:course_video_id}).then(res=>{
console.log(res,'课程视频')
if(res.code == 0) {
this.couresDetail = res.data;
}
uni.hideLoading();
this.isLoading = true;
})
},
// 获取课程推荐
getCouresRecommend(){
let params = {
page:this.page,
size:this.size,
category_id:this.classId,
id:this.id
}
this.$requst.get('/api/spu/course-recommend',params).then(res=>{
if(res.code==0) {
this.$refs.refcourse.list = res.data.list;
}
})
},
// 去课程详情
goDetail(id){
uni.navigateTo({
url:`/pagesB/course-detail/course-detail?id=${id}&category_id=${this.classId}`
})
},
// 播放视频
playVideo(){
if(this.couresDetail.type=="video_number"){
// #ifdef MP-WEIXIN
wx.openChannelsActivity({
finderUserName:this.couresDetail.video_number,
feedId:this.couresDetail.video_id,
success:(res)=>{},fail:()=>{
// this.$toolAll.tools.showToast('视频已丢失或已删除')
}
})
// #endif
} else {
if(uni.getStorageSync('is_active')){
let newArr = [];
let videoSrc = this.hostapi + this.couresDetail.video;
newArr.push({
src:videoSrc,
course_video_id:this.course_video_id,
})
uni.setStorageSync('videoList',newArr);
uni.navigateTo({
url:`/pagesB/play-video/play-video?current=${0}`
})
} else {
this.ifLogin = true;
}
}
},
// 去登录
goLogin(){
uni.navigateTo({
url:`/pages/login/login`
})
}
}
}
</script>
<style></style>