2026-03-26 12:16:01 +08:00
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
|
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
// | Author: CRMEB Team <admin@crmeb.com>
|
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
import store from "../store";
|
|
|
|
|
|
import Cache from '../utils/cache';
|
|
|
|
|
|
import {
|
|
|
|
|
|
Debounce
|
|
|
|
|
|
} from '@/utils/validate.js'
|
|
|
|
|
|
// #ifdef H5 || APP-PLUS
|
|
|
|
|
|
import {
|
|
|
|
|
|
isWeixin
|
|
|
|
|
|
} from "../utils";
|
|
|
|
|
|
import auth from './wechat';
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
|
LOGIN_STATUS,
|
|
|
|
|
|
USER_INFO,
|
|
|
|
|
|
EXPIRES_TIME,
|
|
|
|
|
|
STATE_R_KEY
|
|
|
|
|
|
} from './../config/cache';
|
|
|
|
|
|
import Routine from '@/libs/routine';
|
|
|
|
|
|
|
2026-05-03 15:56:26 +08:00
|
|
|
|
function normalizeRoutineAuthTypes(config = {}) {
|
|
|
|
|
|
let types = config.routine_auth_type;
|
|
|
|
|
|
if (Array.isArray(types)) return types.map(item => Number(item));
|
|
|
|
|
|
if (typeof types === 'string') return types.split(',').map(item => Number(item));
|
|
|
|
|
|
return [];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function isRoutineWechatAuth(config = {}) {
|
|
|
|
|
|
const authTypes = normalizeRoutineAuthTypes(config);
|
|
|
|
|
|
return Number(config.wechat_auth_switch) === 1 || authTypes.includes(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function isRoutinePhoneAuth(config = {}) {
|
|
|
|
|
|
const authTypes = normalizeRoutineAuthTypes(config);
|
|
|
|
|
|
return Number(config.phone_auth_switch) === 1 || authTypes.includes(2);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-26 12:16:01 +08:00
|
|
|
|
function prePage() {
|
|
|
|
|
|
let pages = getCurrentPages();
|
|
|
|
|
|
let prePage = pages[pages.length - 1];
|
|
|
|
|
|
// #ifndef APP-PLUS
|
|
|
|
|
|
return prePage.route;
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
|
return prePage.$page.fullPath;
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export const toLogin = Debounce(_toLogin, 800)
|
|
|
|
|
|
|
|
|
|
|
|
function _toLogin(push, pathLogin) {
|
|
|
|
|
|
store.commit("LOGOUT");
|
|
|
|
|
|
let path = prePage();
|
|
|
|
|
|
|
|
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
path = location.pathname + location.search;
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
if (!pathLogin)
|
|
|
|
|
|
pathLogin = '/page/users/login/index'
|
|
|
|
|
|
Cache.set('login_back_url', path);
|
2026-05-03 15:56:26 +08:00
|
|
|
|
const BASIC_CONFIG = uni.getStorageSync('BASIC_CONFIG') || {};
|
2026-03-26 12:16:01 +08:00
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
if (isWeixin() && BASIC_CONFIG.wechat_status) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/users/wechat_login/index',
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/users/login/index'
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
// #ifdef MP
|
|
|
|
|
|
let url
|
2026-05-03 15:56:26 +08:00
|
|
|
|
if (!isRoutineWechatAuth(BASIC_CONFIG) && isRoutinePhoneAuth(BASIC_CONFIG)) {
|
2026-03-26 12:16:01 +08:00
|
|
|
|
url = '/pages/users/binding_phone/index?pageType=0'
|
|
|
|
|
|
} else {
|
|
|
|
|
|
url = '/pages/users/wechat_login/index'
|
|
|
|
|
|
}
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url
|
|
|
|
|
|
})
|
|
|
|
|
|
// Routine.getCode()
|
|
|
|
|
|
// .then(code => {
|
|
|
|
|
|
// console.log(code)
|
|
|
|
|
|
// Routine.silenceAuth(code).then(res => {
|
|
|
|
|
|
// console.log(res)
|
|
|
|
|
|
// })
|
|
|
|
|
|
// })
|
|
|
|
|
|
// .catch(err => {
|
|
|
|
|
|
// uni.hideLoading();
|
|
|
|
|
|
// });
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/users/login/index'
|
|
|
|
|
|
})
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function checkLogin() {
|
|
|
|
|
|
let token = Cache.get(LOGIN_STATUS);
|
|
|
|
|
|
let expiresTime = Cache.get(EXPIRES_TIME);
|
|
|
|
|
|
let newTime = Math.round(new Date() / 1000);
|
|
|
|
|
|
if (expiresTime < newTime || !token) {
|
|
|
|
|
|
uni.setStorageSync('authIng', false)
|
|
|
|
|
|
Cache.clear(LOGIN_STATUS);
|
|
|
|
|
|
Cache.clear(EXPIRES_TIME);
|
|
|
|
|
|
Cache.clear(USER_INFO);
|
|
|
|
|
|
Cache.clear(STATE_R_KEY);
|
|
|
|
|
|
return false;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
store.commit('UPDATE_LOGIN', token);
|
|
|
|
|
|
let userInfo = Cache.get(USER_INFO, true);
|
|
|
|
|
|
if (userInfo) {
|
|
|
|
|
|
store.commit('UPDATE_USERINFO', userInfo);
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-03 15:56:26 +08:00
|
|
|
|
}
|