router.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * Created by Yooke on 2017/2/13.
  3. */
  4. import Home from './components/Home.vue'
  5. import Deny from './components/Deny.vue'
  6. import Welcome from './components/Welcome.vue'
  7. import Login from './components/Login.vue'
  8. import Layout from './components/Layout.vue'
  9. import account_routes from './components/account/routes'
  10. import publish_routes from './components/publish/routes'
  11. import configuration_routes from './components/configuration/routes'
  12. import assets_routes from './components/assets/routes'
  13. import schedule_routes from './components/schedule/routes'
  14. const routes = [
  15. {
  16. path: '',
  17. name: 'home',
  18. component: Home
  19. },
  20. {
  21. path: 'account',
  22. routes: account_routes
  23. },
  24. {
  25. path: 'publish',
  26. routes: publish_routes
  27. },
  28. {
  29. path: 'configuration',
  30. routes: configuration_routes
  31. },
  32. {
  33. path: 'assets',
  34. routes: assets_routes
  35. },
  36. {
  37. path: 'schedule',
  38. routes: schedule_routes
  39. },
  40. {
  41. path: '*',
  42. redirect: '/'
  43. }
  44. ];
  45. function load_route(routes) {
  46. let result = [];
  47. for (let route of routes) {
  48. if (route.hasOwnProperty('routes') && Array.isArray(route.routes)) {
  49. for (let sub_route of load_route(route.routes)) {
  50. sub_route.path = route.path + '/' + sub_route.path;
  51. result.push(sub_route)
  52. }
  53. } else {
  54. result.push(route)
  55. }
  56. }
  57. return result
  58. }
  59. export default [
  60. {
  61. path: '/login',
  62. name: 'login',
  63. component: Login
  64. }, {
  65. path: '/deny',
  66. component: Deny
  67. }, {
  68. path: '/welcome',
  69. component: Welcome
  70. }, {
  71. path: '/',
  72. component: Layout,
  73. children: load_route(routes)
  74. }
  75. ]