<template>
	<view class="page">
		<view class="title">
			登录
		</view>
		<view class="tab">
			<view :class="[tab === 0 ?'active' :'', 'item']" @click="tab = 0">
				密码登录
			</view>
			<view :class="[tab === 1 ?'active' :'', 'item']" @click="tab = 1">
				验证码登录
			</view>
		</view>

		<view class="input-box">
			<input type="number" maxlength="11" class="input" v-model="phone" placeholder="请输入手机号码">
		</view>
		<view class="input-box" v-if='tab === 0'>
			<input type="password" v-model="password" class="input" placeholder="请输入登录密码">
		</view>
		<view class="input-box" v-if='tab === 1'>
			<input type="text" v-model="code" style="width: 400rpx;" class="input" placeholder="请输入验证码">
			<view class="vcode" @click="getVcode" v-if="countdown <= 0">
				获取验证码
			</view>
			<view class="vcode" v-else>
				{{countdown}}
			</view>
		</view>

		<view class="submit" @click="login">
			登录
		</view>

		<view class="b-btn">
			<navigator url="./updatePwd">
				<view class="l">
					忘记密码?
				</view>
			</navigator>
			<navigator url="./sigUp">
				<view class="r">
					快速注册
				</view>
			</navigator>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				tab: 0,
				password: '',
				phone: '',
				code: '',
				key: '',
				countdown:0
			}
		},
		methods: {
			login() {
				let tip = ''
				if (!this.phone) {
					tip = '请输入手机号码'
				} else if (!this.password && this.tab === 0) {
					tip = '请输入登录密码'
				} else if (!this.code && this.tab === 1) {
					tip = '请输入验证码'
				}
				if (tip) {
					uni.showToast({
						title: tip,
						icon: "none"
					})
					return
				}
				this.$post({
					data:{
						do:'AppLogin',
						data:{
							phone:this.phone,
							password:this.tab == 0?this.password:'',
							code:this.tab == 0?'':this.code
						}
					}
				}).then(res=>{
					console.log(res,'++++++++')
					for(let i in res.data){
						uni.setStorageSync(i,res.data[i])
					}
					uni.showToast({
						title:res.message,
						mask:true
					})
					
					this.$post({
						data: {
							do: 'Vip',
							data: {
								user_id: user_id,
								pw: '375'
							}
						}
					}).then(res => {
						
						if (res.data.is_vip == 1) {
							uni.setStorageSync('is_vip', 1);
						}
					})
					
					setTimeout(()=>{
						uni.reLaunch({
							url:'/pages/index/index'
						})
					},1500)
				})
				return
				
				let t = this

				if (this.tab === 0) {
					t.$req({
						url: "authorizations",
						method: "POST",
						data: {
							username: this.phone,
							password: this.pwd
						}
					}).then(res => {
						console.log(res);
						if (!!res.code) {
							if (res.code === 40001) {
								uni.navigateTo({
									url: '../../pages/login/login'
								})
							} else if (res.code === 40002) {
								uni.showToast({
									title: res.message,
									icon: "none",
									duration: 5000
								})
							}
						} else {

							console.log(res.access_token);
							uni.setStorageSync("token", res.access_token)
							uni.switchTab({
								url: '../../pages/index/index'
							})
						}
					})
				}else{
					t.$req({
						url: "authorizations/sms",
						method: "POST",
						data: {
							username:this.phone,
							verification_key:this.key,
							verification_code:this.vcode,
						}
					}).then(res => {
						console.log(res);
						if (!!res.code) {
							if (res.code === 40001) {
								uni.navigateTo({
									url: '../../pages/login/login'
								})
							} else if (res.code === 40002) {
								uni.showToast({
									title: res.message,
									icon: "none",
									duration: 5000
								})
							}
						} else {
							uni.setStorageSync("token", res.access_token)
							uni.switchTab({
								url: '../../pages/index/index',
								fail(e) {
									console.log(e)
								}
							})
						}
					})
				}
			},
			getVcode() {
				if (!this.phone) {
					uni.showToast({
						title: '请输入手机号',
						icon: "none",
					})
					return
				} 
				this.$post({
					data:{
						do:'GetPhoneCode',
						data:{
							phone:this.phone
						}
					}
				}).then(res=>{
					console.log(res,'++++++++')
					if(res.errno==2004){
						uni.showToast({
							title: '短信已发送',
							icon: "none",
							duration: 5000
						})
						this.key = res.key;
						if (this.countdown <= 0) {
							this.countdown = 60
							let timer = setInterval(() => {
								this.countdown--;
								if (this.countdown < 1) {
									clearInterval(timer);
									this.countdown = 0
								}
							}, 1000)
						}
					}
				})
			}
		}
	}
</script>

<style lang="less" scoped>
	.page {
		padding: 0 32rpx;
		width: 100vw;
		box-sizing: border-box;
	}

	.vcode {
		width: 180rpx;
		height: 70rpx;
		border-radius: 4rpx;
		border: 2rpx solid #57BD37;
		text-align: center;
		line-height: 70rpx;
		font-size: 32rpx;
		color: #57BD37;
		position: absolute;
		right: 0;
		bottom: 14rpx;
	}

	.title {
		width: 104rpx;
		height: 72rpx;
		font-size: 52rpx;
		font-family: PingFang SC-Bold, PingFang SC;
		font-weight: bold;
		color: #333333;
		padding-top: 20vh;
		margin-bottom: 104rpx;
	}

	.tab {
		display: flex;
		align-items: center;
		margin-bottom: 114rpx;

		.item {
			height: 50rpx;
			margin-right: 86rpx;
			font-size: 36rpx;
			font-family: PingFang SC-Medium, PingFang SC;
			font-weight: 500;
			color: #333333;

			&.active {
				color: #57BD37;
				position: relative;

				&:after {
					display: block;
					position: absolute;
					content: '';
					left: 50%;
					transform: translateX(-50%);
					width: 56rpx;
					height: 6rpx;
					background-color: #57BD37;
					bottom: -10rpx;
				}
			}
		}
	}

	.input-box {
		padding-bottom: 26rpx;
		border-bottom: 2rpx solid #E4E4E4;
		height: 42rpx;
		font-size: 30rpx;
		font-family: PingFang SC-Regular, PingFang SC;
		font-weight: 400;
		margin-bottom: 88rpx;
		width: 100%;
		position: relative;
	}

	.submit {
		width: 100%;
		height: 88rpx;
		background: linear-gradient(180deg, #6AD449 0%, #4EB32F 100%);
		border-radius: 40rpx;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 36rpx;
		font-family: PingFang SC-Medium, PingFang SC;
		font-weight: 500;
		color: #FFFFFF;
		margin-bottom: 40rpx;
		margin-top: 150rpx;
	}

	.b-btn {
		display: flex;
		width: 100%;
		justify-content: space-between;
		height: 44rpx;
		font-size: 32rpx;
		font-family: PingFang SC-Medium, PingFang SC;
		font-weight: 500;
		color: #666666;
		line-height: 44rpx;

		.r {
			color: #57BD37;
		}
	}
</style>