<template> <view class="pad-zy30"> <status-nav navBarTitle="找回密码" returnColor="#c2c2c2"></status-nav> <container-subgroup> <view slot="content" style="margin: 0 -30rpx;"> <view class="fon52 bold mar-sx50">忘记密码 ?</view> <view class="fon28"> <view class="forget-title mar-x10">手机号码</view> <view class="forget-input-box posir"> <input @blur="inputBlurEv(0)" @focus="inputFocusEv(0)" @input="inputFocusEv(0)" class="fon24" type="number" maxlength="11" v-model="forget_phone" placeholder="请输入您的手机号码" placeholder-style="color:#c8c8c8;" /> <!-- 清除按钮 --> <view class="clear-box" v-show="ifPhone" @tap="clearInput(0)"><view class="clear-close"><span></span><span></span></view></view> </view> <view class="forget-title mar-x10">手机验证码</view> <view class="forget-input-box posir"> <input @blur="inputBlurEv(1)" @focus="inputFocusEv(1)" @input="inputFocusEv(1)" class="fon24" type="number" maxlength="6" v-model="forget_code" placeholder="请输入手机验证码" placeholder-style="color:#c8c8c8;" /> <view class="forget-obtain-code" @tap="getCode">{{codeText}}</view> <!-- 清除按钮 --> <view class="clear-box" v-show="ifCode" @tap="clearInput(1)" style="right: 260rpx;"><view class="clear-close"><span></span><span></span></view></view> </view> <view class="forget-title mar-x10">新密码</view> <view class="forget-input-box posir"> <input @blur="inputBlurEv(2)" @focus="inputFocusEv(2)" @input="inputFocusEv(2)" class="fon24" type="text" password v-model="forget_password" placeholder="请输入新密码" placeholder-style="color:#c8c8c8;" /> <!-- 清除按钮 --> <view class="clear-box" v-show="ifPassword" @tap="clearInput(2)"><view class="clear-close"><span></span><span></span></view></view> </view> <view class="forget-title mar-x10">确认密码</view> <view class="forget-input-box posir"> <input @blur="inputBlurEv(3)" @focus="inputFocusEv(3)" @input="inputFocusEv(3)" class="fon24" type="text" password v-model="forget_qpassword" placeholder="请再次确认密码" placeholder-style="color:#c8c8c8;" /> <!-- 清除按钮 --> <view class="clear-box" v-show="ifqpassword" @tap="clearInput(3)"><view class="clear-close"><span></span><span></span></view></view> </view> <view class="forget-title mar-x10">单位名称</view> <view class="forget-input-box posir"> <input @blur="inputBlurEv(4)" @focus="inputFocusEv(4)" @input="inputFocusEv(4)" class="fon24" type="text" v-model="forget_unitname" placeholder="请输入单位名称" placeholder-style="color:#c8c8c8;" /> <!-- 清除按钮 --> <view class="clear-box" v-show="ifUnitname" @tap="clearInput(4)"><view class="clear-close"><span></span><span></span></view></view> </view> </view> <!-- 立即修改 --> <view class="forget-btn" @tap="submitEv">立即修改</view> </view> </container-subgroup> </view> </template> <script> export default { data() { return { ifPhone:false, forget_phone:'', ifCode:false, forget_code:'', ifPassword:false, forget_password:'', ifqpassword:false, forget_qpassword:'', ifUnitname:false, forget_unitname:'', codeText:'获取验证码' ,// 获取验证码按钮文字 flagCode:true ,// 允许点击获取验证码 countDown:null//验证码倒计时事件 } }, methods: { // 提交事件 submitEv(){ if(this.checkEmpty()){ let params = { phone: this.forget_phone, // 手机号码 sms_code:this.forget_code, // 短信验证码 password: this.forget_password, // 密码 confirm_password: this.forget_qpassword, // 确认密码 affiliation: this.forget_unitname ,//单位名称 } this.$requst.post('/universal/api.login/password_find',params).then(res=>{ if(res.code==1) { this.$toolAll.tools.showToast('找回成功'); setTimeout(()=>{uni.navigateBack({delta:1})},1000) } else { this.$toolAll.tools.showToast(res.msg); } }) } }, // 获取验证码 getCode(){ if(this.$toolAll.tools.isPhone(this.forget_phone)) { this.$toolAll.tools.showToast('请输入正确的手机号'); } else { if(this.flagCode) { this.flagCode = false; let count = 60; this.codeText = `${count}S重新获取` this.countDown = setInterval(()=>{ count--; count < 10 ? this.codeText = `0${count}S重新获取` : this.codeText = `${count}S重新获取`; if(count==0) { this.codeText = `重新获取`; clearInterval(this.countDown); this.flagCode = true; } },1000) // 调用获取短信事件 this.getMessage(this.forget_phone); } } }, // 获取短信事件 getMessage(phone){ this.$requst.post('/universal/api.login/send_sms',{phone}).then(res=>{ this.$toolAll.tools.showToast(res.msg); if(res.code==0) { clearInterval(this.countDown); this.codeText = `获取验证码` } }) }, // 检测是否某个输入框为空 checkEmpty(){ let ifEmpty = true; if(this.$toolAll.tools.isPhone(this.forget_phone)) { this.$toolAll.tools.showToast('手机号格式不正确'); ifEmpty = false; return; } if(!this.forget_code) { this.$toolAll.tools.showToast('请输入验证码'); ifEmpty = false; return; } if(!this.forget_password) { this.$toolAll.tools.showToast('密码不能为空'); ifEmpty = false; return; } if(!this.forget_qpassword) { this.$toolAll.tools.showToast('确认密码不能为空'); ifEmpty = false; return; } if(this.forget_password != this.forget_qpassword) { this.$toolAll.tools.showToast('两次输入的密码必须相同'); ifEmpty = false; return; } if(!this.forget_unitname) { this.$toolAll.tools.showToast('请输入单位名称'); ifEmpty = false; return; } return ifEmpty; }, // 输入框获取焦点 inputFocusEv(index){ switch (index){ case 0: this.forget_phone ? this.ifPhone = true : this.ifPhone = false; break; case 1: this.forget_code ? this.ifCode = true : this.ifCode = false; break; case 2: this.forget_password ? this.ifPassword = true : this.ifPassword = false; break; case 3: this.forget_qpassword ? this.ifqpassword = true : this.ifqpassword = false; break; case 4: this.forget_unitname ? this.ifUnitname = true : this.ifUnitname = false; break; } }, // 输入框失去焦点 inputBlurEv(index){ switch (index){ case 0: setTimeout(()=>{this.ifPhone = false;},100) break; case 1: setTimeout(()=>{this.ifCode = false;},100) break; case 2: setTimeout(()=>{this.ifPassword = false;},100) break; case 3: setTimeout(()=>{this.ifqpassword = false;},100) break; case 4: setTimeout(()=>{this.ifUnitname = false;},100) break; } }, // 清除手机号 clearInput(index){ switch (index){ case 0: this.forget_phone = ''; break; case 1: this.forget_code = ''; break; case 2: this.forget_password = ''; break; case 3: this.forget_qpassword = ''; break; case 4: this.forget_unitname = ''; break; } }, } } </script> <style> page{background-color: #FFFFFF;} </style>