223 lines
7.5 KiB
Vue
223 lines
7.5 KiB
Vue
<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('修改成功,请重新登录');
|
||
uni.clearStorageSync();
|
||
uni.reLaunch({url:'/pages/login/login'});
|
||
} 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>
|