course.vue 4.9 KB
<template>
	<view class="content">

		<view class="nodatabox" v-if="courselist.length!=0&&time==true">
			<view class="noimg">
				<image src="../../static/nodata.png" mode=""></image>
			</view>
			<view class="zanwushu">暂无内容</view>
			<view class="gocourse" @click="goindex">快前往首页解锁课程添加内容吧</view>
		</view>

		<view class="courselist" v-else>
			<view class='courseitem' v-for="(item,index) in courselist" :key="index" @click=toCourseIntro(item)>
				<view class="itemtopname flexone">
					<text class="itemtitle">{{item.title}}</text>
					
				</view>
				<view class="textcontent flexone">
					<view class="textcontentk textcontentleft flexone">
						总课时 <text class='kejie'>{{item.customs_num}}</text> 课

					</view>
					<view class="textcontentk textcontentleft youtext flexone">
						已完成 <text class='kejie'>{{item.customs_user_num}}</text> 课

					</view>
					
					<view class="finishimg" v-if="item.state==3">
						<image src="../../static/finish.png" mode=""></image>
					</view>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	import app from "../../App.vue";
	export default {
		data() {
			return {
				courselist: [],
				page:1,
				pageNum:10,
				time:false
			}
		},
		methods: {
			sure() {
				uni.navigateTo({
					url: '../registerone/registerone'
				})
			},
			
			// 获取用户信息
			getuserinfo() {
				let that = this;
				var url = '/api/index/user_info';
				var params = {
			
			
				}
				app.post(url, params, "post").then((res) => {
					console.log(res);
					
			
			
				}).catch((err) => {
					console.log(err)
					if (err.msg == '您已被拉黑') {
						wx.showToast({
							title: err.msg,
							icon: "none"
						})
			
						setTimeout(function() {
							wx.navigateTo({
								url: '/pages/start/start'
							})
						}, 1500)
					} else if (err.msg == '用户未登录') {
			
						wx.showToast({
							title: '请重新登录',
							icon: 'none'
						})
						wx.setStorageSync("token", "")
						setTimeout(function(){
						 uni.navigateTo({
						  url:'/pages/start/start'
						 })
						},1500)
					}
			
			
				})
			},
			
				
			// 获取课程列表
			getcourselist(){
				let that=this;
				let url = "/api/course/course_list";
				
				
				let param = {
					page: that.page,
					pageNum: 10
				};
				
				app.post(url, param, 'get').then(r => {
					console.log('课程列表',r)
					that.courselist=that.courselist.concat(r)
				
				}).catch(err => {
					console.log(err)
				
				})
			},
			
			// 课程介绍
			toCourseIntro(item){
				
				// var item=JSON.stringify(item)
				// console.log(item)
				// wx.setStorageSync("item",JSON.stringify(item))
				// wx.setStorageSync("item", item)
				let token=uni.getStorageSync("token")
				if(token==''){
					uni.showToast({
						title:'请先登录',
						icon:'none'
					})
					setTimeout(function(){
						uni.navigateTo({
							url:"/pages/start/start"
						})
					},1500)
					
				}else{
					uni.navigateTo({
						url:"/pages/course/courseIntro?id="+item.id
					})
				}
				
				
			},
					
			
			// 前往首页
			goindex(){
				uni.switchTab({
					url:'/pages/index/index'
				})
			},
			
		},
		
			

		onLaunch: function() {
			console.log('App Launch,app启动')
		},
		onShow: function() {
			this.page=1;
			this.courselist=[];
			console.log('App Show,app展现在前台')
			this.getcourselist();
			this.getuserinfo();
			setTimeout(function(){
				this.time=true
			},1000)
		},
		onHide: function() {
			console.log('App Hide,app不再展现在前台')
		},
		onLoad() {
			
			
		},
		
		
		onReachBottom() {
			var newpage = this.page;
			newpage++;
			this.page = newpage
			this.getcourselist()
		},
	}
</script>

<style>
	image {
		width: 100%;
		height: 100%;

	}

	page {
		background: #FCFBFE;
	}
	.youtext{
		margin-left:56rpx;
	}
	
	.content {
		padding: 32rpx;
		box-sizing: border-box;
	}

	.itemtopname {
		color: #3D444D;
		font-size: 28rpx;
	}

	.textcontent {
		margin-top: 40rpx;
	}

	.textcontentk {
		color: #8C9198;
		font-size: 24rpx;
	}

	.kejie {
		color: #EE8B27;
		font-size: 32rpx;
		margin: 0 8rpx;
	}

	.itemname {
		color: #3D444D;
		font-size: 28rpx;
	}

	.itemtext {
		margin-left: 20rpx;
	}

	.courseitem {
		width: 686rpx;

		background: rgba(255, 255, 255, 1);
		box-shadow: 0rpx 0rpx 6rpx rgba(0, 0, 0, 0.04);
		opacity: 1;
		border-radius: 8rpx;
		padding: 44rpx 30rpx;
		box-sizing: border-box;
		margin: 0 auto 24rpx;
		background: #fff;
		position: relative;
	}
	.finishimg{
		width:171rpx;
		height:171rpx;
		font-size: 0;
		position: absolute;
		right:0;
		top:0;
	}

	.zanwushu {
		color: #8C9198;
		font-size: 28rpx;
		margin-top: 86rpx;
		text-align: center;
	}

	.gocourse {
		color: #06121E;
		font-size: 32rpx;
		margin-top: 32rpx;
		text-align: center;
	}

	.noimg {
		width: 528rpx;
		height: 441rpx;
		font-size: 0;
		margin: 168rpx auto 0;

	}
</style>