uniapp 之 短信验证码登录

一、需求

输入手机号码,可以获取验证码。

二、实现效果

点击前:

点击后:

三、代码实现

html 复制代码
<template>
	<view class="login">
		<view class="infobox">
			<view class="item">
				<input type="number" placeholder="请输入您的手机号码" v-model="mobile" placeholder-class="login_input" />
			</view>
			
			<view class="item">
				<input type="text" placeholder="请输入验证码" v-model="vxcode" placeholder-class="login_input" />
				<!--主要代码,直接复制使用即可-->
				<view class="yanzhengma" @click="get_code">{{time}} {{text}}</view>
			</view>
		</view>

		<view class="mylogin" @click="submitFun">确定</view>
	</view>

</template>

<script>
	export default {
		data() {
			return {
				//验证码登录
				mobile: '', //手机号码
				vxcode: '', //验证码

				// 验证码(主要代码,直接复制使用即可)
				time: '',
				text: '获取验证码',
			}
		},
		onLoad(e) {},
		onShow() {},

		methods: { 
			//获取验证码(主要代码,直接复制使用即可)
			async get_code() {
				var that = this;
				if (!that.mobile) {
					uni.showToast({
						title: '请输入手机号',
						icon: 'none'
					})
					return;
				}
				var data = {
					mobile: that.mobile,
				}
				this.$api.appPlateForm('post', this.$url.url.auth_vscode, data, (res) => {
					if (res.code == 200) {
						that.disabled = true;
						that.setInterValFunc();

					}
				});
			},
			setInterValFunc() {
				this.time = 60;
				this.text = '秒';
				this.setTime = setInterval(() => {
					if (this.time - 1 == 0) {
						this.time = '';
						this.text = '重新获取';
						this.code = '';
						this.disabled = false;
						clearInterval(this.setTime);
					} else {
						this.time--;
					}
				}, 1000);
			},

			// 确定
			submitFun() {
				var that = this;
				if (!that.mobile) {
					uni.showToast({
						title: '请输入手机号',
						icon: 'none'
					})
					return;
				}
				
				if (!that.vxcode) {
					uni.showToast({
						title: '请输入验证码',
						icon: 'none'
					})
					return;
				}
				
				//调用列表方法
				var data = {
					mobile: that.mobile, //手机号
					code:that.vxcode,//验证码
				}
				this.$api.appPlateForm('post', this.$url.url.auth_forget_password, data, (res) => {
					if (res.code == 200) {
						uni.showToast({
							icon: 'none',
							title: res.msg
						})
						setTimeout(() => {
							uni.navigateBack()
						}, 1000)
					}
				});
			},
		}
	}
</script>



<style>
	.infobox .item {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 10rpx;
		border-bottom: 3rpx solid #DDDDDD;
		margin-bottom: 25rpx;
		position: relative;
	}

	.login_info .infobox .item input {
		width: 70%;
	}

	.login_input {
		font-size: 28rpx;
		font-weight: 400;
		color: #CACACA;
	}
	.yanzhengma {
		position: absolute;
		right: 0;
		top: -8rpx;
		bottom: 0;
		width: 140rpx;
		height: 60rpx;
		line-height: 60rpx;
		text-align: center;
		background: #00BD87;
		border-radius: 30rpx;
		font-size: 22rpx;
		font-family: PingFang SC;
		font-weight: 500;
		color: #FFFFFF;
	}
</style>

完成~

相关推荐
尚梦6 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
尚学教辅学习资料12 小时前
基于SSM+uniapp的营养食谱系统+LW参考示例
java·uni-app·ssm·菜谱
Bessie23412 小时前
微信小程序eval无法使用的替代方案
微信小程序·小程序·uni-app
qq229511650221 小时前
小程序Android系统 校园二手物品交换平台APP
微信小程序·uni-app
qq22951165021 天前
微信小程序uniapp基于Android的流浪动物管理系统 70c3u
微信小程序·uni-app
qq22951165021 天前
微信小程序 uniapp+vue老年人身体监测系统 acyux
vue.js·微信小程序·uni-app
摇头的金丝猴2 天前
uniapp vue3 使用echarts-gl 绘画3d图表
前端·uni-app·echarts
小远yyds2 天前
跨平台使用高德地图服务
前端·javascript·vue.js·小程序·uni-app
qq22951165022 天前
uniapp+vue加油服务系统 微信小程序
vue.js·微信小程序·uni-app
重生之我是菜鸡程序员2 天前
uniapp 使用vue/pwa
javascript·vue.js·uni-app