You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

490 lines
19 KiB
Vue

1 year ago
<template>
<view class="box" hover-class="none" :hover-stop-propagation="false">
<view :class="'ui-poptips ' + (pop == 1 ? 'ui-poptipsTop' : '')">
<view class="ui-poptips-cnt">{{ popErrorMsg }}</view>
</view>
<!-- 找回密码页面 -->
<view class="mt16" v-if="type == 1" hover-class="none" :hover-stop-propagation="false">
<form @submit="beforeFormSubmit" data-type="1">
<view class="container" hover-class="none" :hover-stop-propagation="false">
<view class="fsa sub bb1" hover-class="none" :hover-stop-propagation="false">
<view class hover-class="none" :hover-stop-propagation="false">手机号</view>
<view class="c9" hover-class="none" :hover-stop-propagation="false">
{{ tel }}
<!-- <input type="number" bindinput="changeBtn" class="phoneInput" bindblur="changeBtn" data-num="5" data-tel="1" maxlength="11" placeholder-class="pce" placeholder="输入手机号码" name="tel" placeholder-style="color:#999" /> -->
</view>
</view>
<view class="fsa sub" hover-class="none" :hover-stop-propagation="false">
<view class hover-class="none" style="min-width: 80px" :hover-stop-propagation="false">验证码</view>
<view class="fsa br_8" style>
<view class="mr8">
<input
type="number"
class="f16 phoneInput"
data-num="6"
placeholder-class
maxlength="4"
placeholder="输入验证码"
name="code"
placeholder-style="color:#999"
/>
</view>
<view
hover-class="thover"
:style="'color:' + (btnColor ? '#576b95' : '#999') + ';min-width:96px'"
:class="'sendCode f14 code ' + (disabled == 1 ? '' : 'disabled') + ' pl8'"
@tap="sendMsg"
>
{{ getmsg }}
</view>
</view>
</view>
</view>
<view class="container mt16">
<view class="sub fsa bb1" hover-class="none" :hover-stop-propagation="false">
<view class hover-class="none" :hover-stop-propagation="false">新密码</view>
<view class hover-class="none" :hover-stop-propagation="false">
<input
type="password"
@input="showCha"
class="phoneInput"
maxlength="11"
placeholder-class="pce"
placeholder="请输入新密码"
name="newPsw"
:value="newPsw"
placeholder-style="color:#999"
/>
</view>
</view>
<view class="sub fsa" hover-class="none" :hover-stop-propagation="false">
<view class hover-class="none" :hover-stop-propagation="false">确认密码</view>
<view class hover-class="none" :hover-stop-propagation="false">
<input
type="password"
@input="showCha"
class="phoneInput"
maxlength="11"
placeholder-class="pce"
placeholder="再次输入新密码"
name="rePsw"
:value="rePsw"
placeholder-style="color:#999"
/>
</view>
</view>
</view>
<button class="normalBtn loginOut" hover-class="thover" data-type="1" style="margin-top: 120px" formType="submit">确定</button>
</form>
</view>
<!-- 修改密码页面 -->
<view class="mt16" v-if="type == 2" hover-class="none" :hover-stop-propagation="false">
<form action @submit="beforeFormSubmit" data-type="2">
<view class="container" hover-class="none" :hover-stop-propagation="false">
<view class="fsa sub" hover-class="none" :hover-stop-propagation="false">
<view class hover-class="none" :hover-stop-propagation="false">原密码</view>
<view class hover-class="none" :hover-stop-propagation="false">
<input
type="password"
class="phoneInput"
data-num="5"
data-tel="1"
maxlength="11"
placeholder-class="pce"
placeholder="请输入原密码"
name="oldPsw"
:value="tel"
placeholder-style="color:#999"
/>
</view>
</view>
</view>
<view class="tar pr10 f14 fw500" style="margin: 8px 0 16px 0; color: #576b95" @tap="changeType" hover-class="thover">忘记原密码</view>
<view class="container" hover-class="none" :hover-stop-propagation="false">
<view class="fsa sub bb1" hover-class="none" :hover-stop-propagation="false">
<view class hover-class="none" :hover-stop-propagation="false">新密码</view>
<view class hover-class="none" :hover-stop-propagation="false">
<input
type="password"
class="phoneInput"
data-num="5"
data-tel="1"
maxlength="11"
placeholder-class="pce"
placeholder="请输入新密码"
name="newPsw"
:value="newPsw"
placeholder-style="color:#999"
/>
</view>
</view>
<view class="fsa sub" hover-class="none" :hover-stop-propagation="false">
<view class hover-class="none" :hover-stop-propagation="false">确认密码</view>
<view class hover-class="none" :hover-stop-propagation="false">
<input
type="password"
class="phoneInput"
data-num="5"
data-tel="1"
maxlength="11"
placeholder-class="pce"
placeholder="再次输入新密码"
name="rePsw"
:value="rePsw"
placeholder-style="color:#999"
/>
</view>
</view>
</view>
<button class="normalBtn loginOut" hover-class="thover" data-type="2" style="margin-top: 120px" formType="submit">修改密码</button>
</form>
</view>
</view>
</template>
<script>
// pages/changePsw/index.js
const app = getApp();
// import { customRequest } from '../../utils/request.js';
export default {
data() {
return {
type: 1,
disabled: 1,
getmsg: '获取验证码',
btnColor: true,
tel: '',
pop: 0,
popErrorMsg: '',
newPsw: '',
rePsw: ''
};
}
/**
* 生命周期函数--监听页面加载
*/,
onLoad(options) {
if (options.type) {
console.log('app.globalData.loginUserInfo', app.globalData.loginUserInfo);
this.setData({
type: options.type,
tel: app.globalData.loginUserInfo.tel
});
if (options.type == 1) {
uni.setNavigationBarTitle({
title: '设置密码'
});
} else {
uni.setNavigationBarTitle({
title: '修改登录密码'
});
}
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {},
/**
* 生命周期函数--监听页面显示
*/
onShow() {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {},
methods: {
changeBtn: function (e) {
console.log(e);
if (this.verifyTel(e.detail.value)) {
this.setData({
disabled: '1',
btnColor: true,
tel: e.detail.value
});
} else {
this.setData({
btnColor: false,
disabled: 0
});
}
},
/**
* 手机号合规校验
*
*
*/
verifyTel(value) {
console.log(value);
var myreg = /^[1][3456789][0-9]{9}$/;
if (myreg.test(value)) {
return true;
} else {
return false;
}
},
/**
* 密码重复校验
*
*
*/
verify(newStr, oldStr) {
if (newStr != oldStr) {
return false;
} else {
return true;
}
},
/**
* 表单信息提交校验
*
*
*/
beforeFormSubmit(e) {
console.log(e);
console.log(e.currentTarget.dataset.type);
uni.showLoading({
title: '提交中',
mask: true,
success: (result) => {}
});
let that = this;
let value = e.detail.value;
if (e.currentTarget.dataset.type == 1) {
value.tel = that.tel;
if (value.tel == '' || !this.verifyTel(value.tel)) {
app.globalData.hideLoad();
app.globalData.showTips(that, '请输入正确手机号');
return;
}
if (value.code == '') {
app.globalData.hideLoad();
app.globalData.showTips(that, '验证码不能为空');
return;
}
if (value.newPsw.trim() == '' || value.rePsw.trim() == '') {
app.globalData.hideLoad();
if (value.newPsw.trim() == '') {
app.globalData.showTips(that, '请输入新密码');
} else {
app.globalData.showTips(that, '请再次输入密码');
}
return;
}
if (!this.verify(value.newPsw.trim(), value.rePsw.trim())) {
app.globalData.hideLoad();
app.globalData.showTips(that, '前后密码不一致');
return;
}
app.globalData.hideLoad();
this.formSubmit(value, 1);
} else {
console.log(app.globalData.user);
console.log(value);
if (!value.oldPsw) {
app.globalData.hideLoad();
console.log(that);
app.globalData.showTips(that, '请输入原密码');
return;
}
if (value.newPsw.trim() == '' || value.rePsw.trim() == '') {
app.globalData.hideLoad();
if (value.newPsw.trim() == '') {
app.globalData.showTips(that, '请输入新密码');
} else {
app.globalData.showTips(that, '请再次输入密码');
}
return;
}
if (!this.verify(value.newPsw.trim(), value.rePsw.trim())) {
app.globalData.hideLoad();
app.globalData.showTips(that, '前后密码不一致');
return;
}
this.formSubmit(value, 2);
}
},
/**
* 表单信息提交
*
*
*/
formSubmit(value, type) {
let that = this;
if (type == 1) {
console.log(value);
uni.request({
url: app.globalData.ip + '/yishoudan/updatePassword',
data: {
tel: value.tel,
code: value.code,
password: value.newPsw
},
header: app.globalData.headers,
success: function ({ data }) {
console.log(data);
if (data.status == 200) {
app.globalData.showTips(that, '修改成功');
setTimeout(() => {
if (app.globalData.isLogin) {
uni.navigateBack({
target: 1,
success: (result) => {}
});
} else {
uni.reLaunch({
url: '/pages/login/index?type=psw',
success: (result) => {}
});
}
}, 2000);
} else {
app.globalData.showTips(that, data.msg);
}
}
});
} else {
uni.request({
url: app.globalData.ip + '/yishoudan/updatePasswordByPwd',
data: {
tel: app.globalData.user.tel,
oldPassword: value.oldPsw,
password: value.newPsw
},
method: 'post',
header: app.globalData.headers,
success: function ({ data }) {
console.log(data);
if (data.status == 200) {
app.globalData.showTips(that, '修改成功');
setTimeout(() => {
// if (app.globalData.isLogin) {
// wx.navigateBack({
// target: 1,
// success: (result) => {},
// });
// } else {
// wx.reLaunch({
// url: "/pages/login/index?type=psw",
// success: (result) => {},
// });
// }
uni.reLaunch({
url: '/pages/login/index?type=psw',
success: (result) => {}
});
}, 2000);
} else {
app.globalData.hideLoad();
app.globalData.showTips(that, data.msg);
}
}
});
}
},
/**
* 改变修改密码类型
*
*
*/
changeType() {
this.setData({
type: 1
});
uni.setNavigationBarTitle({
title: '找回密码'
});
},
/**
* 获取验证码
*
*
*/
sendMsg: function () {
console.log(this.tel);
var that = this;
that.setData({
btnColor: false,
disabled: 0
});
that.getCode();
var timer = 1;
if (timer == 1) {
timer = 0;
var time = 60;
var inter = setInterval(function () {
that.setData({
getmsg: time + 's',
btnColor: false,
disabled: 0
});
time--;
if (time < 0) {
timer = 1;
clearInterval(inter);
that.setData({
getmsg: '重新获取',
btnColor: true,
disabled: 1
});
}
}, 1000);
}
},
getCode: function () {
var that = this;
uni.request({
url: app.globalData.ip + '/commons/sendMsgCode',
data: {
tel: that.tel
},
header: app.globalData.headers,
method: 'GET',
success: function (res) {
console.log('发送短信验证码');
console.log(res);
if (res.data.status == 200) {
app.globalData.showTips(that, '验证码发送成功');
} else if (res.data.status == 9999) {
app.globalData.dialogNotLogin();
} else {
}
}
});
},
/**
* 用户点击右上角分享
*/
onShareAppMessage1() {},
showCha() {
console.log('占位:函数 showCha 未声明');
}
}
};
</script>
<style>
@import './index.css';
</style>