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 }