<template>
	<view class="container">

		<view class="wifi-data">
			<view class="wifi-icon">
				<u-icon color="#ffffff" name="wifi" size="30"></u-icon>
			</view>
			<view class="wifi-datas" color="#2979ff">
				<view class="wifi-name">{{wifiForm.wifiName}}</view>
				<view class="wifi-hot">
					<text class="hot-text">快速连接</text>
					<text class="hot-icon">.</text>
					<text class="hot-text">无需密码</text>
					<text class="hot-icon">.</text>
					<text class="hot-text">保护隐私</text>
				</view>
			</view>
		</view>

		<view class="wifi-success" v-if="!showBtn">
			WI-FI连接成功
		</view>

		<u-button type="primary" text="一键连接WI-FI" @click="handleLinkwifi()" v-if="showBtn"></u-button>
		<u-popup :show="show" mode="bottom">
			<view class="video-container">
				<view class="video-btns" :style="{paddingTop:statusBarHeight+'rpx'}">
					<view class="second" v-show="countdown > 0">{{countdown}} 后连接WI-FI</view>
					<view class="second" v-show="countdown == 0">已获得奖励</view>
					<view class="close" @click="handleClose()">关闭</view>
				</view>
				<video id="video-box" v-if="show" :src="baseUrl + posterForm.videoPath" :autoplay="true"
					:controls="false" @timeupdate="changeTimeupdate" @play="play"></video>
			</view>
		</u-popup>
	</view>
</template>

<script>
	import {
		getShanghu,
		getPoster,
		addNetHistory,
		addPosterHistory,
		getNet
	} from '@/api/index.js'
	export default {
		data() {
			return {
				baseUrl: getApp().globalData.config.baseUrl,
				showBtn: true,
				show: false,
				urlPath: '',
				statusBarHeight: 0,
				countdown: 0,
				videoCurrentTime: 0, //视频播放时间
				time: null,
				wifiForm: {},
				posterForm: {},
				platform: null,
			}
		},
		onLoad(option) {
			// #ifdef MP-WEIXIN
			let sys = uni.$u.sys()
			this.statusBarHeight = sys.statusBarHeight + 44
			// #endif
			if (option.posterId) {
				this.getNetinfo(option.posterId)
			} else {
				uni.showToast({
					title: '获取网络信息失败！',
					icon: 'error'
				})
			}

			// this.getNetinfo(11)
		},
		methods: {
			//根据微信扫小程序码进入首页拿到网络id查询网络详情
			getNetinfo(netId) {
				getNet(netId).then(response => {
					this.wifiForm = response.data
				})
			},

			//一键连接(提示用户连接WIFI需要看广告)
			handleLinkwifi() {
				let that = this
				uni.showModal({
					title: '温馨提示',
					content: '连接WIFI需要观看一段视频广告，是否确认？',
					success: (res) => {
						if (res.confirm) {
							// 根据当前网络的商户Id查询商户信息，然后根据商户信息中的广告id查到商户的广告
							getShanghu(that.wifiForm.shanghuId).then(shanghu => {
								getPoster(shanghu.data.posterId).then(poster => {
									that.posterForm = poster.data
									that.countdown = that.posterForm.duration
									that.show = true
								})
							})
						}
					}
				})
			},
			//记录历史广告
			setPosterHistory() {
				let data = {
					posterId: this.posterForm.id,
					posterName: this.posterForm.posterName,
					startTime: this.posterForm.startTime,
					endTime: this.posterForm.endTime,
					videoPath: this.posterForm.videoPath,
					shanghuId: this.wifiForm.shanghuId
				}
				addPosterHistory(data)
			},
			// 开始播放
			play() {
				this.enableTimer() //启用计时器
				this.setPosterHistory()
			},
			//计时器
			enableTimer() {
				this.time = setInterval(() => {
					if (this.countdown > 0) {
						this.countdown--
					} else {
						clearInterval(this.time)
						this.handleClose()
					}
				}, 1000)
			},
			//视频播放进度
			changeTimeupdate(e) {
				this.videoCurrentTime = e.detail.currentTime

			},
			//关闭弹窗
			handleClose() {
				this.show = false
				console.log(Math.ceil(this.videoCurrentTime), this.posterForm.duration, Math.ceil(this.videoCurrentTime) >=
					this
					.posterForm.duration)
				if (Math.ceil(this.videoCurrentTime) >= this.posterForm.duration) {
					//证明已经看过视频时间
					this.handleWifi()
				} else {
					uni.showToast({
						title: '连接WI-FI失败!',
						icon: 'error'
					})
					this.countdown = this.posterForm.duration
					this.videoCurrentTime = 0
				}
				clearInterval(this.time)
			},

			//判断当前机器是否支持连接WIFI
			handleWifi() {
				uni.showLoading({
					title: '连接中'
				})
				let that = this
				uni.getSystemInfo({
					success: function(res) {
						var system = '';
						that.platform = res.platform
						if (res.platform == 'android') system = parseInt(res.system.substr(8));
						if (res.platform == 'ios') system = parseInt(res.system.substr(4));
						if (res.platform == 'android' && system < 6 || res.platform == 'ios' && system <
							11.2) {
							uni.showToast({
								title: '手机版本不支持',
								icon: 'error',
							})
							return
						}
						that.startWifi();
					}
				})
			},
			//初始化 Wi-Fi 模块
			startWifi() {
				var that = this
				uni.startWifi({
					success: function() {
						//请求成功连接Wifi
						that.Connected();
					},
					fail: function(res) {
						uni.showToast({
							title: '初始化WIFI失败！',
							icon: 'error'
						})
					}
				})
			},
			linkWifi() {
				addNetHistory({
					netId: this.wifiForm.id,
					netName: this.wifiForm.netName,
					wifiName: this.wifiForm.wifiName,
					wifiPass: this.wifiForm.wifiPass,
					shanghuId: this.wifiForm.shanghuId
				})
				uni.showToast({
					title: '连接成功',
					icon: 'success'
				})
				this.showBtn = false
			},

			Connected() {
				var that = this
				uni.connectWifi({
					SSID: this.wifiForm.wifiName, //wifi名
					password: this.wifiForm.wifiPass, //wifi密码
					success: function(res) {
						if (that.platform == 'ios') {
							uni.getConnectedWifi({
								partialInfo: true,
								success: function(reult) {
									console.log('成功', reult, that.wifiForm.wifiName)
									if (reult.wifi.SSID == that.wifiForm.wifiName) {
										that.linkWifi()
									} else {
										uni.showToast({
											title: '连接失败！',
											icon: "error"
										})
									}
								},
								fail: function(error) {
									uni.showToast({
										title: '连接失败！',
										icon: "error"
									})
									console.log('失败', error)
								}
							})

						} else {
							that.linkWifi()
						}

					},
					fail: function(err) {
						uni.showToast({
							title: '连接失败',
							icon: 'error'
						})
					},

				})
			},
		}
	}
