| | |
| | | import { useUserInfo } from '@/stores/modules/userInfo' |
| | | import { useCommonInfo } from '@/stores/modules/common' // 状态管理器 |
| | | import { useNavTabs } from '@/stores/modules/navTabs' // 标签导航 |
| | | import { queryUserDetail } from '@/api/userInfo' |
| | | |
| | | const router = createRouter({ |
| | | history: createWebHistory('/manage/'), |
| | |
| | | return { top: 0 } |
| | | }, |
| | | }) |
| | | router.beforeEach((to, from, next) => { |
| | | router.beforeEach(async (to, from, next) => { |
| | | console.log("to",to) |
| | | const userStore = useUserInfo() |
| | | // * 在跳转路由之前,清除所有的请求 |
| | |
| | | } |
| | | // 如果没有token,设置一个默认token并继续 |
| | | if (!userStore.getAdminToken) { |
| | | const localUserInfo = localStorage.getItem('userInfo') |
| | | if (localUserInfo) { |
| | | const userInfo = JSON.parse(localUserInfo) |
| | | if (userInfo.adminToken) { |
| | | const obj: any = { |
| | | adminToken: 'dev-token', |
| | | adminToken: userInfo.adminToken, |
| | | screenToken: '', |
| | | } |
| | | userStore.updateUserInfo(obj) |
| | | } |
| | | } |
| | | } |
| | | next() |
| | | return |
| | |
| | | } else { |
| | | if (to.query.token) { |
| | | const token = to.query.token as string |
| | | localStorage.setItem('lastRecordTime', new Date().getTime()) |
| | | localStorage.setItem('lastRecordTime', new Date().getTime().toString()) |
| | | const obj: any = { |
| | | adminToken: token, |
| | | screenToken: '', |
| | | } |
| | | userStore.updateUserInfo(obj) |
| | | const localUserInfo = localStorage.getItem('userInfo') |
| | | if (localUserInfo) { |
| | | const userInfo = JSON.parse(localUserInfo) |
| | | userStore.updateUserDetail(userInfo) |
| | | } |
| | | // chrome |
| | | document.body.scrollTop = 0 |
| | | // firefox |
| | |
| | | window.pageYOffset = 0 |
| | | next() |
| | | } else if (!userStore.getAdminToken) { |
| | | // 如果没有,则跳至登录页面 |
| | | next({ path: '/loginT' }) |
| | | // 从 localStorage 中获取 userInfo 的 adminToken |
| | | const localUserInfo = localStorage.getItem('userInfo') |
| | | if (localUserInfo) { |
| | | try { |
| | | const userInfo = JSON.parse(localUserInfo) |
| | | if (userInfo.adminToken) { |
| | | // 如果获取到 adminToken,则更新 userStore |
| | | userStore.updateUserInfo({ |
| | | adminToken: userInfo.adminToken, |
| | | screenToken: userInfo.screenToken || '', |
| | | fullUnitName: userInfo.fullUnitName || '', |
| | | empCode: userInfo.empCode || '', |
| | | menuList: userInfo.menuList || [] |
| | | }) |
| | | // 同时更新用户详细信息 |
| | | userStore.updateUserDetail(userInfo) |
| | | next() |
| | | } else { |
| | | // 如果没有 adminToken,则用户未登录 |
| | | next({ path: '/loginT' }) |
| | | } |
| | | } catch (error) { |
| | | console.error('解析 localStorage 中的 userInfo 失败:', error) |
| | | // 解析失败,认为用户未登录 |
| | | next({ path: '/loginT' }) |
| | | } |
| | | } else { |
| | | // 如果没有 userInfo,则用户未登录 |
| | | next({ path: '/loginT' }) |
| | | } |
| | | } else { |
| | | // 获取用户信息 |
| | | const localUserInfo = localStorage.getItem('userInfo') |
| | | if (localUserInfo) { |
| | | const userInfo = JSON.parse(localUserInfo) |
| | | userStore.updateUserDetail(userInfo) |
| | | } |
| | | next() |
| | | } |
| | | } |