1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <template>
- <div id="index" v-loading.fullscreen.lock="fullscreenLoading" :element-loading-text="$t('common.route_loading')"></div>
- </template>
- <script setup>
- import { getUserMeta, addUserRoutes } from '@/router/register'
- import { UserStore } from '@/store/user'
- import { onMounted } from 'vue'
- import { useRouter, useRoute } from 'vue-router'
- import { get } from 'lodash-es'
- import i18n from '@/lang'
- import { ElMessageBox } from 'element-plus'
- const fullscreenLoading = ref(true)
- const router = useRouter()
- const route = useRoute()
- const userStore = UserStore()
- // 进了这个页面了.那就是重来注册一遍路由了
- const token = localStorage.getItem('token')
- onMounted(async () => {
- // 1.获取用户目录
- const reqResult = await getUserMeta(token)
- if (reqResult.errcode !== 0) {
- // 处理异常
- return
- }
- const menus = get(reqResult, 'menus')
- if (menus.length <= 0) {
- const nowRouteFullPath = router.currentRoute.value.fullPath
- ElMessageBox.confirm(i18n.global.t('error.USER_PERMISSION_ERROR'), i18n.global.t('common.user_confirm'), {
- confirmButtonText: i18n.global.t('common.re_login'),
- cancelButtonText: i18n.global.t('common.reload'),
- type: 'error'
- })
- .then(() => {
- if (nowRouteFullPath !== '/login') window.location.href = `${import.meta.env.VITE_BASE_URL}/login`
- })
- .catch(() => {
- if (nowRouteFullPath !== '/login') location.reload()
- })
- }
- // 注册路由
- await addUserRoutes(menus, router)
- userStore.setMenus(menus)
- const rRoute = toRaw(route)
- let redirectPath = get(rRoute, 'query.redirectPath')
- if (!redirectPath) redirectPath = '/'
- router.push(redirectPath)
- })
- </script>
- <style scoped></style>
|