<template>
	<view class="oderPage">
		<u-form :model="form" ref="myForm" :error-type="errorType">
			<view class="from">
			<!-- 	<u-form-item prop="phone">
					<view class="from_item" style="background-color: #f7f7f7">
						<text><text style="color: red"></text>手机号：</text>
						<u-input v-model="form.mobile" :disabled="true" class="input" />
					</view>
				</u-form-item>
				<u-form-item prop="code">
					<view class="from_item">
						<text><text style="color: red"></text>验证码：</text>
						<u-input v-model="form.code" placeholder="请输入验证码" class="input" />
						<view class="hint2">
							<view class="green">{{ codeDuration === 0 ? "" : codeDuration }}</view>
							<view class="grey" @click="getCode">{{
						    codeDuration === 0 ? "发送验证码" : "秒后可重发"
						  }}</view>
						</view>
					</view>
				</u-form-item> -->
			</view>
		</u-form>

		<button class="submit" @click="toPage()">下一步</button>
	</view>
</template>

<script setup lang="ts">
	import navBar from "./components/nav-bar.vue";
	import {
		checkStr
	} from "@/utils/utils";
	import {
		ref,
		reactive
	} from "vue";
	import {
		navTo
	} from "@/utils/utils";
	import {
		onReady,
		onLoad
	} from "@dcloudio/uni-app";
	import {
		request
	} from "@/utils/network/request.js";
	import {
		sendCode,
		checkCode,
		cckChangejzCard
	} from "@/utils/network/api.js";
	import {
		stringToJson
	} from "@/utils/network/encryption";
	import {
		msg
	} from "@/utils/utils";
	// 表单数据
	const form = reactive({
		equipmentState: "",
		mobile: "",
		code: '',
		type: undefined,
	});
	//入参
	const params = reactive({
		cardId: '',
		obuId: '',
		orderId: ''

	});
	// 验证规则
	const rules = {
		code: [{
			required: true,
			message: "请输入验证码",
			trigger: ["change", "blur"],
		}],
	};
	// 验证提示类型(toast要版本为1.3.5才支持)
	const errorType = ["toast"];


	// 设置验证规则
	const myForm = ref(null);
	//倒计时时常
	const codeDuration = ref(0);
	let interval = null;

	/* 验证码倒计时 */
	const codeInterval = () => {
		codeDuration.value = 60;
		interval = setInterval(() => {
			codeDuration.value--;
			if (codeDuration.value === 0) {
				if (interval) {
					clearInterval(interval);
					interval = null;
				}
			}
		}, 1000);
	};

	onReady(() => {
		myForm.value.setRules(rules);
	});

	onLoad((option) => {
		form.mobile = option.mobile
		params.cardId = option.cardId
		params.orderId = option.orderId
	});

	const getCode = () => {
		if (codeDuration.value !== 0) {
			return;
		}
		const options = {
			type: 2,
			data: {
				mobile: form.mobile
			},
			method: "POST",
			showLoading: true,
		};
		request(sendCode, options)
			.then((res) => {
				codeInterval();

				msg("验证码发送成功！");
			})
			.catch((err) => {
				console.log(err);
			});
	}


	//申请
	const queryCckChangejzCardAction = () => {
		var data = {
			orderId:params.orderId,
			
		};
		const options = {
			type: 2,
			data: data,
			method: "POST",
			showLoading: true,
		};

		return new Promise(async (resolve, reject) => {
			const res = await request(cckChangejzCard, options);
			const data = stringToJson(res.bizContent);
			resolve(data);
		}).catch((error) => {
			reject(error);
		});
	}

	//下一步
	const toPage = () => {
		// myForm.value.validate((valid) => {
		// 	if (valid) {
		// 		const options = {
		// 			type: 2,
		// 			data: {
		// 				mobile: form.mobile,
		// 				code: form.code
		// 			},
		// 			method: "POST",
		// 			showLoading: true,
		// 		};
		// 		request(checkCode, options)
		// 			.then(() => {
						queryCckChangejzCardAction().then(val => {
							navTo(
								`/subpackage/after-sale/to-bookkeeping-card/mailing_information?orderId=${params.orderId}&&applyId=${val.applyId}`
								)
						})
		// 			})
		// 			.catch((err) => {
		// 				console.log(err);
		// 			});
		// 	} else {
		// 		console.log("验证未通过");
		// 	}
		// });
	};
</script>

<style>
	page {
		width: 100%;
		height: 100%;
		display: flex;
		flex-direction: column;
		background-color: ##eef7f7;
	}
</style>
<style lang="scss" scoped>
	.hint2 {
		display: flex;

		.green {
			font-size: 28rpx;
			color: #00b38b;
		}

		.grey {
			font-size: 24rpx;
			color: #000000;
			margin-left: 16rpx;
		}
	}

	.oderPage {
		flex: 1;
		width: 100%;

		.from1 {
			background-color: #fff;
			margin-top: 30rpx;
			padding: 0 30rpx;

			::v-deep .uni-forms-item {
				border-bottom: 1rpx solid #ccc;
				padding: 15rpx 0;
				margin-bottom: 0;

				.uni-forms-item__label {
					font-size: 28rpx;
					height: 50rpx;
				}

				.uni-forms-item__content {
					display: flex;
				}

				.uni-easyinput__content-input {
					font-size: 28rpx;
					height: 50rpx;
				}
			}

			.btn {
				line-height: 38rpx;
				font-size: 24rpx;
				font-family: Microsoft YaHei;
				font-weight: 400;
				color: #ffffff;
				background: #00b38b;
				border-radius: 10rpx;
				padding: 10rpx 15rpx;
			}
		}

		.from {
			background-color: #fff;
			margin-top: 30rpx;
			padding: 0 30rpx;

			::v-deep .u-form-item {
				padding: 0;
				line-height: normal;

				.u-form-item__message {
					margin-bottom: 12rpx;
				}
			}

			.from_item {
				display: flex;
				flex-wrap: nowrap;
				justify-content: space-between;
				align-items: center;
				height: 80rpx;
				border-bottom: 1rpx solid #dcdcdc;

				.btn {
					font-size: 24rpx;
					font-family: Microsoft YaHei;
					font-weight: 400;
					color: #ffffff;
					background: #00b38b;
					border-radius: 10rpx;
					padding: 10rpx 15rpx;
				}

				::v-deep .input {
					text-align: left;
					flex: 1;
                    background: transparent;
					input {
						text-align: left;
					}
				}
			}

			.from_item1 {
				display: flex;
				flex-wrap: nowrap;
				flex-direction: column;
				justify-content: space-between;
				padding: 30rpx;
				border-bottom: #dcdcdc 1px solid;

				input {
					text-align: right;
				}

				.textarea {
					background-color: #f1f1f1;
					width: 100%;
					border-radius: 20rpx;
					margin-top: 10rpx;
					text-indent: 1rem;
					height: 180rpx;
					padding: 20rpx;
					box-sizing: border-box;
				}
			}
		}
	}

	.submit {
		background: linear-gradient(to left, #43a1e0 0%, #13e7c1 100%);
		width: 670rpx;
		height: 80rpx;
		color: #fff;
		border-radius: 100rpx;
		position: fixed;
		left: 50%;
		transform: translate(-50%);
		bottom: 60rpx;
		font-size: 32rpx;
	}
</style>
