mirror of
https://gitee.com/niucloud-team/niucloud-admin.git
synced 2025-12-12 10:52:48 +00:00
75 lines
1.9 KiB
Vue
75 lines
1.9 KiB
Vue
<script setup lang="ts">
|
||
import { onLaunch, onShow, onHide } from '@dcloudio/uni-app'
|
||
import manifest from '@/manifest.json'
|
||
import { redirectInterceptor, launchInterceptor } from '@/utils/interceptor'
|
||
import { getToken, isWeixinBrowser, getSiteId } from '@/utils/common'
|
||
import useMemberStore from '@/stores/member'
|
||
import useConfigStore from '@/stores/config'
|
||
import useSystemStore from '@/stores/system'
|
||
import { useLogin } from '@/hooks/useLogin'
|
||
import { language } from '@/locale'
|
||
|
||
// #ifdef H5
|
||
if (import.meta.env.VITE_APP_DEBUG) { new window.VConsole() }
|
||
// #endif
|
||
|
||
onLaunch(async (data) => {
|
||
// 添加初始化拦截器
|
||
launchInterceptor()
|
||
// 添加页面跳转拦截器
|
||
redirectInterceptor()
|
||
|
||
// #ifdef H5
|
||
uni.getSystemInfoSync().platform == 'ios' && (uni.setStorageSync('initUrl', location.href))
|
||
|
||
// 缺少站点id,拦截
|
||
if (process.env.NODE_ENV == 'development' && (getSiteId(uni.getStorageSync('wap_site_id') || import.meta.env.VITE_SITE_ID) === '')) return;
|
||
// #endif
|
||
|
||
|
||
const configStore = useConfigStore()
|
||
configStore.getTabbarConfig()
|
||
await configStore.getLoginConfig()
|
||
|
||
useSystemStore().getSitenfo()
|
||
|
||
// 隐藏tabbar
|
||
uni.hideTabBar()
|
||
|
||
// 判断是否已登录
|
||
if (getToken()) {
|
||
const memberStore = useMemberStore()
|
||
await memberStore.setToken(getToken())
|
||
}
|
||
|
||
if (!getToken()) {
|
||
const login = useLogin()
|
||
// 三方平台自动登录
|
||
// #ifdef MP
|
||
login.getAuthCode()
|
||
// #endif
|
||
// #ifdef H5
|
||
if (isWeixinBrowser()) {
|
||
data.query.code ? login.authLogin(data.query.code) : login.getAuthCode('snsapi_userinfo')
|
||
}
|
||
// #endif
|
||
}
|
||
|
||
// 监听浏览器返回
|
||
// #ifdef H5
|
||
window.addEventListener("popstate", function (e) {
|
||
const path = '/' + location.pathname.replace(manifest.h5.router.base, '')
|
||
language.loadLocaleMessages(path, uni.getLocale())
|
||
}, false);
|
||
// #endif
|
||
})
|
||
|
||
onShow(() => {
|
||
|
||
})
|
||
|
||
onHide(() => {
|
||
})
|
||
</script>
|
||
|
||
<style></style> |