<template>
	<view class="app-container">
		<view class="login-content">
			<view class="login-font">
				<image style="width: 364rpx;height: 200rpx;" src="/static/login/proxy-user-copy.png" alt="" />
			</view>
			<view class="login-main">
				<view class="login-item">
					<input type="tel" class="log-phone" placeholder="请输入手机号" v-model="phone" />
				</view>
				<view class="login-item">
					<input type="number" class="log-phone log-code" placeholder="请输入验证码" v-model="sms_code" />
					<view class="getCode" @click="getCode" v-if="countdown==0">
						获取验证码
					</view>
					<view class="getCode" v-else>
						剩余{{countdown}}秒
					</view>
				</view>
				<view class="login-btn">
					<button size="default" type="default" @click="btnLogin"
						style="color:#ffffff;backgroundColor:#1783FF;borderColor:#1783FF;border-radius: 50rpx;height: 88rpx;line-height: 88rpx;">登录</button>
				</view>
				<view class="login-sign">
					<u-checkbox-group @change="handleCheck">
						<u-checkbox labelSize="13" size="20" shape="circle" name="agree" label="我同意"></u-checkbox>
					</u-checkbox-group>
					<view class="log-link" @click="handlerApply">
						《排队支付代理用户服务协议》
					</view>
					<view class="log-link" @click="handlerProtect">
						《隐私保护协议》
					</view>
				</view>
			</view>
		</view>
		<u-modal :show="show" @confirm="confirm" :title="title" :content='content'></u-modal>
	</view>
</template>

<script>
	import {
		publicSendSms,
		agentSmsLogin,
		agentAccountInfo
	} from '../../common/api.js'
	import md5 from 'js-md5'

	export default {
		data() {
			return {
				phone: '',
				sms_code: '',
				bgColor: '#bgColor',
				checked: false,
				show: false,
				title: '',
				content: '',
				countdown: 0
			};
		},
		onLoad() {
			// 如果已登录就跳转到代理主页
			agentAccountInfo({}, false).then(data => {
				uni.navigateTo({
					url: '/pages/agent-index/index'
				});
			})
		},
		methods: {
			getCode() {
				if (!this.phone) {
					uni.$u.toast('请填写手机号')
					return
				}

				if (!this.checked) {
					uni.$u.toast('需同意协议')
					return
				}

				let phone = this.phone
				let nonce_str = md5(Math.random() + '');
				let sign = md5(md5(phone) + md5(nonce_str) + nonce_str)
				publicSendSms({
					phone,
					nonce_str,
					sign,
					type: 2
				}).then(() => {
					uni.$u.toast('短信已发送')
					this.startCountdown()
				})
			},
			startCountdown() {
				this.countdown = 60;
				let h = setInterval(() => {
					this.countdown--
					if (this.countdown == 0) {
						clearInterval(h)
					}
				}, 1000)
			},
			handleCheck(detail) {
				console.log(detail)
				if (detail.indexOf('agree') != -1) {
					this.checked = true
				} else {
					this.checked = false
				}
			},
			handlerApply() {
				this.show = true;
				this.title = '排队支付代理用户服务协议';
				this.content = '排队支付代理用户服务协议';
			},
			handlerProtect() {
				this.show = true;
				this.title = '隐私保护协议';
				this.content = '隐私保护协议';
			},
			confirm() {
				this.show = false;
			},
			btnLogin() {
				if (!this.checked) {
					uni.$u.toast('需同意协议')
					return
				}

				agentSmsLogin({
					phone: this.phone,
					sms_code: this.sms_code
				}).then(data => {
					uni.setStorageSync('agent_token', data.token)
					uni.navigateTo({
						url: '/pages/agent-index/index'
					});
				})
			}
		}
	}
</script>

<style lang="scss">
	.login-content {
		width: 100%;
		height: 1500rpx;
		padding-left: 30rpx;
		padding-right: 30rpx;
		background: url(../../static/login/login-bg.png) no-repeat center center;
		background-size: cover;
		box-sizing: border-box;

		.login-font {
			width: 364rpx;
			height: 200rpx;
			padding-top: 80rpx;
		}

		.login-main {
			margin-top: 120rpx;

			.login-item {
				position: relative;
				margin-top: 40rpx;

				.log-phone {
					width: 100%;
					height: 88rpx;
					line-height: 88rpx;
					padding-left: 50rpx;
					border-radius: 44rpx;
					border: none;
					box-sizing: border-box;
					background-color: #fff;
					font-size: 16px;
					color: #454545;
				}

				.getCode {
					position: absolute;
					right: 50rpx;
					top: 30rpx;
					font-size: 12px;
					color: #454545;
					cursor: pointer;
				}
			}

			.login-btn {
				margin-top: 80rpx;
			}

			.login-sign {
				display: flex;
				justify-content: flex-start;
				margin-top: 30rpx;
				padding-left: 20rpx;

				.u-radio-group {
					flex-grow: 0;
					margin-right: 60rpx;
				}

				.log-link {
					height: 40rpx;
					line-height: 40rpx;
					font-size: 12px;
				}
			}
		}
	}
</style>