index.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { message } from 'ant-design-vue'
  2. import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
  3. import { ELocalStorageKey, ERouterName, EUserType } from '/@/types'
  4. import CreatePlan from '/@/components/task/CreatePlan.vue'
  5. import WaylinePanel from '/@/pages/page-web/projects/wayline.vue'
  6. import DockPanel from '/@/pages/page-web/projects/dock.vue'
  7. import { apis, SignLoginApiParams } from '/@/api/custom/index'
  8. const routes: Array<RouteRecordRaw> = [
  9. {
  10. path: '/',
  11. redirect: '/' + ERouterName.PROJECT
  12. },
  13. {
  14. path: '/' + ERouterName.PROJECT,
  15. name: ERouterName.PROJECT,
  16. component: () => import('/@/pages/page-web/index.vue')
  17. },
  18. {
  19. path: '/' + ERouterName.HOME,
  20. name: ERouterName.HOME,
  21. component: () => import('/@/pages/page-web/home.vue'),
  22. children: [
  23. {
  24. path: '/' + ERouterName.DEVICES,
  25. name: ERouterName.DEVICES,
  26. component: () => import('/@/pages/page-web/projects/devices.vue')
  27. },
  28. {
  29. path: '/' + ERouterName.WORKSPACE,
  30. name: ERouterName.WORKSPACE,
  31. component: () => import('/@/pages/page-web/projects/workspace.vue'),
  32. },
  33. {
  34. path: '/' + ERouterName.TASK,
  35. name: ERouterName.TASK,
  36. component: () => import('/@/pages/page-web/projects/wayline.vue')
  37. },
  38. {
  39. path: '/' + ERouterName.MEDIA,
  40. name: ERouterName.MEDIA,
  41. component: () => import('/@/pages/page-web/projects/media/index/index.vue')
  42. },
  43. {
  44. path: '/' + ERouterName.MEDIA + '/:id',
  45. name: ERouterName.MEDIA + '/:id',
  46. component: () => import('/@/pages/page-web/projects/media/detail/index.vue')
  47. },
  48. {
  49. path: '/' + ERouterName.TRAJECTORY,
  50. name: ERouterName.TRAJECTORY,
  51. component: () => import('/@/pages/page-web/projects/trajectory/index.vue')
  52. },
  53. {
  54. path: '/' + ERouterName.MEMBER,
  55. name: ERouterName.MEMBER,
  56. component: () => import('/@/pages/page-web/projects/member/index.vue')
  57. },
  58. ]
  59. },
  60. {
  61. path: '/mediaInfo',
  62. component: () => import('/@/pages/page-web/projects/mediaInfo/index.vue')
  63. },
  64. {
  65. path: '/' + ERouterName.PILOT,
  66. name: ERouterName.PILOT,
  67. component: () => import('/@/pages/page-pilot/pilot-index.vue'),
  68. },
  69. {
  70. path: '/' + ERouterName.PILOT_HOME,
  71. component: () => import('/@/pages/page-pilot/pilot-home.vue')
  72. },
  73. {
  74. path: '/' + ERouterName.PILOT_MEDIA,
  75. component: () => import('/@/pages/page-pilot/pilot-media.vue')
  76. },
  77. {
  78. path: '/' + ERouterName.PILOT_LIVESHARE,
  79. component: () => import('/@/pages/page-pilot/pilot-liveshare.vue')
  80. },
  81. {
  82. path: '/' + ERouterName.PILOT_BIND,
  83. component: () => import('/@/pages/page-pilot/pilot-bind.vue')
  84. }
  85. ]
  86. const router = createRouter({
  87. history: createWebHistory(import.meta.env.BASE_URL),
  88. routes
  89. })
  90. const updateToken = async (data: SignLoginApiParams) => {
  91. try {
  92. const result = await apis.signLogin(data);
  93. if (result.code === 0) {
  94. localStorage.setItem(ELocalStorageKey.Token, result.data.access_token)
  95. localStorage.setItem(ELocalStorageKey.WorkspaceId, result.data.workspace_id)
  96. localStorage.setItem(ELocalStorageKey.Username, result.data.username)
  97. localStorage.setItem(ELocalStorageKey.UserId, result.data.user_id)
  98. localStorage.setItem(ELocalStorageKey.Flag, EUserType.Web.toString())
  99. } else {
  100. message.error(result.message)
  101. }
  102. } catch (e) {
  103. console.error(e);
  104. }
  105. }
  106. router.beforeEach(async (to, from, next) => {
  107. const { username, client_id, timestamp, workspace_id, workspace_name, signature } = to.query as any;
  108. if (username && client_id && timestamp && workspace_id && workspace_name && signature) {
  109. localStorage.clear()
  110. await updateToken({ username, client_id, timestamp, workspace_id, workspace_name, signature })
  111. next();
  112. } else {
  113. next();
  114. }
  115. })
  116. export default router