205 lines
5.5 KiB
Vue
205 lines
5.5 KiB
Vue
<template>
|
||
<view class="editPwd">
|
||
<u-navbar back-text="" title="设置密码" :border-bottom="false">
|
||
</u-navbar>
|
||
<view class="form">
|
||
<div class="input">
|
||
<u-input
|
||
v-model="form.oldPwd"
|
||
:border="false"
|
||
:type="'text'"
|
||
placeholder="填写原始密码"
|
||
/>
|
||
</div>
|
||
<div class="input">
|
||
<u-input
|
||
v-model="form.newPwd"
|
||
:border="false"
|
||
placeholder="填写新密码"
|
||
type="password"
|
||
/>
|
||
</div>
|
||
<div class="input">
|
||
<u-input
|
||
v-model="form.repeatPwd"
|
||
:border="false"
|
||
placeholder="再次填写确认"
|
||
type="password"
|
||
/>
|
||
</div>
|
||
<!-- <div class="codeInput">
|
||
<u-input v-model="form.code" :type="'number'" :border="false" placeholder="验证码" />
|
||
<u-button class="codeBtn" type="primary" size="medium">8556</u-button>
|
||
</div> -->
|
||
|
||
<div class="btns">
|
||
<u-button class="btn" type="primary" @click="editPwd(true)"
|
||
>确定</u-button
|
||
>
|
||
</div>
|
||
<view style="width: 85%; color: grey;margin:0 auto;">
|
||
密码长度应该大于5,必须包含字母、数字、特殊字符,且不能包含中文!
|
||
</view>
|
||
</view>
|
||
<u-toast ref="uToast"/>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import {aesEncrypt} from '@/utils/encrypt.js'
|
||
export default {
|
||
data() {
|
||
return {
|
||
editPasswrod: false,
|
||
form: {
|
||
oldPwd: "",
|
||
newPwd: "",
|
||
repeatPwd: "",
|
||
},
|
||
};
|
||
},
|
||
methods: {
|
||
editPwd(state) {
|
||
if (state) {
|
||
if (this.form.oldPwd === "") {
|
||
// return this.$tips("请输入旧密码", "error");
|
||
return this.$refs.uToast.show({
|
||
title: "请输入旧密码",
|
||
type: "error",
|
||
});
|
||
}
|
||
if (this.form.newPwd === "") {
|
||
// return this.$tips("请输入新密码", "error");
|
||
return this.$refs.uToast.show({
|
||
title: "请输入新密码",
|
||
type: "error",
|
||
});
|
||
}
|
||
if (this.form.oldPwd == this.form.newPwd) {
|
||
// return this.$tips("新密码不能与旧密码一致", "error");
|
||
return this.$refs.uToast.show({
|
||
title: "新密码不能与旧密码一致",
|
||
type: "error",
|
||
});
|
||
}
|
||
if (this.form.newPwd.length < 5) {
|
||
// return this.$tips("您的密码长度应该大于5", "error");
|
||
return this.$refs.uToast.show({
|
||
title: "您的密码长度应该大于5",
|
||
type: "error",
|
||
});
|
||
}
|
||
let reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[\W_]).{5,}$/;
|
||
if (!reg.test(this.form.newPwd)) {
|
||
// return this.$tips("密码必须包含字母、数字、特殊字符,且不能包含中文!", "error");
|
||
return this.$refs.uToast.show({
|
||
title: "密码必须包含字母、数字、特殊字符,且不能包含中文!",
|
||
type: "error",
|
||
});
|
||
}
|
||
if (this.form.repeatPwd === "") {
|
||
// return this.$tips("请确认密码", "error");
|
||
return this.$refs.uToast.show({
|
||
title: "请确认密码",
|
||
type: "error",
|
||
});
|
||
}
|
||
if (this.form.repeatPwd !== this.form.newPwd) {
|
||
// return this.$tips("请确认两次密码是否一致", "error");
|
||
return this.$refs.uToast.show({
|
||
title: "请确认两次密码是否一致",
|
||
type: "error",
|
||
});
|
||
}
|
||
const data = {
|
||
userId: this.vuex_user.id,
|
||
oldPassword: aesEncrypt(this.form.oldPwd),
|
||
password: aesEncrypt(this.form.repeatPwd),
|
||
};
|
||
this.$u.api
|
||
.myChangePassword(data)
|
||
.then((res) => {
|
||
// this.$tips("修改成功");
|
||
this.$refs.uToast.show({
|
||
title: "修改成功",
|
||
type: "success",
|
||
});
|
||
this.form.newPwd = "";
|
||
this.form.oldPwd = "";
|
||
this.form.repeatPwd = "";
|
||
uni.navigateBack({
|
||
delta: 1
|
||
});
|
||
})
|
||
.catch((err) => {
|
||
// return this.$tips(err.error, "error");
|
||
return this.$refs.uToast.show({
|
||
title: err.error,
|
||
type: "error",
|
||
});
|
||
});
|
||
} else {
|
||
(this.form.newPwd = "");
|
||
this.form.repeatPwd = "";
|
||
}
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.editPwd {
|
||
.form {
|
||
padding:100rpx 56rpx;
|
||
|
||
.input {
|
||
background-color: #fff;
|
||
border-radius: 24rpx;
|
||
font-size:28rpx;
|
||
color: #b4b6bd;
|
||
margin-bottom: 40rpx;
|
||
padding: 20rpx 20rpx;
|
||
}
|
||
|
||
.codeInput {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
margin-bottom: 40rpx;
|
||
|
||
::v-deep .u-input {
|
||
background-color: #f6f7fa;
|
||
border-radius: 14rpx;
|
||
font-size:28rpx;
|
||
color: #b4b6bd;
|
||
padding: 10rpx 10rpx !important;
|
||
}
|
||
|
||
.codeBtn {
|
||
width: 100rpx;
|
||
height: 100rpx;
|
||
background-color: #eaf5ff;
|
||
border-radius: 14rpx;
|
||
font-size: 52rpx;
|
||
line-height: 46rpx;
|
||
color: #2e9bff;
|
||
margin-left: 24rpx;
|
||
}
|
||
}
|
||
|
||
.btns {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
margin-top: 50rpx;
|
||
margin-bottom: 30rpx;
|
||
|
||
.btn {
|
||
width: 100%;
|
||
border-radius: 50rpx;
|
||
background: #3cb5fb;
|
||
height: 100rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style>
|