123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- import { getUserInfo, setWxAuthUserInfo, getThirdInfo, createAccount, changePhone } from '@/api/user.js';
- import store from '@/store';
- import config from '@/config';
- import { login, getCompanyByPhone, refreshToken, getUserControlSpace } from '@/api/user.js';
- import utils from '@/common/utils.js';
- // 定时检查用户信息并且续约-进入页面默认传0
- function checkHasUserInfo() {
- let timer = setTimeout(() => {
- let token = store.state.user.token
- let tokenInfo = store.state.user.tokenInfo;
- let expireTime = tokenInfo.expireTime;
- let refreshTokenExpireTime = tokenInfo.refreshTokenExpireTime;
- let nowtime = utils.getTimeStamp();
- let refreshTokenValue = tokenInfo && tokenInfo.refreshToken ? tokenInfo.refreshToken : '';
- if (token && refreshTokenValue && expireTime && refreshTokenExpireTime >= nowtime) { // 过期可续约
- let minute = (parseInt(expireTime - nowtime) / 1000 / 60);
- console.log(minute);
- if (minute < 20) {
- refreshTokenPage().then(() => {
- clearTimeout(timer);
- checkHasUserInfo(600000);
- });
- } else {
- clearTimeout(timer);
- checkHasUserInfo(600000);
- }
- } else {
- clearTimeout(timer);
- checkHasUserInfo(600000);
- }
- }, 600000)
- }
- // 登录
- function wxLogin (type) {
- console.log("执行了登录")
- // type=1 如果type未激活和作废不需要跳转到登录页面
- return new Promise((resolve, reject) => {
- wx.login({
- success (wxLoginRes) {
- const jsCode = wxLoginRes.code;
- console.log(utils)
- const appId = utils.getAppId();
- if (jsCode) {
- let params = {
- "appId": appId,
- "wxCode": jsCode
- }
- login(params).then(res => {
- if (res.result == 'success') {
- let data = res.data || []
- let tokenInfo = {
- expireTime: data.expireTime,
- startTime: data.startTime,
- refreshTokenExpireTime: data.refreshTokenExpireTime,
- refreshToken: data.refreshToken
- };
- store.commit('setToken', data.token);
- store.commit('setActivated', data.isActivated);
- store.commit('setTokenInfo', tokenInfo);
- if (data.isActivated && data.isActivated == 1) {
- store.commit('setUserInfo', data.tokenUser);
- // store.commit('setProjectId', data.tokenUser.projectId);
- } else {
- if (!type) {
- refreshLogin()
- }
- store.commit('setUserInfo', {});
- }
- resolve(data)
- } else {
- reject('login接口返回fail');
- }
- })
- } else {
- wx.showToast({
- title: `网络异常, 请稍后重试`,
- icon: 'none',
- duration: 5e3
- });
- reject('wx.login接口返回code为空');
- }
- },
- fail(res) {
- reject(res);
- wx.showToast({
- title: `网络异常, 请稍后重试`,
- icon: 'none',
- duration: 5e3
- });
- }
- });
- });
- }
- // 获取租户信息
- function getCompanyDataByPhone() {
- return new Promise((resolve, reject) => {
- let userInfo = store.state.user.userInfo;
- let userPhone = userInfo.phone || wx.getStorageSync('userPhone');
- let params = {
- phone: userPhone
- }
- if (userPhone) {
- getCompanyByPhone(params).then(res => {
- let data = res.data || []
- resolve(data)
- }).catch(() => {
- reject({
- mesg: '获取租户数据异常'
- })
- })
- } else {
- reject({
- mesg: '无法获取手机号信息,跳转到首页'
- })
- }
- });
- }
- // 登录续约
- function refreshTokenPage() {
- return new Promise((resolve, reject) => {
- let storeTokenInfo = store.state.user.tokenInfo
- let refreshTokenValue = storeTokenInfo && storeTokenInfo.refreshToken ? storeTokenInfo.refreshToken : '';
- refreshToken(refreshTokenValue).then(res => {
- if (res.result == 'success') {
- let data = res.data || []
- let tokenInfo = {
- expireTime: data.expireTime,
- startTime: data.startTime,
- refreshTokenExpireTime: data.refreshTokenExpireTime,
- refreshToken: data.refreshToken
- };
- console.log(data);
- store.commit('setToken', data.token);
- store.commit('setActivated', data.isActivated);
- store.commit('setTokenInfo', tokenInfo);
- if (data.isActivated && data.isActivated == 1) {
- store.commit('setUserInfo', data.tokenUser);
- resolve(data)
- } else {
- store.commit('clearToken', '');
- // 去登录页面
- refreshLogin()
- resolve(data)
- }
- } else {
- store.commit('clearToken', '');
- refreshHome();
- reject("续约失败!")
- }
- }).catch(() => {
- store.commit('clearToken', '');
- refreshHome();
- reject("续约失败!")
- })
- })
- }
- // 刷新首页
- function refreshHome() {
- // wx.redirectTo({ url: '/pages/index' });
- wx.redirectTo({ url: '/packagesEnv/pages/home/index' });
- }
- function refreshLogin() {
- wx.redirectTo({ url: '/pages/index' });
- // wx.redirectTo({ url: '/packagesEnv/pages/home/index' });
- }
- // 检查用户是否有空间控制权限
- function checkUserControl() {
- return new Promise((resolve, reject) => {
- let userInfo = store.state.user.userInfo;
- if (userInfo && userInfo.userId) {
- let params = {
- "criteria": {
- "projectId": userInfo.projectId,
- "companyId": userInfo.companyId,
- "userCode": userInfo.userId
- }
- }
- getUserControlSpace(params).then(res => {
- // console.log("返回用户权限数据")
- // console.log(res)
- if (res.result == 'success') {
- let data = res.data || {}
- if (data && JSON.stringify(data) != '{}') {
- if (data.isControlSpace !== 1) {
- resolve(data)
- } else {
- reject("租户下无可控空间");
- refreshHome();
- }
- } else { // 如果无权限和楼层数据返回跳转到首页,不让点击
- reject("获取租户权限接口失败");
- refreshHome();
- }
- } else {
- reject("获取租户权限接口失败");
- refreshHome();
- }
- }).catch((error) => { // 如果无权限和楼层数据返回跳转到首页,不让点击
- reject("获取租户权限接口失败");
- refreshHome();
- })
- } else {
- reject("用户未登录");
- }
- })
- }
- // 登录续约逻辑-待处理
- function checkLoginNew() {
- return new Promise((resolve, reject) => {
- let token = store.state.user.token;
- let storeTokenInfo = store.state.user.tokenInfo
- let refreshToken = storeTokenInfo && storeTokenInfo.refreshToken ? storeTokenInfo.refreshToken : '';
- console.log("执行checkLoginNew--", token, refreshToken);
- console.log("执行checkLoginNew--");
- if (!token || !refreshToken) {
- wxLogin().then((res) => {
- resolve(res)
- }).catch((error) => {
- reject("登录失败!");
- });
- } else {
- let flag = checkTokenIsValid();
- console.log("flag==", flag);
- if (flag == 1) { // 续约
- refreshTokenPage().then(res => {
- resolve(res)
- }).catch((error) => {
- reject("续约失败!");
- });
- } else if (flag == 2) { // 重新登录
- wxLogin().then((res) => {
- resolve(res)
- }).catch((error) => {
- reject("登录失败!");
- });
- } else if (flag == 3) { // 未过期
- resolve({
- isActivated: store.state.user.isActivated
- })
- }
- }
- })
- }
- // 判断token是否过期
- function checkTokenIsValid() {
- let flag = 1
- let tokenInfo = store.state.user.tokenInfo;
- let expireTime = tokenInfo.expireTime;
- let refreshTokenExpireTime = tokenInfo.refreshTokenExpireTime;
- let nowtime = utils.getTimeStamp();
- if (expireTime && expireTime <= nowtime && refreshTokenExpireTime >= nowtime) { // 过期可续约
- flag = 1
- } else if (expireTime && expireTime >= nowtime) { //未过期
- let minute = (parseInt(expireTime - nowtime) / 1000 / 60)
- if (minute <= 20) {
- flag = 1
- } else {
- flag = 3
- }
- }
- else { // 需要重新登录
- flag = 2
- }
- return flag;
- }
- // 本地保存用户头像
- function setAvatar(avatar) {
- wx.setStorageSync('avatarBase64', avatar);
- }
- // 获取头像
- function getAvatar() {
- return wx.getStorageSync('avatarBase64');
- }
- // 清楚数据
- function clearAvatar() {
- wx.removeStorage('avatarBase64');
- }
- export {
- checkHasUserInfo,
- wxLogin,
- setAvatar,
- getAvatar,
- checkLoginNew,
- checkTokenIsValid,
- getCompanyDataByPhone,
- checkUserControl,
- refreshTokenPage
- }
|