routes.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { open, close } from '/src/helpers/loading'
  2. const getRouterComponent = (name: string) => async () => {
  3. const timer = setTimeout(() => {
  4. open()
  5. }, 300)
  6. let res: Promise<any> = Promise.resolve(null)
  7. try {
  8. res = await import(/* @vite-ignore */ `../src/pages/${name}/index.tsx`)
  9. } catch (error) {
  10. res = Promise.reject()
  11. }
  12. clearTimeout(timer)
  13. close()
  14. return res
  15. }
  16. export default [
  17. {
  18. path: '/',
  19. component: getRouterComponent('baseClass'),
  20. },
  21. {
  22. path: '/classify',
  23. component: getRouterComponent('classify')
  24. },
  25. {
  26. path: '/list/:id',
  27. component: getRouterComponent('list'),
  28. meta: {
  29. keepAlive: true
  30. }
  31. },
  32. { path: '/detail/:id', component: getRouterComponent('detail') },
  33. { path: '/evaluating/:id', component: getRouterComponent('detail') },
  34. { path: '/report', component: getRouterComponent('report') },
  35. { path: '/report/:id', component: getRouterComponent('report') },
  36. { path: '/render-test', component: getRouterComponent('render-test') },
  37. { path: '/vexflow-test', component: import('./vexflow-test') },
  38. {
  39. path: '/:pathMatch(.*)*',
  40. component: getRouterComponent('notfund'),
  41. meta: {
  42. title: '404 Not Fund'
  43. }
  44. },
  45. ]