You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					163 lines
				
				3.6 KiB
			
		
		
			
		
	
	
					163 lines
				
				3.6 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								// subpages/settings/pages/changePassword/changePassword.js
							 | 
						||
| 
								 | 
							
								import {encryptedData} from "../../../../utils/index"
							 | 
						||
| 
								 | 
							
								import api from "../../../../utils/api"
							 | 
						||
| 
								 | 
							
								Page({
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 页面的初始数据
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    data: {
							 | 
						||
| 
								 | 
							
								        pubKey:'',
							 | 
						||
| 
								 | 
							
								        oldPassword:"",
							 | 
						||
| 
								 | 
							
								        newPassword:"",
							 | 
						||
| 
								 | 
							
								        confirmPassword:""
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 生命周期函数--监听页面加载
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    onLoad(options) {
							 | 
						||
| 
								 | 
							
								        this.getPubKey()
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    getPubKey(){
							 | 
						||
| 
								 | 
							
								        api.getPubKey().then(res=>{
							 | 
						||
| 
								 | 
							
								            this.setData({
							 | 
						||
| 
								 | 
							
								                pubKey:res.data
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								        }).catch(err=>{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 生命周期函数--监听页面初次渲染完成
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    onReady() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 生命周期函数--监听页面显示
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    onShow() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 生命周期函数--监听页面隐藏
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    onHide() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 生命周期函数--监听页面卸载
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    onUnload() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 页面相关事件处理函数--监听用户下拉动作
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    onPullDownRefresh() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 页面上拉触底事件的处理函数
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    onReachBottom() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 用户点击右上角分享
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    onShareAppMessage() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    changeOldPassword(e){
							 | 
						||
| 
								 | 
							
								        this.setData({
							 | 
						||
| 
								 | 
							
								            oldPassword:e.detail.value
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    changeNewPassword(e){
							 | 
						||
| 
								 | 
							
								        this.setData({
							 | 
						||
| 
								 | 
							
								            newPassword:e.detail.value
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    changeConfirmPassword(e){
							 | 
						||
| 
								 | 
							
								        this.setData({
							 | 
						||
| 
								 | 
							
								            confirmPassword:e.detail.value
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validateComplexity(pwd) {
							 | 
						||
| 
								 | 
							
								        let regex = new RegExp("(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z]).{8,20}");
							 | 
						||
| 
								 | 
							
								        if (!regex.test(pwd)) return false;
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								    handelSubmit(e){
							 | 
						||
| 
								 | 
							
								        if(!this.data.oldPassword){
							 | 
						||
| 
								 | 
							
								            wx.showToast({
							 | 
						||
| 
								 | 
							
								              title: '原密码不能为空',
							 | 
						||
| 
								 | 
							
								              icon:"none"
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            return
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if(!this.data.newPassword){
							 | 
						||
| 
								 | 
							
								            wx.showToast({
							 | 
						||
| 
								 | 
							
								              title: '新密码不能为空',
							 | 
						||
| 
								 | 
							
								              icon:"none"
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            return
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if(!this.data.confirmPassword){
							 | 
						||
| 
								 | 
							
								            wx.showToast({
							 | 
						||
| 
								 | 
							
								              title: '确认密码不能为空',
							 | 
						||
| 
								 | 
							
								              icon:"none"
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            return
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if(!this.data.confirmPassword === this.data.newPassword){
							 | 
						||
| 
								 | 
							
								            wx.showToast({
							 | 
						||
| 
								 | 
							
								                title: '两次密码不一致',
							 | 
						||
| 
								 | 
							
								                icon:"none"
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            return
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if (!this.validateComplexity(this.data.newPassword)) {
							 | 
						||
| 
								 | 
							
								            wx.showToast({
							 | 
						||
| 
								 | 
							
								                title: '密码必须8-20个字符,而且同时包含大小写字母和数字',
							 | 
						||
| 
								 | 
							
								                icon:"none",
							 | 
						||
| 
								 | 
							
								                duration:5000
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            return
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        let obj={
							 | 
						||
| 
								 | 
							
								                oldPassword: encryptedData(this.data.pubKey, this.data.oldPassword),
							 | 
						||
| 
								 | 
							
								                newPassword: encryptedData(this.data.pubKey, this.data.newPassword),
							 | 
						||
| 
								 | 
							
								                confirmNewPassword: encryptedData(this.data.pubKey,this.data.confirmPassword),
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        api.changePassword(obj).then(res=>{
							 | 
						||
| 
								 | 
							
								            console.log(res);
							 | 
						||
| 
								 | 
							
								            if(res.code == 0){
							 | 
						||
| 
								 | 
							
								                wx.showToast({
							 | 
						||
| 
								 | 
							
								                    title: '修改成功',
							 | 
						||
| 
								 | 
							
								                    duration:3000,
							 | 
						||
| 
								 | 
							
								                    success:function(){
							 | 
						||
| 
								 | 
							
								                        setTimeout(()=>{
							 | 
						||
| 
								 | 
							
								                            wx.reLaunch({
							 | 
						||
| 
								 | 
							
								                                url: '/pages/login/login',
							 | 
						||
| 
								 | 
							
								                              })
							 | 
						||
| 
								 | 
							
								                        },3000)
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                })
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }).catch(err=>{
							 | 
						||
| 
								 | 
							
								            console.log(err);
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								       
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								})
							 |