<template>
	<view>
		<!-- 公共组件-每个页面必须引入 -->
		<public-module></public-module>
		<z-nav-bar title="班级列表">
		</z-nav-bar>
		
		<view class="containerBg">			
			<view class="learnBox box">				
				<view class="newBox">
					<view class="item flexbox" v-for="(item, index) in classList" :key="index" @click="onPageJump('/pages/miniClass/classInfo',item.id)">
						<!-- <view class="imgcontainer" :style="{backgroundImage:surl(item.image)}"> -->
						<view class="imgcontainer" v-if="item.icon != ''" >
							<image :src="item.icon" mode="aspectFit"></image>
						</view>
						<view class="imgcontainer defaultImg" v-else >
							<image src="@/static/my_04.png" mode="aspectFit"></image>
						</view>
						<view class="buyItems">
							<view class="">								
								<!-- <text v-show="item.classModel.type == 0">【普通班】</text>
								<text v-show="item.classModel.type == 1">【联合班】</text>
								<text v-show="item.classModel.type == 2">【精英班】</text> -->
								<text class="txt555" >
									{{item.title}}
								</text>
							</view>							
							<view class="jianjie">
								目标学员人数：{{item.number}} 人
							</view>
							<!-- <view class="jianjie" v-html="item.content">
							</view> -->							
							<view class="btn_box" >
								<text  v-show="item.state == '0'" @click.stop="addClass(item.id)">一键加入</text>  
								<!-- <text class="seeInfo" @click="onPageJump('/pages/miniClass/classInfo',item.id)">查看班内情况</text> -->
							</view>
						</view>						
					</view>
				</view>
				
			</view>
			<view>
				<!-- <u-back-top scroll-top="100"></u-back-top> -->
				<u-back-top :scroll-top="scrollTop" bottom="150" :customStyle='bgiStyle'
					:iconStyle="iconStyle"></u-back-top>
			</view>			
			<z-navigation></z-navigation>			
			<!-- <music-play :playData="playData"></music-play> -->
		</view>
	</view>
</template>

<script>
	import musicPlay from '@/components/music.vue'
	import $http from '@/config/requestConfig.js';
	var clear;
	import {
		mapState
	} from 'vuex';
	export default {
		data() {
			return {
				playData: {},
				addType:undefined,  // 小班类型
				range:[
					{ value: '0', text: "普通小班",name:"普通小班"},
					{ value: '1', text: "联合班" ,name:"普通小班"},
					{ value: '2', text: "精英班" ,name:"普通小班"},
				],
				tagId: null,
				pid:null,
				fixed: false,
				pupShow:false,
				fatherTabId: null,
				subTabId: null, //
				bgiStyle: {
					background: '#fff'
				},
				iconStyle: {
					fontSize: '40rpx',
					fontWeight: 'bold',
					color: '#258feb',
				},
				scrollTop: 0,
				activeStyle: {
					color: '#000',
					fontWeight: 'bold',
					transform: 'scale(1.2)',
					// backgroundColor: '#258feb'

				},
				courseTitle:'',
				subList: [{title:'待开班',id:'0'},{title:'已开班',id:'1'},{title:'已结班',id:'2'}],
				scrollable: false,
				pageTitle: '',
				tabList: [
					{name:'普通小班', id:'0'},{name:'联合班', id:'1'},{name:'精英班',id:'2'}],
				curTagId: 0,
				classList: [],
				status: 3, // 0 不显示, 1 加载中，2 加载全部完成，3 暂无数据
				page: 1,
				flag: true, // 函数是否执行完
				courseId:undefined
			};
		},
		//第一次加载
		onLoad(e) {
			// 隐藏原生的tabbar
			uni.hideTabBar();
			this.courseTitle = e.courseTitle
			this.courseId = e.courseId
			// this.tagId = e.id			
			this.curTagId = this.range[0].value
			this.subTabId = this.subList[0].id
			this.pageTitle = e.title
			this.pid = e.pid
			console.log(e, '传入分类id')
			this.getData()
			// this.getCateList(this.tagId)
		},
		onPageScroll(e) {
			this.scrollTop = e.scrollTop;
			if (this.scrollTop >300) {
				this.fixed = true
			} else {
				this.fixed = false
			}
			// console.log(this.scrollTop,'this.scrollTop')
		},
		onPullDownRefresh() {
			console.log('下拉刷新')
			// this.status = 3
			// this.page = 1
			this.classList = []
			this.getData()
			uni.stopPullDownRefresh()
		},
		onReachBottom() {
			// if (this.status != 2 && this.flag) {
			// 	this.page++
			// 	this.getData(this.subTabId)
			// }
			console.log('触底加载', this.page)
		},
		computed: {
			...mapState(['userInfo'])
		},
		//页面显示
		onShow() {
			// 隐藏原生的tabbar
			// uni.hideTabBar();
			this.getData()
		},
		components: {
			musicPlay
		},
		//方法
		methods: {
			// 加入班级
			// 加入班级
			addClass(classId){
				$http.request({
						url: "common/class/joinClass",
						method: "POST", 
						data: {
							"classId": classId ,						
						},
						header: { //默认 无 说明：请求头
							'Content-Type': 'application/json'
						},
					})
					.then(res => {						
						if (res.code == 0) {							
							uni.showToast({
								title: `加入成功！`,
								icon: 'success'
							})
							setTimeout(()=>{
								uni.navigateTo({
									url:`/pages/miniClass/classInfo?id=${classId}`
								})
							},200)
						}else{
							uni.showToast({
								title: res.msg,
								icon: 'none'
							})
						}					
					}).catch(e => {					
						console.log(e, '数据报错')
						// this.status = 3
						uni.showToast({
							title: e.errMsg,
							icon: 'none'
						})
					});
			},
			selectChange(e){
				console.log("e:", e);
			},
			closePup(){
				this.pupShow = false
			},
			surl(imageurl) {
				return `url(${imageurl})`
			},				
			fatherClick(e) {
				console.log('点击', e)
				this.page = 1
				// var item = e
				this.curTagId = e.id
				this.subTabId = this.subList[0].id				
				this.getData(this.subTabId);
			},
			curseClick(item) {
				this.subTabId = item.id
				this.classList = []
				this.page = 1
				this.getData(this.subTabId);
			},
			getData(id) {				
				this.status = 1
				this.flag = false
				uni.showLoading({
					title:'正在加载'
				})
				$http.request({
						url: "common/class/getClassNoUser",
						method: "POST", // POST、GET、PUT、DELETE，具体说明查看官方文档						
						header: { //默认 无 说明：请求头
							'Content-Type': 'application/json'
						},
					})
					.then(res => {
						if (res.code == 0) {
							if (res.result.length > 0) {
								this.classList = res.result
							}else{
								this.classList = []
							} 							
							this.flag = true
						}
						uni.hideLoading()
					}).catch(e => {
						uni.hideLoading()
						this.flag = true
						console.log(e, '数据报错')
						// this.status = 3
						uni.showToast({
							title:`获取数据失败`,
							icon:'error'
						})
					});
			},
			// 跳转
			onPageJump(url,id,have) {
				// console.log('进来了',url,id);				
				uni.navigateTo({
					url: `${url}?id=${id}&have=${have}`
				});
			},
			
			shuomingPage(url,id,pid){
				uni.navigateTo({
					url: `${url}?id=${id}&pid=${pid}`
				});
			}
		},
	};
