2025-06-30 14:43:02 +08:00
|
|
|
|
import config from "./config.js"
|
|
|
|
|
const initApp = function(vm) {
|
|
|
|
|
/**
|
|
|
|
|
* 页面跳转拦截器
|
|
|
|
|
*/
|
|
|
|
|
let that = vm;
|
|
|
|
|
let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
|
|
|
|
|
list.forEach(item => { //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
|
|
|
|
|
uni.addInterceptor(item, {
|
|
|
|
|
invoke(e) { // 调用前拦截
|
|
|
|
|
//获取用户的token
|
|
|
|
|
// console.log(e)
|
|
|
|
|
const token = that.vuex_token,
|
|
|
|
|
//获取要跳转的页面路径(url去掉"?"和"?"后的参数)
|
|
|
|
|
url = e.url.split('?')[0];
|
|
|
|
|
let notNeed = config.whiteList.includes(url)
|
|
|
|
|
// 如果在whiteList里面就不需要登录
|
|
|
|
|
// console.log(notNeed)
|
|
|
|
|
|
|
|
|
|
if (notNeed) {
|
|
|
|
|
return e
|
|
|
|
|
} else {
|
|
|
|
|
//需要登录
|
|
|
|
|
if (token == '') {
|
|
|
|
|
// uni.showToast({
|
|
|
|
|
// title: '请先登录',
|
|
|
|
|
// icon: 'none'
|
|
|
|
|
// })
|
2025-07-04 15:26:46 +08:00
|
|
|
|
// uni.navigateTo({
|
|
|
|
|
// url: config.loginPage
|
|
|
|
|
// })
|
2025-06-30 14:43:02 +08:00
|
|
|
|
uni.navigateTo({
|
2025-07-04 15:26:46 +08:00
|
|
|
|
url: '/'
|
2025-06-30 14:43:02 +08:00
|
|
|
|
})
|
|
|
|
|
return false
|
|
|
|
|
} else {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
fail(err) { // 失败回调拦截
|
|
|
|
|
console.log(err)
|
|
|
|
|
// if (Debug) {
|
|
|
|
|
// uni.showModal({
|
|
|
|
|
// content: JSON.stringify(err),
|
|
|
|
|
// showCancel: false
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
export default {
|
|
|
|
|
initApp: initApp
|
|
|
|
|
}
|