|
|
<template>
|
|
|
<view class="wrap">
|
|
|
<u-navbar title="修改密码" :border-bottom="false">
|
|
|
</u-navbar>
|
|
|
<view class="form">
|
|
|
<view class="app-info">
|
|
|
<image class="app-logo" src="/static/bico_safe.png"></image>
|
|
|
</view>
|
|
|
<u-form :model="model" :rules="rules" ref="uForm" :errorType="errorType">
|
|
|
<u-form-item prop="oldpassword">
|
|
|
<u-input :password-icon="true" :border="border" type="password" v-model="model.oldpassword" placeholder="请输入旧密码"></u-input>
|
|
|
</u-form-item>
|
|
|
<u-form-item prop="password">
|
|
|
<u-input :password-icon="true" :border="border" type="password" v-model="model.password" placeholder="请输入新密码"></u-input>
|
|
|
</u-form-item>
|
|
|
<u-form-item prop="rePassword">
|
|
|
<u-input :border="border" type="password" v-model="model.rePassword" placeholder="请确认密码"></u-input>
|
|
|
</u-form-item>
|
|
|
</u-form>
|
|
|
<view class="u-p-t-30">
|
|
|
<u-button type="primary" @click="submit">提交</u-button>
|
|
|
</view>
|
|
|
<u-top-tips ref="uTips" :navbar-height="statusBarHeight + navbarHeight"></u-top-tips>
|
|
|
</view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
// 状态栏高度,H5中,此值为0,因为H5不可操作状态栏
|
|
|
statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
|
|
|
// 导航栏内容区域高度,不包括状态栏高度在内
|
|
|
navbarHeight: 44,
|
|
|
duration: 2000,
|
|
|
title: '修改密码成功',
|
|
|
type: 'success',
|
|
|
model: {
|
|
|
oldpassword: '',
|
|
|
password: '',
|
|
|
rePassword: ''
|
|
|
},
|
|
|
rules: {
|
|
|
oldpassword: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '请输入新密码',
|
|
|
trigger: ['change','blur'],
|
|
|
},
|
|
|
{
|
|
|
// 正则不能含有两边的引号
|
|
|
min: 6, max: 20,
|
|
|
message: '长度在 6 到 20 个字符',
|
|
|
trigger: ['change','blur'],
|
|
|
}
|
|
|
],
|
|
|
password: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '请输入新密码',
|
|
|
trigger: ['change','blur'],
|
|
|
},
|
|
|
{
|
|
|
min: 6, max: 20,
|
|
|
message: '长度在 6 到 20 个字符',
|
|
|
trigger: ['change','blur'],
|
|
|
}
|
|
|
],
|
|
|
rePassword: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '请重新输入密码',
|
|
|
trigger: ['change','blur'],
|
|
|
},
|
|
|
{
|
|
|
validator: (rule, value, callback) => {
|
|
|
return value === this.model.password;
|
|
|
},
|
|
|
message: '两次输入的密码不相等',
|
|
|
trigger: ['change','blur'],
|
|
|
}
|
|
|
],
|
|
|
},
|
|
|
errorType: ['message'],
|
|
|
};
|
|
|
},
|
|
|
onReady() {
|
|
|
this.$refs.uForm.setRules(this.rules);
|
|
|
},
|
|
|
methods: {
|
|
|
submit() {
|
|
|
this.$refs.uForm.validate(valid => {
|
|
|
if (valid) {
|
|
|
this.$u.api.modifyPassword(this.model).then((res) => {
|
|
|
console.log(res)
|
|
|
if(res.code == 200){
|
|
|
this.title = res.msg;
|
|
|
this.type = "success";
|
|
|
}else{
|
|
|
this.title = res.msg;
|
|
|
this.type = "error";
|
|
|
}
|
|
|
this.showTips();
|
|
|
setTimeout(()=>{
|
|
|
uni.clearStorageSync()
|
|
|
uni.clearStorage()
|
|
|
this.$u.vuex('vuex_user','');
|
|
|
this.$u.vuex('vuex_token','');
|
|
|
this.$u.route('/pages/login');
|
|
|
},2000)
|
|
|
})
|
|
|
}else{
|
|
|
console.log("必填验证不通过!");
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
showTips() {
|
|
|
this.$refs.uTips.show({
|
|
|
duration: this.duration,
|
|
|
title: this.title,
|
|
|
type: this.type
|
|
|
});
|
|
|
},
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.wrap{
|
|
|
.form{
|
|
|
width: 80%;
|
|
|
margin: 80rpx auto 0;
|
|
|
}
|
|
|
}
|
|
|
.app-info {
|
|
|
position: relative;
|
|
|
padding: 20px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.app-info:after {
|
|
|
content: " ";
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
bottom: 0;
|
|
|
right: 0;
|
|
|
height: 1px;
|
|
|
color: #E5E5E5;
|
|
|
transform-origin: 0 100%;
|
|
|
transform: scaleY(0.5);
|
|
|
}
|
|
|
|
|
|
.app-info .app-logo {
|
|
|
display: block;
|
|
|
width: 185rpx;
|
|
|
height: 185rpx;
|
|
|
margin: 0px auto;
|
|
|
border-radius: 4px;
|
|
|
}
|
|
|
</style>
|