</script>

<style lang="scss">
	page {
		height: 100%;
	}

	.container {
		height: 100%;
		background-color: #F6F7F8;
		box-sizing: border-box;
		padding: 25rpx;

	}

	.wifi-data {
		border-radius: 16rpx;
		background-color: #ffffff;
		box-sizing: border-box;
		padding: 20rpx;
		display: flex;
		align-items: center;
		margin-bottom: 20rpx;

		.wifi-icon {
			height: 100rpx;
			width: 100rpx;
			border-radius: 50%;
			background: $u-primary;
			display: flex;
			align-items: center;
			justify-content: center;
		}

		.wifi-datas {
			box-sizing: border-box;
			padding-left: 20rpx;

			.wifi-name {
				font-size: 28rpx;
				font-weight: bold;
				color: #333;
				margin-bottom: 6px;
			}

			.wifi-hot {
				color: #9DA2AB;

				.hot-text {
					font-size: 24rpx;

				}

				.hot-icon {
					margin: 0 10rpx;
				}
			}
		}
	}

	.wifi-success {
		border-radius: 16rpx;
		background-color: #ffffff;
		box-sizing: border-box;
		padding: 40rpx 20rpx;
		color: #32B78B;
		font-size: 28rpx;
		text-align: center;
	}

	.video-container {
		width: 100%;
		position: relative;

		#video-box {
			height: 100vh;
			width: 100%;
		}

		.video-btns {
			position: absolute;
			left: 0;
			top: 0;
			z-index: 100;
			width: 100%;
			display: flex;
			align-items: center;
			justify-content: space-between;
			box-sizing: border-box;
			padding: 0 20rpx;

			&>view {
				border: 1px solid #ccc;
				color: white;
				font-size: 24rpx;
				border-radius: 25rpx;
				box-sizing: border-box;
				padding: 8rpx 20rpx;
			}
		}
	}
</style>