prevention/package_B/page/changePassword/index.js

119 lines
3.5 KiB
JavaScript

// package_B/page/changePassword/index.js
import {changePassword} from '../../../api/mine.js'
Page({
/**
* 页面的初始数据
*/
data: {
form: {
oldPassword: "", // 旧密码
newPassword: "", // 新密码
repairPassword: "",// 再次输入的密码
},
formRules: {
oldPassword: {
title: "原密码",
isPassword: true,
tips: "请输入原密码",
validator: function (value) {
return value.trim() != ""
},
placeholder: "请输入原密码"
},
newPassword: {
title: "新密码",
isPassword: true,
tips: "请输入新密码",
validator: function (value) {
return value.trim() != ""
},
placeholder: "请输入新密码"
},
repairPassword: {
title: "确认密码",
isPassword: true,
tips: "请再次输入新密码",
validator: function (value) {
return value.trim() != ''
},
placeholder: "请再次输入新密码"
}
}
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
bindValue(e) {
let name = e.currentTarget.dataset.name;
let str = "form."+name
this.setData({
[str]: e.detail.value,
})
this.validate(name, e.detail.value)
},
validate(name) {
let formRules = this.data.formRules;
let validator = this.data.formRules[name].validator
let result = false
result = validator ? !validator(this.data.form[name]) : false;
// 判断两次密码是否一致
if(name == "repairPassword") {
if(this.data.form.repairPassword !== "") {
if(this.data.form.newPassword !== this.data.form.repairPassword) {
result = true
formRules[name].tips = "请确保两次输入的密码一致"
}
} else {
formRules[name].tips = "请再次输入新密码"
}
}
formRules[name].warning = result
this.setData({
formRules
})
return result
},
validateForm() {
return new Promise((resolve, reject) => {
try {
let formRules = this.data.formRules;
let result = false;
for (let key in formRules) {
let temp = this.validate(key)
if (temp) {
result = temp
}
}
resolve(!result)
} catch (e) {
reject(e)
}
})
},
submitForm() {
this.validateForm().then(res => {
if(res) {
let params = {}
let form = this.data.form
params.oldPassword = form.oldPassword
params.newPassword = form.newPassword
changePassword(params).then(res=> {
if(res.code === 0) {
wx.switchTab({
url: '/pages/mine/mine',
})
}
}).catch((e)=> {
console.log(e);
})
}
})
}
})