<template>
	<view class="register">
		<view class="register_head">
			<text>忘记密码</text>
			<text>请使用手机号更换密码</text>
		</view>
		<view class="register_ul">
			<view class="register_li flex">
				<view class="register_ipt">
					<input type="number" v-model="form.mobile" maxlength="11" placeholder="请输入手机号" placeholder-style="color:#999999" />
				</view>
			</view>
			<view class="register_li flex">
				<view class="register_ipt">
					<input type="number" v-model="form.captcha" maxlength="11" placeholder="请输入验证码" placeholder-style="color:#999999" />
				</view>
				<view class="code center" @click="getCode">{{ codeTxt }}</view>
			</view>
			<view class="register_li flex">
				<view class="register_ipt">
					<input type="password" v-model="form.newpassword" maxlength="12" placeholder="设置密码：（8-12位数字和字母）" placeholder-style="color:#999999" />
				</view>
			</view>
			<view class="register_li flex">
				<view class="register_ipt">
					<input type="password" v-model="passwordValid" maxlength="12" placeholder="请再次输入密码" placeholder-style="color:#999999" />
				</view>
			</view>
		</view>
		<button class="register_btn" hover-class="hover-view" @click="submit">提交修改</button>
	</view>
</template>

<script>
	import $DB from '../../http/debounce.js'
	export default {
		data() {
			return {
				form:{
					mobile: "",
					newpassword: null,
					captcha: null,
				},
				passwordValid: null,
				sending:true,
				second:60,
				disabled:false,
				flag:true,
				codeTxt:'获取验证码',
			};
		},
		methods:{
			submit(){
				if (!this.form.mobile.match(/^(0|86|17951)?1[3456789]\d{9}$/)) {
					uni.showToast({
						title: '请输入正确的手机号',
						icon:'none'
					});
					return
				}
				if (!this.form.captcha) return uni.showToast({title:'请输入验证码',icon:'none'})
				if (this.form.newpassword != this.passwordValid) return uni.showToast({title:'两次密码输入不一致',icon:'none'})
				if (!this.flag) return
				this.flag = false
				this.$api.resetpwd({...this.form, msg:'提交中'}).then(res => {
					if (res.code === 1) {
						uni.showToast({
							title: '找回密码成功!',
							icon:'none',
							success: function(){
								uni.navigateTo({url:'/pages/login/login'})
							}
						})
					} else {
						this.flag = true
					}
				})
			},
			//获取验证码
			getCode:$DB(function(){
				if (!this.sending) return
				if (!this.form.mobile.match(/^(0|86|17951)?1[3456789]\d{9}$/)) {
					uni.showToast({
						title: '请输入正确的手机号',
						icon:'none'
					});
					return
				}
				this.$api.send({mobile:this.form.mobile, msg:'发送中', event:'resetpwd'}).then( res => {
					this.sending = false;
					this.disabled = true;
					if (res.code === 1) {
						this.timeDown();
					}
					uni.showToast({
						title: res.msg,
						icon:'none'
					});
				});
			}),
			timeDown(){
				let result = setInterval( ()=>{
					--this.second;
					this.codeTxt = this.second + 'S'
					if(this.second < 0) {
						clearInterval(result);
						this.sending = true;
						this.disabled = false;
						this.second = 60;
						this.codeTxt = '获取验证码'
					} 
				}, 1000);
			},
		}
	}
</script>
<style>
	page {
		background: #FFFFFF;
	}
</style>
<style lang="scss">
.register {
	min-height: 100vh;
	padding: 0 42rpx;
	position: relative;
	.register_head {
		display: flex;
		flex-direction: column;
		padding: 30rpx 0 40rpx 0;
		text {
			&:first-child {
				font-size: 40rpx;
				font-weight: bold;
			}
			&:last-child {
				color: #999999;
				font-size: 26rpx;
				margin-top: 20rpx;
			}
		}
	}
	.register_li {
		padding: 40rpx 0;
		border-bottom: 2rpx solid #DDDDDD;
		.register_ipt {
			flex: 1;
			input {
				width: 100%;
				font-size: 30rpx;
			}
		}
		.code {
			width: 150rpx;
			color: #4EABFC;
			font-size: 28rpx;
		}
	}
}
.register_btn {
	height: 80rpx;
	margin-top: 50rpx;
	background-image: linear-gradient(45deg, #89f7fe, #7c66ff);
	border-radius: 40rpx;
}
.register_consent {
	width: 100%;
	position: absolute;
	left: 50%;
	bottom: 70rpx;
	transform: translateX(-50%);
	image {
		width: 30rpx;
		height: 30rpx;
		flex-shrink: 0;
		margin-right: 10rpx;
	}
	.blue {
		color: #4EABFC;
	}
}
</style>