</script>
<style lang="scss" scoped>
	@import '@/style/mixin.scss';
	/deep/.uni-select__selector{
			top:unset;
			bottom:calc(100% + 12px) ;
		}
		/deep/.uni-select{
			border: none;
		}
		/deep/.uni-select__input-text{
			font-size:14px;
			color:#7f7f7f //修改为你的字体颜色
		}
		/deep/.uni-select__input-placeholder{
			font-size:14px;
			color:#7f7f7f //修改为你的字体颜色
		}
		/deep/.uni-popper__arrow{
			top:unset;
			bottom: -6px;
			transform: rotate(180deg);
		}
		/deep/.uni-popper__arrow::after{
			top:0
		}	
	.box6{
		.btnBox{justify-content: center;}
	}
	.containerBg {
		// background-color: $containerColor;
		background-color: #f6f6f8;
		padding: 0 20rpx;

	}
	.curseSet{margin-right: 20rpx; font-size: 28rpx; display: flex; align-items: center;}
	.fixed {
		position: fixed; top: 100rpx; border-bottom: 1px solid #eee;
		z-index: 1; width: 100%; background-color: #fff;
	}

	.newBox {

		.item {
			margin-bottom: 20rpx;
			background-color: #fff;
			border-radius: 20rpx;
			@include ptop_bottm(10px);
			@include pleft_right(10px);

			@include mshadow(10px, 1) .imgcontainer {
				display: block;
				width: 110rpx;
				margin-right: 20rpx;
				// background-size: cover;
				// background-position: center;
				height: 200rpx;
				flex-grow: 1;
				// @include ptop_bottm(10px);
				overflow: hidden;

				// @include pleft_right(10px);
				image {
					width: 100%;
					height: 200rpx;
				}
			}
			.btn_box{ text-align: right;
				text{
					border-radius: 20rpx;
					padding: 3px 5px;  @include theme("btn_bg");
					font-size: 28rpx; color: #fff;
				}
				.seeInfo{background-color:#fff; background-image: none; border: 1px solid #666; color: #333; margin-left: 20rpx;}
			}
			.buyItems {
				width: 60%;
			}

			.jianjie {
				line-height: 30rpx; height: 60rpx; overflow: hidden; 
				overflow: hidden!important;
				margin-top: 10rpx;
				font-size: 24rpx;
				@include bov();
				color: #9c9c9c;
			}

			.txt555 {
				font-size: 30rpx;
				color: #000;
				@include bov()
			}
		}
	}

	.subCate {
		padding-top:10px;
		padding-bottom: 10px;
		display: flex;
		.item {		
			border: 1px solid #bfcad9;
			display: inline-block;
			text-align: center;
			font-size: 26rpx;
			background-color: #fff;
			border-radius: 4px; width: 100%;
			color: #333;
			margin-right: 16rpx;
			padding: 14rpx 30rpx;
		}

		.item:last-child() {
			margin-right: 0;
		}

		.item.active {
			border-color: $themeColor;
			background-color: $themeColor;
			color: #fff;
		}
	}

	.tabList {
		text-align: center;
	}

	.flexbox {
		display: flex;
	}

	.imgcontainer {
		background-color: $imgBg;
	}
	
	.box {
		// background-color: #fff;		
		min-height: calc(100vh - 270rpx);
	}

	.learnBox {
		// background-color: #fff;
		margin-top: 10px;

		.learn {
			flex-wrap: wrap;
			justify-content: space-between;
			margin-top: 20rpx;

			.item {
				width: 48%;
				margin-bottom: 16px;

				overflow: hidden;

				image {
					width: 100%;
					height: 200rpx;
				}

				.txt555 {
					display: block;
					text-align: center;
					height: 40rpx;
					width: 100%;
					line-height: 40rpx;
					@include bov(1);
					margin-top: 10rpx;
					font-size: 24rpx;

				}

			}
		}
	}
</style>