初始化(包含登录模块)

This commit is contained in:
2024-03-29 17:37:48 +08:00
commit 1bcb13ce7a
1306 changed files with 152772 additions and 0 deletions

133
config/login.js Normal file
View File

@@ -0,0 +1,133 @@
import store from '@/store';
import $http from '@/config/requestConfig'
import base from '@/config/baseUrl';
// #ifdef H5
import { h5Login } from '@/config/html5Utils';
// #endif
let code = "";
let loginStart = true;
let userInfo = {
token: ""
};
let lastPageUrl = "";
// 微信小程序登录
function onLogin(type = "judge",callback) {
//判断登录状态
if (loginStart) {
loginStart = false;
const _this = this;
let platform;
// #ifdef MP-WEIXIN
platform = 'weixin';
// #endif
// #ifdef MP-ALIPAY
platform = 'alipay';
// #endif
// #ifdef MP-BAIDU
platform = 'baidu';
// #endif
uni.login({
provider: platform,
success: function(loginRes) {
if (loginRes.errMsg == 'login:ok') {
// 获取用户信息
uni.getUserInfo({
provider: platform,
success: function(infoRes) {
let httpData = {
wxSmallCode: loginRes.code, //小程序code
iv: infoRes.iv, //小程序加密算法的初始向量
encryptedData: infoRes.encryptedData //包括敏感数据在内的完整用户信息的加密数据
};
// store.state.chatScenesInfo里面是小程序二维码附带的信息
if(store.state.chatScenesInfo.invite){
// 推荐码
httpData.invite = store.state.chatScenesInfo.invite;
}
$http.post('api/open/v1/login', httpData).then(res => {
loginStart = true;
store.commit('setUserInfo', res);
callback && callback();
if (res.nullUserInfo) {
// 没有绑定过微信的头像或者昵称弹出授权获取头像昵称的弹窗
store.commit('setBindUserInfoShow', true);
} else {
uni.showToast({
title: "登录成功"
});
}
}, err => {
loginStart = true;
});
}
});
}
}
});
}
}
//判断是否登录(所有端)
function judgeLogin(callback, type = "judge"){
if(store.state.chatScenesInfo.scene == 1154){
uni.showToast({
title: '请前往小程序使用完整服务',
icon: "none"
});
} else {
let storeUserInfo = store.state.userInfo;
if(!storeUserInfo.token){ // nvue页面读取不到vuex里面数据将取缓存
storeUserInfo = uni.getStorageSync("userInfo");
}
if (type != "force" && storeUserInfo.token) {
callback();
} else if (storeUserInfo.token && !storeUserInfo.phone) {
if (type == "force") {
uni.navigateTo({
url: '/pages/user/bindPhone'
});
} else {
uni.showModal({
title: "提示",
content: "您还未绑定手机号,请先绑定~",
confirmText: "去绑定",
cancelText: "再逛会",
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: '/pages/user/bindPhone'
});
}
}
});
}
} else {
// #ifdef MP
onLogin(type, callback);
// #endif
// #ifdef APP-PLUS
uni.showModal({
title: "登录提示",
content: "此时此刻需要您登录喔~",
confirmText: "去登录",
cancelText: "再逛会",
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: "/pages/user/login"
});
}
}
});
// #endif
// #ifdef H5
h5Login(type, () => {
callback();
});
// #endif
}
}
}
export {
onLogin,
judgeLogin
}