index.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import { createRouter, createWebHistory } from 'vue-router';
  2. import Layout from '@/layout/index.vue';
  3. import type { RouteRecordRaw } from 'vue-router';
  4. export const routerName = {
  5. home: 'home',
  6. about: 'about',
  7. rank: 'rank',
  8. sponsors: 'sponsors',
  9. support: 'support',
  10. order: 'order',
  11. shop: 'shop',
  12. link: 'link',
  13. ad: 'ad',
  14. faq: 'faq',
  15. team: 'team',
  16. oauth: 'oauth',
  17. release: 'release',
  18. notFound: 'notFound',
  19. group: 'group',
  20. pull: 'pull',
  21. push: 'push',
  22. };
  23. // 默认路由
  24. export const defaultRoutes: RouteRecordRaw[] = [
  25. {
  26. path: '/',
  27. component: Layout,
  28. children: [
  29. {
  30. name: routerName.home,
  31. path: '/',
  32. component: () => import('@/views/home/index.vue'),
  33. },
  34. {
  35. name: routerName.about,
  36. path: '/about',
  37. children: [
  38. {
  39. name: routerName.group,
  40. path: 'group',
  41. component: () => import('@/views/group/index.vue'),
  42. },
  43. {
  44. name: routerName.faq,
  45. path: 'faq',
  46. component: () => import('@/views/faq/index.vue'),
  47. },
  48. {
  49. name: routerName.team,
  50. path: 'team',
  51. component: () => import('@/views/team/index.vue'),
  52. },
  53. {
  54. name: routerName.release,
  55. path: 'release',
  56. component: () => import('@/views/release/index.vue'),
  57. },
  58. ],
  59. },
  60. {
  61. name: routerName.rank,
  62. path: '/rank',
  63. component: () => import('@/views/rank/index.vue'),
  64. },
  65. {
  66. name: routerName.shop,
  67. path: '/shop',
  68. component: () => import('@/views/shop/index.vue'),
  69. },
  70. {
  71. name: routerName.sponsors,
  72. path: '/sponsors',
  73. component: () => import('@/views/sponsors/index.vue'),
  74. },
  75. {
  76. name: routerName.support,
  77. path: '/support',
  78. component: () => import('@/views/support/index.vue'),
  79. },
  80. {
  81. name: routerName.order,
  82. path: '/order',
  83. component: () => import('@/views/order/index.vue'),
  84. },
  85. {
  86. name: routerName.ad,
  87. path: '/ad',
  88. component: () => import('@/views/ad/index.vue'),
  89. },
  90. {
  91. name: routerName.pull,
  92. path: '/pull/:roomId',
  93. component: () => import('@/views/pull/index.vue'),
  94. },
  95. {
  96. name: routerName.push,
  97. path: '/push',
  98. component: () => import('@/views/push/index.vue'),
  99. },
  100. ],
  101. },
  102. {
  103. name: routerName.oauth,
  104. path: '/oauth/:platform',
  105. component: () => import('@/views/oauth/index.vue'),
  106. },
  107. ];
  108. const router = createRouter({
  109. routes: [
  110. ...defaultRoutes,
  111. {
  112. path: '/:pathMatch(.*)*',
  113. name: routerName.notFound,
  114. component: () => import('@/views/notFound.vue'),
  115. },
  116. ],
  117. history: createWebHistory(),
  118. });
  119. export default router;