// 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); }) } }) } })