市北人才赋能平台 --小程序端
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.
 

141 lines
3.4 KiB

// pages/user/myInfo/register/index.js
import {AuthModel} from '../../../../models/auth.js'
import { UserModel } from '../../../../models/user.js'
let auth = new AuthModel()
let userModel = new UserModel()
Page({
/**
* 页面的初始数据
**/
data: {
disabled: false, // 是否允许点击注册
rules: [
{ // 多个规则
name: 'mobile',
rules: [{ required: true, message: '手机号必填' }, { mobile: true, message: '手机号格式不对' }],
}, {
name: 'vcode',
rules: { required: true, message: '验证码必填' },
},
],
formData: {},
time: 60,
fetchCode: true,
interval: null,
btnTitle: '获取验证码'
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
onUnload () {
clearInterval(this.data.interval)
},
// 重新获取Code
refetchCodeDownTime () {
this.data.interval = setInterval(() => {
const time = this.data.time - 1
const title = `${time}s 重新发送`
this.setData({
fetchCode: false,
time: time,
btnTitle: title
})
if (time <= 0) {
this.setData({
fetchCode: true,
time: 60,
btnTitle: '重新发送'
})
clearInterval(this.data.interval)
}
}, 1000)
},
// 调用获取 Code 接口
onGetMsgCode () {
this.selectComponent('#form').validate((valid, errors) => {
if (!valid) {
let emptyPhone = false
errors.forEach(item => {
if (item.name === 'mobile') {
emptyPhone = true
wx.showToast({
title: item.message,
icon: 'none'
})
}
})
if (!emptyPhone) {
// console.log(this.data.formData)
this.fetchMsgCodeApi()
}
} else {
this.fetchMsgCodeApi()
}
})
},
fetchMsgCodeApi () {
auth.getMsgCode(this.data.formData.mobile, res => {
console.log(res)
this.refetchCodeDownTime()
})
},
registerApi () {
console.log("registerApi");
console.log(this.data.formData);
const phone = this.data.formData.mobile;
const code = this.data.formData.vcode;
console.log(phone, code);
userModel.updatephone(phone, code, res => {
console.log(res)
console.log('成功')
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2];
prevPage.setData({
//等五分钟检验一下,成功就把position改成phone
phone: phone
});
wx.showToast({
title: '修改成功',
icon: 'none',
duration: 2000,
success(res) {
setTimeout(function () {
wx.navigateBack({
delta: 1
})
}, 2000)
}
})
})
},
formInputChange (e) {
const { field } = e.currentTarget.dataset
this.setData({
[`formData.${field}`]: e.detail.value
})
},
submitClick () {
this.selectComponent('#form').validate((valid, errors) => {
console.log('valid', valid, errors)
if (!valid) {
const firstError = Object.keys(errors)
console.log(firstError)
if (firstError.length) {
const error = errors[firstError[0]].message
wx.showToast({
icon: "none",
title: error
})
}
} else {
this.registerApi()
}
})
}
})