137 lines
3.3 KiB
JavaScript
137 lines
3.3 KiB
JavaScript
// pages/meeting/meeting.js
|
|
import UserApi from '../../assets/js/http/userApi'
|
|
import { encrypt } from '../../assets/js/jsencrypt/rsa'
|
|
import { wxBind } from '../../assets/js/common'
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
password: '', // token
|
|
newPassword: '', // 密码
|
|
verifyPassword: '', // 确认密码
|
|
rsaPublicKey: '',
|
|
flag: false
|
|
},
|
|
bindBlurInput(e){
|
|
|
|
},
|
|
// 登录
|
|
formSubmit(e) {
|
|
const that = this
|
|
if(!e.detail.value.newPassword){
|
|
this.data.flag = false
|
|
wx.showToast({
|
|
title: '请输入密码',
|
|
icon: 'none'
|
|
})
|
|
return
|
|
} else {
|
|
let pattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,}$/
|
|
if(!pattern.test(e.detail.value.newPassword)){
|
|
wx.showToast({
|
|
title: '密码由8位数字、大小写字母和特殊符号组成!',
|
|
icon: 'none'
|
|
})
|
|
this.data.flag = false
|
|
return
|
|
} else {
|
|
this.data.flag = true
|
|
}
|
|
}
|
|
if(!e.detail.value.verifyPassword){
|
|
this.data.flag = false
|
|
wx.showToast({
|
|
title: '请输入确认密码',
|
|
icon: 'none'
|
|
})
|
|
return
|
|
} else {
|
|
let pattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,}$/
|
|
if(!pattern.test(e.detail.value.verifyPassword)){
|
|
wx.showToast({
|
|
title: '密码由8位数字、大小写字母和特殊符号组成!',
|
|
icon: 'none'
|
|
})
|
|
this.data.flag = false
|
|
return
|
|
} else {
|
|
this.data.flag = true
|
|
}
|
|
}
|
|
if(e.detail.value.newPassword === e.detail.value.verifyPassword) {
|
|
this.data.flag = true
|
|
} else {
|
|
this.data.flag = false
|
|
wx.showToast({
|
|
title: '密码不一致',
|
|
icon: 'none'
|
|
})
|
|
return
|
|
}
|
|
if (this.data.flag) {
|
|
let params = {
|
|
password: this.data.password,
|
|
newPassword: encrypt(this.data.rsaPublicKey, e.detail.value.newPassword),
|
|
verifyPassword: encrypt(this.data.rsaPublicKey, e.detail.value.verifyPassword),
|
|
rsaPublicKey: this.data.rsaPublicKey
|
|
}
|
|
// 请求短信登录start
|
|
UserApi.setPassword(params).then(res => {
|
|
if (res.success) {
|
|
// 成功设置密码,跳转首页
|
|
wx.setStorage({
|
|
key: 'X-Access-Token',
|
|
data: that.data.password
|
|
})
|
|
// 绑定微信
|
|
this.wxBindPhone()
|
|
wx.switchTab({
|
|
url: '../home/home',
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '登录失败',
|
|
icon: 'error',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
}
|
|
},
|
|
// 绑定微信
|
|
wxBindPhone(){
|
|
const that = this
|
|
wxBind((res)=>{
|
|
let params = {
|
|
openId: res.data.openid,
|
|
rsaPublicKey: that.data.rsaPublicKey
|
|
}
|
|
// 需要判断是否绑定过微信,再进行绑定请求
|
|
UserApi.wxBind(params).then(res=>{})
|
|
})
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
const that = this
|
|
wx.getStorage({
|
|
key: 'rsaPublicKey',
|
|
success (res) {
|
|
that.setData({
|
|
rsaPublicKey: res.data
|
|
})
|
|
}
|
|
})
|
|
wx.getStorage({
|
|
key: 'token-temp',
|
|
success (res) {
|
|
that.setData({
|
|
password: res.data
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|