<template>
	<view class="container">
		<u-form :model="forgetForm" ref="forgetForm" label-width="160"
			:label-style="{ color: '#000', fontSize: '30rpx'}">
			<u-form-item label="手机号" prop="shouJiHao" :border-bottom="false">
				<u-input height="80" placeholder="请输入手机号" border-color="#d0d0d0" v-model="forgetForm.shouJiHao"
					:border="true" class="form-item-input" type="number" />
			</u-form-item>
			<u-form-item label="验证码" prop="yanZhengMa" :border-bottom="false">
				<view class="code-form-item">
					<u-input height="80" placeholder="请输入验证码" border-color="#d0d0d0" v-model="forgetForm.yanZhengMa"
						:border="true" class="form-item-input code-input">
					</u-input>
					<u-button size="mini" type="primary" class="code-button" @click="getCode">{{ tips }}</u-button>
				</view>
			</u-form-item>
			<u-form-item label="新密码" prop="xinMiMa" :border-bottom="false">
				<u-input height="80" placeholder="请输入新密码" border-color="#d0d0d0" v-model="forgetForm.xinMiMa"
					:border="true" class="form-item-input" type="password" />
			</u-form-item>
			<view class="form-button" @click="submit">
				确认
			</view>
		</u-form>
		<u-verification-code :seconds="seconds" ref="uCode1" @change="codeChange"></u-verification-code>
		<u-popup v-model="show" mode="center" border-radius="10">
			<view class="popup">
				<text class="popup-title">请输入验证码</text>
				<view class="popup-content">
					<u-input height="80" placeholder="请输入验证码" border-color="#d0d0d0"
						v-model="shuzijiaoduimaForm.shuZiJiaoDuiMa" :border="true" class="form-item-input"
						style="flex-grow: 1;" @confirm="submitCode" />
					<image :src="shuzijiaoduimaSrc" mode="aspectFit"
						style="height:40px;margin-left:20rpx;width: 180rpx;flex: 0 0 auto;"></image>
				</view>
				<view class="popup-btn">
					<u-button type="primary" @click="submitCode" style="width: 48%;flex: 0 0 auto;">提交</u-button>
					<u-button type="default" @click="closePopup" style="width: 48%;flex: 0 0 auto;">取消</u-button>
				</view>
			</view>
		</u-popup>
	</view>
</template>

