util.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import loginApi from '@/api/auth/loginApi'
  2. import userCenterApi from '@/api/sys/userCenterApi'
  3. import dictApi from '@/api/dev/dictApi'
  4. import router from '@/router'
  5. import tool from '@/utils/tool'
  6. import { message } from 'ant-design-vue'
  7. import { useGlobalStore, useMyResourceStore } from '@/store'
  8. import routerUtil from '@/utils/routerUtil'
  9. export const afterLogin = async (loginToken,callBack) => {
  10. tool.data.set('TOKEN', loginToken)
  11. //cookie里添加 token
  12. tool.cookie.set('Token', loginToken)
  13. // 获取登录的用户信息
  14. const loginUser = await loginApi.getLoginUser()
  15. const globalStore = useGlobalStore()
  16. const myResourceStore = useMyResourceStore()
  17. if(loginUser.expired == 1 && callBack){
  18. tool.data.remove('TOKEN', loginToken)
  19. tool.cookie.remove('Token', loginToken)
  20. message.error('密码已过期')
  21. callBack()
  22. }else{
  23. globalStore.setUserInfo(loginUser)
  24. myResourceStore.getUserInfo()
  25. tool.data.set('USER_INFO', loginUser)
  26. // 获取用户的菜单
  27. const menu = await userCenterApi.userLoginMenu()
  28. let indexMenu = routerUtil.getIndexMenu(menu).path
  29. tool.data.set('MENU', menu)
  30. // 重置系统默认应用
  31. tool.data.set('SNOWY_MENU_MODULE_ID', menu[0].id)
  32. message.success('登录成功')
  33. if (!!tool.data.get('LAST_VIEWS_PATH')) {
  34. // 如果有缓存,将其登录跳转到最后访问的路由
  35. indexMenu = tool.data.get('LAST_VIEWS_PATH')
  36. }
  37. // 如果存在退出后换新账号登录,进行重新匹配,匹配无果则默认首页
  38. if (menu) {
  39. let routerTag = 0
  40. menu.forEach((item) => {
  41. if (item.children) {
  42. if (JSON.stringify(item.children).indexOf(indexMenu) > -1) {
  43. routerTag++
  44. }
  45. }
  46. })
  47. if (routerTag === 0) {
  48. // 取首页
  49. indexMenu = routerUtil.getIndexMenu(menu).path
  50. }
  51. }
  52. dictApi.dictTree().then((data) => {
  53. // 设置字典到store中
  54. tool.data.set('DICT_TYPE_TREE_DATA', data)
  55. })
  56. await router.replace({
  57. path: indexMenu
  58. })
  59. }
  60. }