<template>
    <view class="content">
		<view class="campus-header">
			<view class="logo">
				<image src="/static/img/campusLogin_logo.png" mode="aspectFill"></image>
				<view class="title">身份验证</view>
			</view>
			<image class="cover" src="/static/img/campus_nologo.png" mode="aspectFill"></image>
		</view>
        <view class="campus-cont">
            <form @submit="forgetlogin">
				<view class="campus-inputs">
				    <input class="campus-form-input" type="number" placeholder="请输入手机号" @input="getNameValue" name="mobile"></input>
				</view>
				<view class="campus-inputs inputs-code">
					<input class="campus-form-input" type="number" placeholder="请输入验证码" @input="getCodeValue" maxlength="4"></input>
					<button class="campus-form-code" @tap="getCode" :disabled="disabled" hover-class="none">{{ codename }}</button>
				</view>
				<button class="campus-form-btn" form-type="submit">设置新密码</button>
            </form>
        </view>
    </view>
</template>

<script>
    import { send, auth } from '@/apis/interfaces/auth'
    export default {
        data() {
            return {
                codename     : '获取验证码',
                mobileNo     : '',   // 手机号
                code         : '',   // 验证码
                disabled     : false,
            }
        },
		
        methods: {
			// 切换登录方式
			onCutLogin(){
				this.passwordLogin = !this.passwordLogin
			},
            // mobileNo
            getNameValue(e) {
                this.mobileNo = e.detail.value
            },
            
            // 获取code
            getCode(){
                let mobileNo = this.mobileNo,
                    myreg    = /^(14[0-9]|13[0-9]|15[0-9]|17[0-9]|18[0-9]||16[0-9])\d{8}$$/
        
                var _this    = this
                if  (mobileNo == "") {
                    uni.showToast({
                        title     : '手机号不能为空',
                        icon      : 'none',
                        duration  : 1000
                    })
                    return false;
                }else if (!myreg.test(mobileNo)) {
                    uni.showToast({
                        title     : '请输入正确的手机号',
                        icon      : 'none',
                        duration  : 1000
                    })
                    return false;
                }else{
                    send({mobile: mobileNo, channel: 'LOGIN'}).then(res=>{
                        uni.showToast({
                            title   : '发送成功',
                            icon    : 'success',
                            duration: 2000
                        })
                        var num = 61;
                        var timer = setInterval(function () {
                            num--;
                            if (num <= 0) {
                                clearInterval(timer);
                                _this.codename  = '重新发送'
                                _this.disabled  = false
                    
                            } else {
                                _this.codename  = num + "s后重新获取"
                                _this.disabled  = true
                            }
                        }, 1000)
                    }).catch(err=>{})
                }
            },
            
            // 获取后输入code
            getCodeValue (e) {
                this.code = e.detail.value
            },
            
            // 立即登录
            forgetlogin(e){
                let mobileNo = e.detail.value.mobile || '',
                    code     = this.code || ''
					
				auth({
					mobile: mobileNo,
					code: code,
					type: 'reset_password'
				}).then(res => {
					this.$store.commit('setToken', res.token)
					uni.redirectTo({
						url: '/pages/campus/setPassword'
					})
				}).catch(err =>{
					uni.showToast({
						title: err.message,
						icon : 'none'
					})
				})
            }
        }
    }
</script>

<style lang="scss">
	.content{
		min-height: 100vh;
		background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb);
	}
	.campus-cont{
		padding: 40rpx 60rpx;
		.campus-inputs{
			position: relative;
			padding-left: 30rpx;
			padding-right: 30rpx;
			background-image: linear-gradient(to right, #575a85, #252f4b);
			height: 90rpx;
			line-height: 90rpx;
			border-radius: 45rpx;
			margin-bottom: 30rpx;
			&.inputs-code{
				padding-right: 280rpx;
				.campus-form-code{
					width: 260rpx;
					position: absolute;
					top: 0;
					right: 0;
					padding: 0;
					margin: 0;
					background-color: transparent;
					font-size: 30rpx;
					height: 90rpx;
					line-height: 90rpx;
					color: white;
					&::after{
						border: none;
					}
					&[disabled]{
						color: rgba($color: white, $alpha: .5);
					}
				}
			}
		}
		.campus-form-icon{
			position: absolute;
			left: 26rpx;
			top: 26rpx;
			width: 38rpx;
			height: 38rpx;
		}
		.campus-form-input{
			height: 90rpx;
			color: white;
			font-size: 32rpx;
		}
		
		.resPassword{
			text-align: right;
			font-size: 28rpx;
		}
		
		.campus-form-btn{
			margin-top: 100rpx;
			width: 100%;
			height: 90rpx;
			line-height: 90rpx;
			padding: 0;
			border-radius: 45rpx;
			background-image: linear-gradient(to right, #575a85, #252f4b);
			font-size: 32rpx;
			color: white;
		}
		.login-box{
			display: flex;
			justify-content: space-between;
			font-size: 30rpx;
			margin-top: 100rpx;
			view{
				color: #28314e;
			}
		}
	}
	.campus-header{
		width: 100%;
		padding-top: 70%;
		position: relative;
		.cover{
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			z-index: 1;
		}
		.logo{
			position: absolute;
			bottom: 80rpx;
			width: 100%;
			z-index: 2;
			text-align: center;
			image{
				margin-top: 20%;
				width: 160rpx;
				height: 160rpx;
				vertical-align: top;
				margin-bottom: 30rpx;
			}
			.title{
				font-weight: bold;
				color: white;
				font-size: 40rpx;
			}
		}
	}
</style>
