| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | <template>	<view class="container">		<view class="back-btn" @click="backToBefore()">			<u-icon name="arrow-left" color="#fff" size="20" customStyle="margin:0 auto"></u-icon>			<text class="back-text">验证邮箱</text>		</view>		<view class="change-content">			<view class="pass-item">				<view class="pass-item-name">电子邮箱</view>				<input type="text" class="pass-item-content" v-model="emailAddress" />			</view>		</view>		<view class="confirm-btn" @click="confirmEmail()">发送验证码</view>	</view></template><script setup>	import {		ref	} from "vue";	import {		getCheckcode	} from '@/api/login';	function backToBefore() {		uni.navigateBack({})	};	let emailAddress = ref(null)	function confirmEmail() {		let reg = /^([a-zA-Z\d][\w-]{2,})@(\w{2,})\.([a-z]{2,})(\.[a-z]{2,})?$/;		let isValid = reg.test(emailAddress.value)		if (!isValid) {			return uni.showToast({				title: "邮箱格式不正确",				icon: "error",				duration: 2000			})		}		getCheckcode({			email: emailAddress.value		}).then(res => {			if (res.code === 200) {				uni.navigateTo({					url: `/pages/login/changePass/index?login=done&email=${emailAddress.value}`				})			}		})	}</script><style lang="scss" scoped>	page {		height: 100%;		background-color: #EAF0FA;	}	.container {		position: relative;		width: 100%;		height: 100%;		background: linear-gradient(180deg, #1869F6 0%, #EAF0FA 64%, #EAF0FA 100%);		.back-btn {			position: absolute;			top: 8%;			left: 4%;			display: flex;			font-size: 40rpx;			font-weight: 500;			color: #FFF;			.back-text {				margin-left: 28rpx;			}		}		.change-content {			position: absolute;			top: 226rpx;			left: 4%;			width: 92%;			height: 118rpx;			padding: 19rpx 28rpx;			box-sizing: border-box;			background-color: #fff;			border-radius: 40rpx;			.pass-item {				display: flex;				align-items: center;				justify-content: space-between;				width: 100%;				height: 80rpx;				font-size: 32rpx;				font-weight: 400;				color: #9E9E9E;				.pass-item-name {					flex: 2;				}				.pass-item-content {					flex: 6;					text-align: right;					font-size: 32rpx;					color: #343437;				}				.pass-item-icon {					flex: 1;					height: 100%;					line-height: 80rpx;					text-align: right;					image {						width: 36rpx;						height: 28rpx;					}				}				.pass-item-hide {					image {						width: 36rpx;						height: 18rpx;					}				}			}		}		.confirm-btn {			position: absolute;			top: 396rpx;			left: 4%;			width: 92%;			height: 84rpx;			line-height: 84rpx;			font-size: 36rpx;			color: #fff;			text-align: center;			background: #1869F6;			border-radius: 16rpx;		}	}</style>
 |