first commit
This commit is contained in:
@@ -0,0 +1,661 @@
|
||||
<script>
|
||||
import config from './common/config.js'
|
||||
import {writeDebugLog,getSettingByKey,getSettings,verifyToken,logout} from './api/commonApi.js'
|
||||
import { getCfgSettingByKey } from './api/configApi.js'
|
||||
import store from './store/index.js'
|
||||
import FixedCoordinateConverter from './common/fixedCoordinateConverter.js'
|
||||
import {refreshToken} from './api/commonApi.js'
|
||||
import dayjs from './uni_modules/uview-ui/libs/util/dayjs.js';
|
||||
import { decryptCfgSettingValue } from './common/cfgSettingCrypto.js';
|
||||
// #ifdef APP-PLUS
|
||||
var networkModule = uni.requireNativePlugin("NetworkUtils-NetworkUtilsModule")
|
||||
// #endif
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
timer: null, // 定时器引用
|
||||
backgroundTaskId: 0 // iOS 后台任务ID
|
||||
}
|
||||
},
|
||||
onLaunch: function() {
|
||||
this.initApp();
|
||||
// #ifdef APP-PLUS
|
||||
this.checkJailbreak();
|
||||
uni.getLocation({
|
||||
type: 'wgs84',
|
||||
success: (res) => {}
|
||||
});
|
||||
/*plus.globalEvent.addEventListener('newintent', (e)=>{
|
||||
var args= plus.runtime.arguments;
|
||||
console.log(args)
|
||||
uni.showToast({
|
||||
title: 'APP LAUNCH-newintent'
|
||||
});
|
||||
if(args){
|
||||
var code = this.getSchemeParam('code',args)
|
||||
uni.showToast({
|
||||
title: code
|
||||
});
|
||||
uni.redirectTo({
|
||||
url:'/pages/login/login?code='+encodeURIComponent(code)
|
||||
})
|
||||
}
|
||||
});*/
|
||||
// #endif
|
||||
},
|
||||
onShow: function() {
|
||||
//console.log("APP.vue:onShow()");
|
||||
// 监听网络状态变化
|
||||
/*uni.onNetworkStatusChange(function(res) {
|
||||
if (res.isConnected) {
|
||||
if (res.networkType === 'wifi') {
|
||||
console.log('网络已连接,并且是Wi-Fi');
|
||||
} else {
|
||||
console.log('网络已连接,但不是Wi-Fi');
|
||||
}
|
||||
} else {
|
||||
console.log('网络已断开');
|
||||
}
|
||||
});*/
|
||||
// #ifdef APP-PLUS
|
||||
this.getSettingByKey('MACAU_STRING');
|
||||
// #endif
|
||||
},
|
||||
onHide: function() {
|
||||
// #ifdef APP-PLUS
|
||||
this.stopTimer();
|
||||
// #endif
|
||||
},
|
||||
beforeDestroy() {
|
||||
// 组件销毁时清理资源
|
||||
// #ifdef APP-PLUS
|
||||
this.stopTimer();
|
||||
// #endif
|
||||
},
|
||||
methods:{
|
||||
startTimer() {
|
||||
// 先清除可能存在的旧定时器
|
||||
this.stopTimer();
|
||||
// 每60秒执行一次目标方法
|
||||
this.timer = setInterval(() => {
|
||||
this.checkLocationVPNByTimer(null);
|
||||
// this.checkToken()
|
||||
}, 10000);
|
||||
},
|
||||
// 停止定时器
|
||||
stopTimer() {
|
||||
if (this.timer) {
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
}
|
||||
},
|
||||
checkLocationVPNByTimer(type){
|
||||
let url = this.getCurrentUrl();
|
||||
if(
|
||||
url!==null && url!==undefined
|
||||
&& url.indexOf('logout')==-1
|
||||
&& url.indexOf('Logout')==-1
|
||||
&& url.indexOf('login')==-1
|
||||
&& url.indexOf('Login')==-1
|
||||
&& url.indexOf('setting')==-1
|
||||
&& url.indexOf('regionRestrict')==-1
|
||||
&& url.indexOf('callback')==-1
|
||||
&& url.indexOf('adfs')==-1
|
||||
){
|
||||
let siteData = uni.getStorageSync("siteData");
|
||||
//只有外网才检查
|
||||
if(siteData!==undefined && siteData!==null && siteData.internalTag===false)
|
||||
{
|
||||
this.checkLocationAndVPN(type);
|
||||
}
|
||||
}
|
||||
},
|
||||
async getSettingByKey(key){
|
||||
try{
|
||||
let params = {
|
||||
keyName : key
|
||||
}
|
||||
const res = await getCfgSettingByKey(params);
|
||||
const cfg = new config();
|
||||
if (res && res.data && res.data.keyValues) {
|
||||
res.data.keyValues = await decryptCfgSettingValue(res.data.keyValues, cfg.allowKey);
|
||||
}
|
||||
this.macauString = res.data;
|
||||
uni.setStorageSync("macauString",this.macauString.keyValues);
|
||||
}catch(e){
|
||||
console.log(e);
|
||||
}finally{
|
||||
this.startTimer();
|
||||
}
|
||||
},
|
||||
getCurrentUrl(){
|
||||
const pages = getCurrentPages();
|
||||
if (!pages.length) return null;
|
||||
// 获取当前页面实例
|
||||
const currentPage = pages[pages.length - 1];
|
||||
// 获取页面路径(如:pages/index/index)
|
||||
const route = currentPage.route;
|
||||
// 获取页面参数对象(如:{ id: 123 })
|
||||
const options = currentPage.options;
|
||||
// 拼接完整路径(带参数)
|
||||
let url = `/${route}`;
|
||||
const query = Object.keys(options).map(key =>
|
||||
`${key}=${encodeURIComponent(options[key])}`
|
||||
).join('&');
|
||||
if (query) url += `?${query}`;
|
||||
return url;
|
||||
},
|
||||
getSchemeParam(name,scheme) {
|
||||
var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");
|
||||
if (reg.test(scheme)) return unescape(RegExp.$2.replace(/\+/g, " "));
|
||||
return "";
|
||||
},
|
||||
async initApp(){
|
||||
// #ifdef APP-PLUS
|
||||
plus.screen.lockOrientation("portrait");
|
||||
// #endif
|
||||
await this.initCfg(); // 获取配置参数
|
||||
},
|
||||
// 初始化方法
|
||||
async initCfg(){
|
||||
// 配置站点信息
|
||||
const cfg = new config();
|
||||
// 判断外网还是内网
|
||||
// 現在內外網改成由後端判斷
|
||||
|
||||
// 如果是外网
|
||||
const userData = uni.getStorageSync('userData');
|
||||
const oldSiteData = uni.getStorageSync('siteData');
|
||||
let oldDebugMode = cfg.debugMode;
|
||||
let userId = "";
|
||||
if(oldSiteData!=undefined && oldSiteData!=null && oldSiteData!=''){
|
||||
oldDebugMode = oldSiteData.debugMode;
|
||||
}
|
||||
if(userData!=undefined && userData!=null && userData!=''){
|
||||
userId = userData.userId;
|
||||
}
|
||||
let isInternal = true;
|
||||
let macauString = "";
|
||||
let siteData = {
|
||||
internalUrl : cfg.internalUrl,
|
||||
externalUrl : cfg.externalUrl,
|
||||
apiPath : cfg.apiPath,
|
||||
internalTag : isInternal,
|
||||
macauIp: true,
|
||||
internalSSOUrl: cfg.internalSSOUrl,
|
||||
externalSSOUrl: cfg.externalSSOUrl,
|
||||
version:cfg.version,
|
||||
debugMode: true,
|
||||
mockSSO:false,
|
||||
mockTPD:false
|
||||
};
|
||||
store.dispatch('setSiteData',siteData);
|
||||
uni.setStorageSync('siteData', siteData);
|
||||
// 初始化uview http请求配置
|
||||
uni.$u.http.setConfig((config) => {
|
||||
if(isInternal){
|
||||
config.baseURL = store.state.siteData.internalUrl + store.state.siteData.apiPath;
|
||||
}
|
||||
else{
|
||||
config.baseURL = store.state.siteData.externalUrl + store.state.siteData.apiPath;
|
||||
}
|
||||
config.custom.auth = true;
|
||||
config.custom.origin = cfg.originUrl;
|
||||
config.custom.appId = cfg.appId;
|
||||
config.custom.allowKey = cfg.allowKey;
|
||||
|
||||
return config;
|
||||
})
|
||||
//this.writeLog(userId,"app_init","","[APP][App.vue][initCfg][Begin]","[SiteData]" + JSON.stringify(siteData),"",0,false);
|
||||
// 获取配置设备信息
|
||||
let safeArea = false;
|
||||
await uni.getSystemInfo({
|
||||
success: res => {
|
||||
//console.log(res.statusBarHeight);
|
||||
if (res.safeArea.top > 20) {
|
||||
//x及以上的异形屏top为44,非异形屏为20
|
||||
safeArea = true;
|
||||
}
|
||||
}
|
||||
})
|
||||
let info = uni.getSystemInfoSync()//获取设备信息
|
||||
let statusBarHeight = info.statusBarHeight
|
||||
let windowWidth = info.windowWidth
|
||||
let windowHeight = info.windowHeight
|
||||
const deviceData = {
|
||||
statusBarHeight : statusBarHeight,
|
||||
windowWidth : windowWidth,
|
||||
windowHeight : windowHeight,
|
||||
saveArea : safeArea,
|
||||
};
|
||||
store.dispatch('setDeviceData',deviceData);
|
||||
uni.setStorageSync('deviceData', deviceData);
|
||||
//this.writeLog(userId,"app_init","","[APP][App.vue][initCfg][End]","[DeviceData]"+JSON.stringify(deviceData),"",0,false);
|
||||
this.$isResolve();
|
||||
},
|
||||
// 全局函数,main.js中注册
|
||||
// 判断login
|
||||
isLogin(){
|
||||
let loginTag = false;
|
||||
let user = uni.getStorageSync('userData');
|
||||
let site = uni.getStorageSync('siteData');
|
||||
let timeOut = uni.getStorageSync('timeOut');
|
||||
let token = uni.getStorageSync("token")
|
||||
let clientId = uni.getStorageSync("clientId")
|
||||
var now = Math.floor(new Date().getTime() / 1000);
|
||||
if(user){
|
||||
loginTag = user.loginTag;
|
||||
}
|
||||
if(token==undefined||token==null||token==""||clientId==undefined||clientId==null||clientId==""){
|
||||
loginTag = false;
|
||||
}
|
||||
if(now >= timeOut) loginTag = false;
|
||||
if(loginTag!==true){
|
||||
uni.removeStorageSync("userData");
|
||||
uni.removeStorageSync("token");
|
||||
uni.removeStorageSync("idToken");
|
||||
this.navTo('/pages/login/login',2,false);
|
||||
}
|
||||
},
|
||||
//判断是否有Permission
|
||||
redirectByPermission(userData,needRedirect){
|
||||
if(userData!==null && userData!==undefined){
|
||||
if(userData.canViewDashboard){
|
||||
this.navTo('/pages/dashboard/dashboard',1,false);
|
||||
}else if(userData.canViewTodoList){
|
||||
this.navTo('/salessupport/todoList/todoList',1,false);
|
||||
}else if(userData.canViewBooking){
|
||||
this.navTo('/pages/findPlayer/findPlayer',1,false);
|
||||
}else{
|
||||
this.navTo('/pages/setting/setting',1,false);
|
||||
}
|
||||
}
|
||||
},
|
||||
//根据Permission显示Tabbar
|
||||
showTabbarByPermission(userData){
|
||||
if(userData!==null && userData!==undefined){
|
||||
console.log('Setting Tabbar');
|
||||
if(userData.canViewDashboard){
|
||||
uni.setTabBarItem({
|
||||
index:0,
|
||||
visible:true
|
||||
});
|
||||
}
|
||||
if(userData.canViewTodoList){
|
||||
uni.setTabBarItem({
|
||||
index:1,
|
||||
visible:true
|
||||
});
|
||||
}
|
||||
if(userData.canViewBooking){
|
||||
uni.setTabBarItem({
|
||||
index:2,
|
||||
visible:true
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
// 返回
|
||||
navBack(delta){
|
||||
if(delta){
|
||||
uni.navigateBack({
|
||||
delta: delta
|
||||
});
|
||||
}
|
||||
else{
|
||||
uni.navigateBack();
|
||||
}
|
||||
},
|
||||
checkJailbreak(){
|
||||
// 调用同步方法
|
||||
networkModule.checkJailbreakAsync({
|
||||
}, (result) => {
|
||||
if(result.status === 'success'){
|
||||
if(result.isJailbroken==true){
|
||||
this.stopTimer();
|
||||
this.navTo('/pages/disableApp/disableApp',0,false); //2
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
checkLocationAndVPN(type){
|
||||
let objVPNData = this.checkVPNOpen();
|
||||
let isOpenVPN = false;
|
||||
let ipAddress = "";
|
||||
let userId = "";
|
||||
let userData = uni.getStorageSync("userData");
|
||||
if(userData!==undefined && userData!==null && userData!=="" && userData.userId!==undefined && userData.userId!==null && userData.userId!==""){
|
||||
userId = userData.userId;
|
||||
}
|
||||
this.writeLog(userId,"getLocationVPN","","[APP][App.vue][checkLocationAndVPN][Success]step1","","",1,false);
|
||||
if(objVPNData === null)
|
||||
{
|
||||
isOpenVPN = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
isOpenVPN = objVPNData.isVPNConnected;
|
||||
ipAddress = objVPNData.ipAddress;
|
||||
}
|
||||
this.writeLog(userId,"getLocationVPN","","[APP][App.vue][checkLocationAndVPN][Success]vpn:"+isOpenVPN,"","",1,false);
|
||||
//检查如果使用了VPN或不在澳门
|
||||
// let isInMacau = this.checkInMacau();
|
||||
// 在页面中请求定位权限
|
||||
uni.getLocation({
|
||||
type: 'wgs84',
|
||||
success: (res) => {
|
||||
this.writeLog(userId,"getLocationVPN","","[APP][App.vue][checkLocationAndVPN][Success]step3","","",1,false);
|
||||
const converter = new FixedCoordinateConverter();
|
||||
//console.log('经纬度数据:', res);
|
||||
const gcjPoint = converter.wgs84ToGcj02Fixed(res.latitude, res.longitude);
|
||||
//console.log(gcjPoint);
|
||||
networkModule.getCityNameByCoordinate({
|
||||
latitude: gcjPoint.lat,
|
||||
longitude: gcjPoint.lng
|
||||
//latitude: res.latitude,
|
||||
//longitude: res.longitude
|
||||
|
||||
//模拟澳门IP
|
||||
// latitude: 22.142149,
|
||||
// longitude: 113.562888,
|
||||
//模拟澳门IP
|
||||
|
||||
}, (result) => {
|
||||
let msgType = "0";
|
||||
if (result.status === 'success') {
|
||||
let isInMacau = (result.isInMacau == 'YES')? true:false;
|
||||
/*uni.showToast({
|
||||
title:'城市:' + result.city + ',地址:'+result.fullAddress,
|
||||
icon: "none"
|
||||
})*/
|
||||
this.writeLog(userId,"getLocationVPN","","[APP][App.vue][checkLocationAndVPN][Success]"+result.isInMacau+ ", city:"+result.city+ ", address:"+result.fullAddress+ ", IP address:"+ipAddress,"","",1,false);
|
||||
/*uni.showToast({
|
||||
title:'是否在澳门:'+isInMacau+',是否使用VPN:'+isOpenVPN,
|
||||
icon: "none"
|
||||
})*/
|
||||
if(!isInMacau){
|
||||
let macauStringList = uni.getStorageSync("macauString").split(";");
|
||||
for(let i=0;i<macauStringList.length;i++){
|
||||
if(result.fullAddress.indexOf(macauStringList[i]) !== -1
|
||||
&& macauStringList[i] !== "" && macauStringList[i] !== null){
|
||||
isInMacau = true;
|
||||
break;
|
||||
}else{
|
||||
isInMacau = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
//isInMacau = true;
|
||||
// isOpenVPN = false;
|
||||
if((isInMacau===null||isInMacau===undefined) && isOpenVPN!==null){ //调用地址出错
|
||||
msgType = "1";
|
||||
}
|
||||
else if((isInMacau!==null&&isInMacau!==undefined) && isOpenVPN===null){ //调用VPN出错
|
||||
msgType = "2";
|
||||
}
|
||||
else if((isInMacau===null||isInMacau===undefined) && isOpenVPN===null){ //调用地址和VPN出错
|
||||
msgType = "3";
|
||||
}
|
||||
else if(isInMacau === false && isOpenVPN===false){ //不在澳门,没开了VPN,不通过
|
||||
msgType = "4";
|
||||
}
|
||||
else if(isInMacau === true && isOpenVPN===true){ //在澳门,但是开了VPN,不通过
|
||||
msgType = "5";
|
||||
}
|
||||
else if(isInMacau === false && isOpenVPN===true){ //不在澳门,开了VPN,不通过
|
||||
msgType = "6";
|
||||
}
|
||||
else if(isInMacau===null||isInMacau===undefined){ //调用地址出错
|
||||
msgType = "1";
|
||||
}
|
||||
//重新调用isMacauApi 获取定位信息
|
||||
|
||||
let siteData = uni.getStorageSync("siteData");
|
||||
this.writeLog(userId,"getLocationVPN","","[APP][App.vue][checkLocationAndVPN][Success]Site data:"+JSON.stringify(siteData)+"IsInMacau:"+isInMacau,"","",1,false);
|
||||
if(siteData.internalTag==false && siteData.macauIp == false){
|
||||
msgType = "7";
|
||||
}
|
||||
} else {
|
||||
msgType = "1";
|
||||
/*uni.showToast({
|
||||
title:'错误:' + result.error + ", latitude:"+res.latitude+ ", longitude:"+res.longitude,
|
||||
icon: "none"
|
||||
})*/
|
||||
this.writeLog(userId,"getLocationVPN","","[APP][App.vue][checkLocationAndVPN][Error]"+result.error+ ", old latitude:"+res.latitude+ ", old longitude:"+res.longitude+ ", latitude:"+gcjPoint.lat+ ", longitude:"+gcjPoint.lng+ ", IP address:"+ipAddress,"","",1,false);
|
||||
}
|
||||
if(msgType!=="0" && type!==true){
|
||||
//跳转去一个页面
|
||||
this.navTo('/pages/regionRestrict/regionRestrict?type='+msgType,0,false); //2
|
||||
}
|
||||
if(msgType==="0" && type === true){ // retry的情况
|
||||
this.navBack();
|
||||
}
|
||||
else if(msgType==="0" && type === false){ //登录的情况
|
||||
let userData= uni.getStorageSync("userData");
|
||||
this.redirectByPermission(userData,true);
|
||||
}
|
||||
});
|
||||
},
|
||||
fail: (err) => {
|
||||
/*uni.showToast({
|
||||
title:'uni.getLocation fail',
|
||||
icon: "none"
|
||||
});*/
|
||||
this.writeLog(userId,"getLocationVPN","","[APP][App.vue][checkLocationAndVPN][Error]uni.getLocation fail"+ ", IP address:"+ipAddress,"","",1,false);
|
||||
this.navTo('/pages/regionRestrict/regionRestrict?type=1',0,false);
|
||||
}
|
||||
});
|
||||
},
|
||||
checkVPNOpen() {
|
||||
// 调用同步方法
|
||||
let ret = networkModule.checkVPNSync({'testVPN': 'Sync'})
|
||||
let respData = JSON.parse(ret);
|
||||
if(respData.status === 'success'){
|
||||
return respData;
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
/*uni.showToast({
|
||||
title:'是否连接VPN:' + respData.isVPNConnected + ',IP地址:'+ respData.ipAddress + ',状态:'+ respData.status,
|
||||
icon: "none"
|
||||
})*/
|
||||
},
|
||||
// 跳转
|
||||
async writeLog(userId,eventCode,transactionId,description,requestBody,responseBody,successTag,debugTag){
|
||||
|
||||
if(debugTag===undefined || debugTag===false){
|
||||
const siteData = uni.getStorageSync('siteData');
|
||||
if(siteData.debugMode==false){
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
let obj = {};
|
||||
obj.loginId = userId;
|
||||
obj.eventCode = eventCode;
|
||||
obj.transId = transactionId;
|
||||
obj.logDesc = description;
|
||||
obj.requestBody = requestBody;
|
||||
obj.responseBody = responseBody;
|
||||
obj.tagSuccess = successTag;
|
||||
|
||||
//console.log(obj);
|
||||
|
||||
try{
|
||||
const response = await writeDebugLog(obj);
|
||||
}
|
||||
catch(e){
|
||||
console.error(e.errMsg);
|
||||
}
|
||||
|
||||
},
|
||||
async logout(){
|
||||
let siteData = uni.getStorageSync("siteData");
|
||||
let userData = uni.getStorageSync("userData");
|
||||
uni.showLoading({
|
||||
title: this.$t("common.loading")
|
||||
});
|
||||
try{
|
||||
let params = {};
|
||||
const res = await logout(params);
|
||||
if(res.success == true){
|
||||
if(res.data !== null){
|
||||
uni.setTabBarItem({
|
||||
index:0,
|
||||
visible:false
|
||||
});
|
||||
uni.setTabBarItem({
|
||||
index:1,
|
||||
visible:false
|
||||
});
|
||||
uni.setTabBarItem({
|
||||
index:2,
|
||||
visible:false
|
||||
});
|
||||
if(siteData.mockSSO==false&&!siteData.internalTag){
|
||||
//this.logoutWithADFSApp()
|
||||
uni.redirectTo({
|
||||
url:'/pages/azureLogout/azureLogout'
|
||||
});
|
||||
}else{
|
||||
uni.removeStorageSync("userData");
|
||||
uni.removeStorageSync("token");
|
||||
uni.removeStorageSync("idToken");
|
||||
this.navTo('/pages/login/login',2,false);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(siteData.mockSSO==false&&!siteData.internalTag){
|
||||
//this.logoutWithADFSApp()
|
||||
uni.redirectTo({
|
||||
url:'/pages/azureLogout/azureLogout'
|
||||
});
|
||||
}else{
|
||||
uni.removeStorageSync("userData");
|
||||
uni.removeStorageSync("token");
|
||||
uni.removeStorageSync("idToken");
|
||||
this.navTo('/pages/login/login',2,false);
|
||||
}
|
||||
}
|
||||
}catch(e){
|
||||
console.error(e);
|
||||
uni.$u.toast(e.errMsg,5000);
|
||||
await this.writeLog(userData.userId,"logout","","[APP][setting.vue][logout][Catch Exception]"+e.errMsg,"","",1,false);
|
||||
}finally{
|
||||
uni.hideLoading();
|
||||
}
|
||||
},
|
||||
async navTo(url,type,auth){
|
||||
let token = uni.getStorageSync('token');
|
||||
if(token){
|
||||
const response = await verifyToken({});
|
||||
if(response.status==200){
|
||||
|
||||
}else{
|
||||
console.error(response)
|
||||
}
|
||||
}
|
||||
if(auth==true){
|
||||
let user = uni.getStorageSync('userData');
|
||||
let loginTag = false;
|
||||
if(user){
|
||||
loginTag = user.loginTag;
|
||||
}
|
||||
if(loginTag==true){
|
||||
if(type===1)
|
||||
{
|
||||
uni.switchTab({
|
||||
url
|
||||
})
|
||||
}
|
||||
else if(type===2)
|
||||
{
|
||||
uni.redirectTo({
|
||||
url
|
||||
})
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
url
|
||||
})
|
||||
}
|
||||
}else{
|
||||
uni.showModal({
|
||||
title: this.$t("common.warning"),
|
||||
content: this.$t("common.loginAlert"),
|
||||
cancelText: this.$t("common.cancel"), // 取消按钮的文字
|
||||
confirmText: this.$t("common.login"), // 确认按钮的文字
|
||||
showCancel: true, // 是否显示取消按钮,默认为 true
|
||||
confirmColor: '#C39A4B',
|
||||
success: (res) => {
|
||||
if(res.confirm) {
|
||||
uni.redirectTo({
|
||||
url:'/pages/login/login'
|
||||
})
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
})
|
||||
return;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(type===1)
|
||||
{
|
||||
uni.switchTab({
|
||||
url
|
||||
})
|
||||
}
|
||||
else if(type===2)
|
||||
{
|
||||
uni.redirectTo({
|
||||
url
|
||||
})
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
url
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
kickout() {
|
||||
uni.removeStorageSync("userData");
|
||||
uni.removeStorageSync("token");
|
||||
uni.removeStorageSync("idToken");
|
||||
uni.removeStorageSync("clientId");
|
||||
uni.redirectTo({
|
||||
url:'/pages/login/login'
|
||||
})
|
||||
},
|
||||
checkToken(){
|
||||
let now = Math.floor(new Date().getTime() / 1000);
|
||||
let tokenTime = uni.getStorageSync("tokenTime");
|
||||
let token = uni.getStorageSync("token")
|
||||
//4 min refresh token
|
||||
if(token!="" && now - tokenTime>240){
|
||||
let oldToken = uni.getStorageSync("token");
|
||||
if (oldToken !== null && oldToken !== '') {
|
||||
return refreshToken({})
|
||||
.then((data) => {
|
||||
uni.setStorageSync("token",data.token);
|
||||
uni.setStorageSync("tokenTime",dayjs().unix());
|
||||
return Promise.resolve(true)
|
||||
})
|
||||
.catch(error => {
|
||||
this.kickout()
|
||||
})
|
||||
} else {
|
||||
this.kickout()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
/*每个页面公共css */
|
||||
@import './static/css/custom.scss';
|
||||
@import "@/uni_modules/uview-ui/index.scss";
|
||||
</style>
|
||||
Reference in New Issue
Block a user