// pages/login/login.js import {userLogin, getUser} from '../../api/login.js' import baseURL from '../../environments.js' Page({ /** * 页面的初始数据 */ data: { form: { username: '', password: '' }, remember: false, formRules: { username: { validator: function(value) { return value.trim() != '' }, tips: '请输入用户名', placeholder: '请输入用户名', isPassword: false }, password: { validator: function(value) { return value.trim() != '' }, tips: '请输入密码', placeholder: '请输入密码', isPassword: true } } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { // 隐藏返回图标 wx.hideHomeButton(); // 判断是否有记住密码 if(wx.getStorageSync('remember')) { this.setData({ rememberChecked: true }) this.setData({ form: wx.getStorageSync('loginForm') }) } }, checkboxChange(e) { let checked = this.data.remember this.setData({remember: !checked}) }, bindValue(e) { let name = e.currentTarget.dataset.name; let form = this.data.form; form[name] = e.detail.value; this.setData({ form, }) this.validate(name, e.detail.value) }, validate(name) { let formRules = this.data.formRules; let validator = this.data.formRules[name].validator let result = validator ? !validator(this.data.form[name]) : false; 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) { wx.showLoading({title: "登录中", mask:true}); // 判断是否有记住密码 if(this.data.remember) { wx.setStorageSync('remember', true) wx.setStorageSync('loginForm', this.data.form) } else { wx.removeStorageSync('remember') wx.removeStorageSync('loginForm') } // 登录 userLogin(this.data.form).then(res=> { wx.hideLoading() if (res?.code === 0) { // 以token获取用户信息 let token = res.data.token wx.setStorageSync('token', token) // token存入storage // 获取用户信息 getUser().then(response=> { if(response.code === 0) { wx.setStorageSync('userInfo', response.data) // 跳转至tabBar wx.switchTab({ url: '/pages/task/task' }) } }).catch(e=> { console.log(e); }) } else{ wx.showToast({ title: res?.msg || '用户名密码错误', icon: 'none', duration: 2000, }); } }) } }) } })