<script>
	import {
		msg
	} from "@/utils/common.js"
	export default {
		data() {
			return {
				// ----验证码 start -----
				shuzijiaoduimaForm: {
					shuZiJiaoDuiMa: '',
					shuZiJiaoDuiMaUuid: ''
				},
				shuzijiaoduimaSrc: 'https://imgconvert.csdnimg.cn/aHR0cDovL3RjLnhpYW55dWNvZGVyLmNuL2Jsb2cyMDIwMDEwNDIwMzUwNy5wbmc?x-oss-process=image/format,png',
				show: false,
				tips: '',
				seconds: 60,
				// ----验证码 end -----
				forgetForm: {
					shouJiHao: '', //手机号
					yanZhengMa: "", //验证码
					yanZhengMaUuid: "",
					xinMiMa: '', // 新密码
				},
				rules: {
					yanZhengMa: [{
						required: true,
						message: '请输入验证码',
						trigger: ['blur']
					}],
					xinMiMa: [{
						required: true,
						message: '请输入新密码',
						trigger: ['blur']
					}],
					shouJiHao: [{
						required: true,
						message: '请输入手机号码',
						trigger: ['blur']
					}, {
						pattern: /^1[3-9]\d{9}$/,
						message: '请输入正确的手机号',
						trigger: ['blur']
					}]
				}
			};
		},
		methods: {
			submit() {
				const that = this;
				that.$refs.forgetForm.validate((valid) => {
					console.log(valid, that.forgetForm, 456);
					if (valid) {
						msg("数据验证成功")
						// 联调
					}
				})
			},
			back() {
				uni.navigateBack({
					delta: 1,
					animationType: 'pop-out',
					animationDuration: 200
				})
			},
			// --------验证码 start---------
			codeChange(text) {
				this.tips = text;
			},
			getCode() {
				let { shouJiHao } = this.forgetForm
				if(!/^1[3-9]\d{9}$/.test(shouJiHao)){
					msg("请输入正确的手机号");
					return;
				}
				if (this.$refs.uCode1.canGetCode) {
					this.showPopup()
				} else {
					msg('倒计时结束后再发送');
				}
			},
			end() {
				msg('倒计时结束');
			},
			start() {
				msg('倒计时开始');
			},
			showPopup() {
				// 模拟向后端请求验证码
				// 1.获取数字校验码图片
				// 2.显示弹窗
				uni.showLoading({
					title: '正在获取图片'
				})
				setTimeout(() => {
					uni.hideLoading();
					msg('获取成功')
					this.show = true;
				}, 1500);
				// 联调
				// this.loadImage()
				// this.show = true;
			},
			closePopup() {
				this.show = false;
				this.shuzijiaoduimaForm.shuZiJiaoDuiMa = ''; // 清空输入框
			},
			async submitCode() {
				let { shuZiJiaoDuiMa } = this.shuzijiaoduimaForm
				if (!/^\d{4}$/.test(shuZiJiaoDuiMa)) {
					uni.showToast({
						title: '请输入4位验证码',
						icon: 'none'
					});
					return;
				}
				// 联调 检验是否正确
				// const checkRes = await checkShuzijiaoduima();
				// if(!checkRes){
				// 	uni.showToast({
				// 		title: '验证码输入错误',
				// 		icon: 'none'
				// 	});
				// 	return;
				// }
				// // 发送手机验证码
				// const codeRes = await getCodeApi();
				// if(codeRes && codeRes.yanZhengMaUuid){
				// 	this.forgetForm.yanZhengMaUuid = codeRes.yanZhengMaUuid
				// 	this.closePopup();
				// 	this.$refs.uCode1.start()
				// }

				uni.showLoading({
					title: '正在校验验证码'
				})
				setTimeout(() => {
					uni.hideLoading();
					msg('填写正确');
					this.closePopup();
					this.$refs.uCode1.start()
				}, 1500);
			},
			// 加载验证码图片
			async loadImage() {
				// 联调
				// const img = await loadShuzijiaoduima();
				// this.shuzijiaoduimaForm.shuZiJiaoDuiMaUuid = img.shuZiJiaoDuiMaUuid
				// this.shuzijiaoduimaSrc = img.shuzijiaoduimaSrc
				console.log("加载图片")
			}
			// --------验证码 end---------
		},
		onLoad() {},
		onReady() {
			this.$refs.forgetForm.setRules(this.rules);
		}
	}
</script>
<style lang="scss">
	.u-form-item {
		padding: 30rpx 0 !important;
	}

	.u-form-item .u-input--border {
		border-radius: 16rpx !important;
	}

	.u-form-item .u-form-item--left__content__label {
		display: block !important;
		text-align: justify;
		text-align-last: justify;
		padding: 0 20rpx 0 10rpx;
	}

	.u-input {
		background-color: #f7f7f7 !important;
	}
	.code-input .u-input{
		padding-right: 200rpx !important;
	}
	.code-button .u-size-mini{
		display: block !important;
	}
</style>
<style lang="scss" scoped>
	.container {
		height: 100vh;
		width: 100vw;
		background-color: #ffffff;
		padding: 0 40rpx;
	}

	.form-item-input {
		width: 100%;
	}

	.form-button {
		background: linear-gradient(90deg, #006af5, #21b0fc);
		border-radius: 20rpx;
		line-height: 80rpx;
		text-align: center;
		color: #fff;
		margin: 50rpx 0;
	}

	.form-tip {
		text-align: center;
		color: #000000;
	}
	.code-form-item{
		position: relative;
		.code-button{
			position: absolute;
			right: 15rpx;
			top: 50%;
			transform: translateY(-50%);
		}
	}

	// 数字验证码弹窗
	.popup {
		padding: 40rpx;
		border-radius: 20rpx;

		.popup-title {
			font-size: 18px;
			text-align: center;
			display: inline-block;
			width: 100%;
			// margin-bottom: 15px;
		}

		.popup-content {
			display: flex;
			align-items: center;
			margin: 50rpx 0;
		}

		.popup-btn {
			display: flex;
			justify-content: space-between;
		}
	}
</style>