YZProjectCloud/yanzhu-ui-app/miniprogram/pages/login/login.js

201 lines
4.3 KiB
JavaScript
Raw Normal View History

2024-10-13 11:24:45 +08:00
import {
getToken,
2024-10-13 15:40:15 +08:00
setToken,
getOpenId,
2024-10-15 00:32:25 +08:00
setOpenId,
2024-12-29 11:46:50 +08:00
setUserInfo,
2024-10-15 00:32:25 +08:00
getSessionKey,
setSessionKey,
2024-10-13 11:24:45 +08:00
} from '../../utils/auth'
import {
2024-10-15 23:55:05 +08:00
wxLogin,
2024-10-13 15:40:15 +08:00
maLogin,
2024-10-13 11:24:45 +08:00
getCodeImg,
2024-10-13 15:40:15 +08:00
getMaOpenId,
2024-10-15 23:55:05 +08:00
refreshMobileToken,
2024-12-29 11:46:50 +08:00
findUserInfoByCache,
2024-10-13 11:24:45 +08:00
} from '../../api/login'
2024-12-29 11:46:50 +08:00
import {
findMyProjectList,
} from '../../api/project'
2024-10-13 11:24:45 +08:00
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
username: '',
password: '',
code: '',
uuid: '',
codeUrl: '',
2024-12-17 20:25:21 +08:00
checked: true,
2024-10-13 11:24:45 +08:00
},
//获取填写的账号信息
name: function (even) {
this.setData({
username: even.detail.value
})
},
//获取填写的密码信息
psw: function (even) {
this.setData({
password: even.detail.value
})
},
//获取填写的密码信息
code: function (even) {
this.setData({
code: even.detail.value
})
},
onLoad: function (option) {
2024-10-13 15:40:15 +08:00
this.getMaOpenId();
2024-10-13 11:24:45 +08:00
if (getToken()) {
console.log("Authorization...{}", getToken());
//刷新权限信息
2024-10-15 23:55:05 +08:00
refreshMobileToken().then(res => {
2024-10-13 11:24:45 +08:00
if (res.code == '200') {
2024-12-29 11:46:50 +08:00
this.getUserInfoByCache();
2024-10-13 11:24:45 +08:00
} else {
2024-12-29 11:46:50 +08:00
this.loadCodeImage();
2024-10-13 11:24:45 +08:00
}
});
} else {
console.log("未查询到Token...{}...准备重新登录")
this.loadCodeImage();
}
},
2024-10-13 15:40:15 +08:00
/**
* 授权登录
*/
getMaOpenId: function () {
wx.login({
success: res => {
2024-10-15 00:32:25 +08:00
getMaOpenId({'code':res.code}).then(response => {
setOpenId(response.data.openid);
setSessionKey(response.data.sessionKey);
2024-10-13 15:40:15 +08:00
});
}
})
},
2024-10-13 11:24:45 +08:00
loadCodeImage: function () {
getCodeImg().then(res => {
let captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
if (captchaEnabled) {
this.setData({
codeUrl: 'data:image/gif;base64,' + res.img,
uuid: res.uuid
})
}
});
},
//登录
userLogin: function () {
var username = this.data.username;
var password = this.data.password;
var code = this.data.code;
if (username == "") {
app.toast("登录账号不能为空");
return;
}
if (password == "") {
app.toast("登录密码不能为空");
return;
}
if (code == "") {
app.toast("验证码不能为空");
return;
}
//启动蒙版
let that = this;
//发送请求
2024-10-15 23:55:05 +08:00
wxLogin({
2024-10-13 11:24:45 +08:00
"username": username,
"password": password,
"code": code,
"uuid": that.data.uuid,
}).then(res => {
if (res.code == '200') {
2024-12-29 11:46:50 +08:00
setToken(res.data.access_token)
2024-10-13 11:24:45 +08:00
//跳转页面
2024-12-29 11:46:50 +08:00
this.getUserInfoByCache();
2024-10-13 11:24:45 +08:00
} else {
that.loadCodeImage();
}
});
},
getPhoneNumber(e) {
2024-10-13 15:40:15 +08:00
if(e.detail.code){
let data = {
2024-10-15 00:32:25 +08:00
openId:getOpenId(),
sessionKey:getSessionKey(),
2024-10-13 15:40:15 +08:00
iv: e.detail.iv,
encryptedData: e.detail.encryptedData
}
2024-10-15 23:55:05 +08:00
maLogin(data).then(res =>{
setToken(res.access_token)
//跳转页面
wx.redirectTo({
url: '../index/index',
})
})
2024-10-13 15:40:15 +08:00
}else{
//用户决绝授权
app.toast("请允许微信手机号一键登录");
}
2024-10-13 11:24:45 +08:00
},
2024-12-29 11:46:50 +08:00
/**
* 查询
* 用户详细信息
* @param {*} e
*/
getUserInfoByCache: function () {
findUserInfoByCache().then(res=>{
if(res.code==200){
setUserInfo(res.user);
app.globalData.userData = res.user;
this.getMyProjectList();
}
});
},
/**
* 查询
* 用户项目信息
* 根据项目配置进入不同页面...
*/
getMyProjectList: function () {
findMyProjectList().then(res=>{
if(res.code==200){
app.globalData.projectInfoList = res.rows;
if(res.rows.length>0){
if(res.rows.length==1){
app.globalData.useProjectId = res.rows[0].id;
app.globalData.useProjectName = res.rows[0].projectName;
//单项目直接进入项目页面
wx.redirectTo({
url: '../project_info/index',
})
}else{
//多项目进入项目切换页面
wx.redirectTo({
url: '../project_list/index',
})
}
}else{
app.toast("未查询到当前用户项目,信息审核中或人员已离场");
return false;
}
}
});
},
2024-10-13 11:24:45 +08:00
})