routes.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596
  1. import { /* notLogedIn, */Authenticated, canSeeAdminPanel, canSeeUserProfilePanel } from './middleware/middleware.js'
  2. const routes = [
  3. {
  4. path: '',
  5. layoutConfig: {
  6. layoutView: 'lHh Lpr fff',
  7. layoutHeader: true,
  8. layoutHeaderType: 'main',
  9. layoutHeaderVisible: true,
  10. layoutHeaderReveal: false,
  11. layoutHeaderElevated: false,
  12. layoutHeaderBordered: false,
  13. layoutLeftDrawer: true,
  14. layoutLeftSideBarType: 'main',
  15. layoutLeftDrawerVisible: false,
  16. layoutLeftDrawerOverlay: false,
  17. layoutLeftDrawerElevated: false,
  18. layoutLeftDrawerBordered: false,
  19. layoutLeftDrawerWidth: 325,
  20. layoutLeftDrawerBehavior: 'default',
  21. layoutRightDrawer: false,
  22. layoutFooter: true,
  23. showHamburgerBtn: true,
  24. layoutFooterVisible: true,
  25. layoutFooterType: 'main',
  26. layoutHeaderCustomClass: '',
  27. layoutBreadcrumbsElements: [],
  28. layoutBreadcrumbs: {
  29. separator: 'home'
  30. },
  31. layoutLeftDrawerCustomClass: 'main-layout-left-drawer',
  32. layoutPageContainerCustomClass: 'main-layout-container'
  33. },
  34. component: () => import('layouts/MainLayout.vue'),
  35. meta: {
  36. // hasDynamicSetting: true
  37. },
  38. children: [
  39. {
  40. path: '/auth',
  41. name: 'Auth',
  42. layoutConfig: {
  43. layoutHeaderVisible: false,
  44. layoutHeader: false,
  45. layoutLeftDrawer: false,
  46. layoutFooter: false,
  47. layoutFooterVisible: false
  48. },
  49. component: () => import('layouts/bareLayout.vue'),
  50. children: [
  51. {
  52. path: '/login/admin',
  53. name: 'AdminLogin',
  54. // meta: {
  55. // middlewares: [notLogedIn]
  56. // },
  57. component: () => import('src/pages/Auth/Login.vue')
  58. },
  59. {
  60. path: '/login',
  61. name: 'Login',
  62. // meta: {
  63. // middlewares: [notLogedIn]
  64. // },
  65. component: () => import('src/pages/Auth/Login.vue')
  66. }
  67. ]
  68. },
  69. {
  70. path: '',
  71. name: 'Public',
  72. component: () => import('layouts/bareLayout.vue'),
  73. meta: { middlewares: [canSeeUserProfilePanel] },
  74. children: [
  75. {
  76. name: 'Public.Home',
  77. path: '',
  78. layoutConfig: {
  79. layoutView: 'lhh Lpr fff'
  80. },
  81. meta: {
  82. hasDynamicSetting: true
  83. },
  84. component: () => import('src/pages/Public/index.vue')
  85. },
  86. {
  87. name: 'Public.AllClassrooms',
  88. path: 'all-classrooms',
  89. meta: {
  90. hasDynamicSetting: true
  91. },
  92. component: () => import('src/pages/Public/classrooms.vue')
  93. },
  94. {
  95. name: 'Public.ShowClassroomInfo',
  96. path: 'classroom/:id',
  97. meta: {
  98. hasDynamicSetting: true
  99. },
  100. component: () => import('src/pages/Public/ShowClassroomInfo.vue')
  101. },
  102. {
  103. name: 'Public.FAQ',
  104. path: 'faq',
  105. meta: {
  106. hasDynamicSetting: true
  107. },
  108. component: () => import('src/pages/Public/FAQ.vue')
  109. }
  110. ]
  111. },
  112. {
  113. path: 'panel',
  114. name: 'UserPanel',
  115. layoutConfig: {
  116. layoutView: 'hHh LpR lfr',
  117. layoutHeaderType: 'user-panel',
  118. layoutHeaderBordered: true,
  119. layoutLeftDrawer: true,
  120. layoutLeftDrawerVisible: true,
  121. layoutLeftSideBarType: 'user-panel',
  122. layoutLeftDrawerBordered: true,
  123. layoutLeftDrawerWidth: 240,
  124. layoutFooterType: 'panel',
  125. layoutFooter: true
  126. },
  127. meta: { middlewares: [Authenticated, canSeeUserProfilePanel] },
  128. component: () => import('src/layouts/bareLayout.vue'),
  129. children: [
  130. {
  131. name: 'UserPanel.ShopCompleteInfo',
  132. path: 'shop/completeInfo',
  133. layoutConfig: {
  134. layoutView: 'hHh LpR fff',
  135. layoutHeaderType: 'main',
  136. layoutHeaderBordered: true,
  137. layoutLeftDrawer: false,
  138. layoutLeftDrawerVisible: false,
  139. layoutFooter: true
  140. },
  141. component: () => import('src/pages/User/Shop/completeInfo.vue')
  142. },
  143. {
  144. name: 'UserPanel.ShopPaymentFromWallet',
  145. path: 'shop/payment-from-wallet',
  146. layoutConfig: {
  147. layoutView: 'hHh LpR fff',
  148. layoutHeaderType: 'main',
  149. layoutHeaderBordered: true,
  150. layoutLeftDrawer: false,
  151. layoutLeftDrawerVisible: false,
  152. layoutFooter: true
  153. },
  154. meta: { middlewares: [Authenticated] },
  155. component: () => import('src/pages/User/Shop/paymentFromWallet.vue')
  156. },
  157. {
  158. name: 'UserPanel.PaymentResult',
  159. path: 'shop/payment-result',
  160. meta: { middlewares: [Authenticated] },
  161. component: () => import('src/pages/User/Shop/paymentResult.vue')
  162. },
  163. {
  164. path: 'profile',
  165. name: 'UserPanel.Profile',
  166. component: () => import('src/layouts/UserPanelLayout.vue'),
  167. meta: { middlewares: [Authenticated] },
  168. children: [
  169. {
  170. name: 'UserPanel.Profile.AllClassrooms',
  171. path: 'all-classrooms',
  172. component: () => import('src/pages/User/Profile/classrooms.vue'),
  173. meta: {
  174. breadcrumbs: {
  175. visible: true,
  176. loading: false,
  177. path: [
  178. {
  179. label: 'دوره های من',
  180. to: { name: 'UserPanel.Profile.AllClassrooms' }
  181. }
  182. ]
  183. }
  184. }
  185. },
  186. {
  187. name: 'UserPanel.Profile.AllDiscussionCirclesClassrooms',
  188. path: 'all-discussion-circles-classrooms',
  189. component: () => import('src/pages/User/Profile/DiscussionCirclesClassrooms.vue'),
  190. meta: {
  191. breadcrumbs: {
  192. visible: true,
  193. loading: false,
  194. path: [
  195. {
  196. label: 'حلقه های مباحثاتی من',
  197. to: { name: 'UserPanel.Profile.AllDiscussionCirclesClassrooms' }
  198. }
  199. ]
  200. }
  201. }
  202. },
  203. { name: 'UserPanel.Profile.ClassroomInfo', path: 'classroom/:id', component: () => import('src/pages/User/Profile/classroomInfo.vue') },
  204. { name: 'UserPanel.Profile.SessionInfo', path: 'session/:id', component: () => import('src/pages/User/Profile/sessionInfo.vue') },
  205. { name: 'UserPanel.Profile.UserInfo', path: 'user-info', component: () => import('src/pages/User/Profile/profile.vue') }
  206. ]
  207. },
  208. {
  209. path: 'invoice',
  210. name: 'UserPanel.Invoice',
  211. component: () => import('layouts/bareLayout.vue'),
  212. children: [
  213. {
  214. path: '',
  215. name: 'UserPanel.Invoice.List',
  216. component: () => import('src/pages/User/Invoice/List.vue')
  217. },
  218. {
  219. path: 'thankyou',
  220. name: 'UserPanel.Invoice.Thankyou',
  221. component: () => import('src/pages/User/Invoice/Thankyou.vue')
  222. },
  223. {
  224. path: ':id',
  225. name: 'UserPanel.Invoice.Show',
  226. meta: {
  227. breadcrumbs: {
  228. visible: true,
  229. loading: false,
  230. path: [
  231. {
  232. label: 'صورتحساب ها',
  233. to: { name: 'UserPanel.Invoice.List' }
  234. },
  235. {
  236. label: 'جزییات صورتحساب'
  237. }
  238. ]
  239. }
  240. },
  241. component: () => import('src/pages/User/Invoice/Show.vue')
  242. },
  243. {
  244. path: 'ticket',
  245. name: 'UserPanel.Invoice.Ticket',
  246. component: () => import('layouts/bareLayout.vue'),
  247. children: [
  248. {
  249. path: '',
  250. name: 'UserPanel.Invoice.Ticket.List',
  251. component: () => import('src/pages/User/Invoice/Ticket/List.vue')
  252. },
  253. {
  254. path: ':id',
  255. name: 'UserPanel.Invoice.Ticket.Show',
  256. component: () => import('src/pages/User/Invoice/Ticket/Show.vue')
  257. },
  258. {
  259. path: 'create',
  260. name: 'UserPanel.Invoice.Ticket.Create',
  261. component: () => import('src/pages/User/Invoice/Ticket/Create.vue')
  262. }
  263. ]
  264. }
  265. ]
  266. },
  267. {
  268. path: 'ticket',
  269. name: 'UserPanel.Ticket',
  270. component: () => import('layouts/bareLayout.vue'),
  271. children: [
  272. {
  273. path: '',
  274. name: 'UserPanel.Ticket.List',
  275. component: () => import('src/pages/User/Ticket/List.vue')
  276. },
  277. {
  278. path: ':id',
  279. name: 'UserPanel.Ticket.Show',
  280. meta: {
  281. breadcrumbs: {
  282. visible: true,
  283. loading: false,
  284. path: [
  285. {
  286. label: 'درخواست ها',
  287. to: { name: 'UserPanel.Ticket.List' }
  288. },
  289. {
  290. label: 'جزییات درخواست'
  291. }
  292. ]
  293. }
  294. },
  295. component: () => import('src/pages/User/Ticket/Show.vue')
  296. },
  297. {
  298. path: 'create',
  299. name: 'UserPanel.Ticket.Create',
  300. component: () => import('src/pages/User/Ticket/Create.vue')
  301. }
  302. ]
  303. },
  304. { path: 'wallet', name: 'UserPanel.Wallet', component: () => import('src/pages/User/Wallet/Show.vue') },
  305. {
  306. path: 'payment',
  307. name: 'UserPanel.Payment',
  308. component: () => import('src/layouts/bareLayout.vue'),
  309. children: [
  310. {
  311. name: 'UserPanel.Payment.Show',
  312. path: ':id',
  313. component: () => import('src/pages/User/Payment/Show.vue'),
  314. meta: {
  315. breadcrumbs: {
  316. visible: true,
  317. loading: false,
  318. path: [
  319. {
  320. label: 'کیف پول الکترونیک',
  321. to: { name: 'UserPanel.Wallet' }
  322. },
  323. {
  324. label: 'جزییات پرداخت'
  325. }
  326. ]
  327. }
  328. }
  329. }
  330. ]
  331. }
  332. ]
  333. },
  334. {
  335. path: 'admin',
  336. name: 'Admin',
  337. layoutConfig: {
  338. layoutView: 'hHh LpR lfr',
  339. layoutHeaderType: 'admin',
  340. layoutHeaderBordered: true,
  341. layoutLeftDrawer: true,
  342. layoutLeftDrawerVisible: true,
  343. layoutLeftSideBarType: 'admin',
  344. layoutLeftDrawerBordered: true,
  345. layoutLeftDrawerWidth: 240,
  346. layoutFooterType: 'panel',
  347. layoutFooter: true
  348. },
  349. meta: { middlewares: [Authenticated, canSeeAdminPanel] },
  350. component: () => import('src/layouts/AdminLayout.vue'),
  351. children: [
  352. {
  353. name: 'Admin.Settings',
  354. path: 'settings',
  355. component: () => import('src/pages/Admin/Settings.vue'),
  356. breadcrumbs: { title: 'تنظیمات' }
  357. },
  358. {
  359. name: 'Admin.User',
  360. path: 'users',
  361. component: () => import('layouts/bareLayout.vue'),
  362. breadcrumbs: { title: 'کاربران' },
  363. children: [
  364. { name: 'Admin.User.Index', path: '', component: () => import('src/pages/Admin/User/index.vue') },
  365. { name: 'Admin.User.Show', path: ':id', component: () => import('src/pages/Admin/User/show.vue'), breadcrumbs: { title: 'اطلاعات کاربری' } }
  366. ]
  367. },
  368. {
  369. name: 'Admin.Category',
  370. path: 'categories',
  371. component: () => import('layouts/bareLayout.vue'),
  372. breadcrumbs: { title: 'دسته بندی ها' },
  373. children: [
  374. { name: 'Admin.Category.Index', path: '', component: () => import('src/pages/Admin/Category/index.vue') },
  375. { name: 'Admin.Category.Create', path: 'create', component: () => import('src/pages/Admin/Category/create.vue') },
  376. { name: 'Admin.Category.Show', path: ':id', component: () => import('src/pages/Admin/Category/show.vue') }
  377. ]
  378. },
  379. {
  380. name: 'Admin.Category.DiscussionCircles',
  381. path: 'discussion-circles-categories',
  382. component: () => import('layouts/bareLayout.vue'),
  383. breadcrumbs: { title: 'دسته بندی ها' },
  384. children: [
  385. { name: 'Admin.Category.DiscussionCircles.Index', path: '', component: () => import('src/pages/Admin/DiscussionCirclesCategory/index.vue') },
  386. { name: 'Admin.Category.DiscussionCircles.Create', path: 'create', component: () => import('src/pages/Admin/DiscussionCirclesCategory/create.vue') },
  387. { name: 'Admin.Category.DiscussionCircles.Show', path: ':id', component: () => import('src/pages/Admin/DiscussionCirclesCategory/show.vue') }
  388. ]
  389. },
  390. {
  391. name: 'Admin.Unit',
  392. path: 'units',
  393. component: () => import('src/layouts/bareLayout.vue'),
  394. breadcrumbs: { title: 'طلیعه حکمت' },
  395. children: [
  396. // { name: 'Admin.Category.Index', path: '', component: () => import('src/pages/Admin/Category/index.vue') },
  397. // { name: 'Admin.Category.Create', path: 'create', component: () => import('src/pages/Admin/Category/create.vue') },
  398. { name: 'Admin.Unit.Show', path: ':id', component: () => import('src/pages/Admin/Unit/show.vue'), breadcrumbs: { title: 'درس' } }
  399. ]
  400. },
  401. {
  402. name: 'Admin.SessionTemplate',
  403. path: 'session-templates',
  404. component: () => import('layouts/bareLayout.vue'),
  405. breadcrumbs: { title: 'طلیعه حکمت' },
  406. children: [
  407. { name: 'Admin.SessionTemplate.Index', path: '', component: () => import('src/pages/Admin/SessionTemplate/index.vue') },
  408. { name: 'Admin.SessionTemplate.Create', path: 'create', component: () => import('src/pages/Admin/SessionTemplate/create.vue') },
  409. { name: 'Admin.SessionTemplate.Show', path: ':id', component: () => import('src/pages/Admin/SessionTemplate/show.vue') }
  410. ]
  411. },
  412. {
  413. path: 'ticket',
  414. name: 'AdminPanel.Ticket',
  415. component: () => import('layouts/bareLayout.vue'),
  416. children: [
  417. {
  418. path: '',
  419. name: 'AdminPanel.Ticket.List',
  420. component: () => import('src/pages/Admin/Ticket/List.vue')
  421. },
  422. {
  423. path: 'create',
  424. name: 'AdminPanel.Ticket.Create',
  425. component: () => import('src/pages/Admin/Ticket/Create.vue')
  426. },
  427. {
  428. path: ':id',
  429. name: 'AdminPanel.Ticket.Show',
  430. component: () => import('src/pages/Admin/Ticket/Show.vue')
  431. }
  432. ]
  433. },
  434. {
  435. name: 'Admin.Classroom',
  436. path: 'classrooms',
  437. component: () => import('layouts/bareLayout.vue'),
  438. breadcrumbs: { title: 'دوره های آموزشی', route: { name: 'Admin.Classroom.Index' } },
  439. children: [
  440. { name: 'Admin.Classroom.Index', path: '', component: () => import('src/pages/Admin/Classroom/index.vue') },
  441. { name: 'Admin.Classroom.Create', path: 'create', component: () => import('src/pages/Admin/Classroom/create.vue'), breadcrumbs: { title: 'ساخت دوره آموزشی' } },
  442. { name: 'Admin.Classroom.Show', path: ':id', component: () => import('src/pages/Admin/Classroom/show.vue'), breadcrumbs: { title: 'مشاهده اطلاعات دوره آموزشی' } },
  443. { name: 'Admin.Classroom.Ticket', path: 'ticket', component: () => import('src/pages/Admin/Classroom/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } }
  444. ]
  445. },
  446. {
  447. name: 'Admin.Classroom.DiscussionCircles',
  448. path: 'discussion-circles-classrooms',
  449. component: () => import('layouts/bareLayout.vue'),
  450. breadcrumbs: { title: 'دوره های آموزشی', route: { name: 'Admin.Classroom.DiscussionCircles.Index' } },
  451. children: [
  452. { name: 'Admin.Classroom.DiscussionCircles.Index', path: '', component: () => import('src/pages/Admin/DiscussionCirclesClassroom/index.vue') },
  453. { name: 'Admin.Classroom.DiscussionCircles.Create', path: 'create', component: () => import('src/pages/Admin/DiscussionCirclesClassroom/create.vue'), breadcrumbs: { title: 'ساخت دوره آموزشی' } },
  454. { name: 'Admin.Classroom.DiscussionCircles.Show', path: ':id', component: () => import('src/pages/Admin/DiscussionCirclesClassroom/show.vue'), breadcrumbs: { title: 'مشاهده اطلاعات دوره آموزشی' } },
  455. { name: 'Admin.Classroom.DiscussionCircles.Ticket', path: 'ticket', component: () => import('src/pages/Admin/DiscussionCirclesClassroom/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } }
  456. ]
  457. },
  458. {
  459. path: 'content',
  460. name: 'Admin.Content',
  461. component: () => import('layouts/bareLayout.vue'),
  462. children: [
  463. { path: '', name: 'Admin.Content.List', component: () => import('src/pages/Admin/Content/List.vue') },
  464. { path: 'create', name: 'Admin.Content.Create', component: () => import('src/pages/Admin/Content/Create.vue') },
  465. { path: ':id', name: 'Admin.Content.Show', component: () => import('src/pages/Admin/Content/Show.vue') },
  466. { name: 'Admin.Content.Ticket', path: 'ticket', component: () => import('src/pages/Admin/Classroom/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } }
  467. ]
  468. },
  469. {
  470. path: 'media',
  471. name: 'Admin.Media',
  472. component: () => import('layouts/bareLayout.vue'),
  473. children: [
  474. // { path: '', name: 'Admin.Content.List', component: () => import('src/pages/Admin/Content/List.vue') },
  475. // { path: 'create', name: 'Admin.Content.Create', component: () => import('src/pages/Admin/Content/Create.vue') },
  476. { path: ':id', name: 'Admin.Media.Show', component: () => import('src/pages/Admin/Media/Show.vue') }
  477. // { name: 'Admin.Content.Ticket', path: 'ticket', component: () => import('src/pages/Admin/Classroom/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } }
  478. ]
  479. },
  480. {
  481. path: 'content-category',
  482. name: 'Admin.ContentCategory',
  483. component: () => import('layouts/bareLayout.vue'),
  484. children: [
  485. { path: '', name: 'Admin.ContentCategory.List', component: () => import('src/pages/Admin/ContentCategory/List.vue') },
  486. { path: 'create', name: 'Admin.ContentCategory.Create', component: () => import('src/pages/Admin/ContentCategory/Create.vue') },
  487. { path: ':id', name: 'Admin.ContentCategory.Show', component: () => import('src/pages/Admin/ContentCategory/Show.vue') }
  488. ]
  489. },
  490. {
  491. name: 'Admin.Session',
  492. path: 'session',
  493. component: () => import('layouts/bareLayout.vue'),
  494. breadcrumbs: { title: 'طلیعه حکمت' },
  495. children: [
  496. { name: 'Admin.Session.Index', path: '', component: () => import('src/pages/Admin/Session/index.vue') },
  497. { name: 'Admin.Session.Create', path: 'create', component: () => import('src/pages/Admin/Session/create.vue') },
  498. { name: 'Admin.Session.Show', path: ':id', component: () => import('src/pages/Admin/Session/show.vue') }
  499. ]
  500. },
  501. {
  502. path: 'invoice',
  503. name: 'Admin.Invoice',
  504. component: () => import('layouts/bareLayout.vue'),
  505. children: [
  506. {
  507. path: '',
  508. name: 'Admin.Invoice.List',
  509. component: () => import('src/pages/Admin/Invoice/List.vue')
  510. },
  511. {
  512. path: ':id',
  513. name: 'Admin.Invoice.Show',
  514. component: () => import('src/pages/Admin/Invoice/Show.vue')
  515. },
  516. {
  517. path: 'ticket',
  518. name: 'Admin.Invoice.Ticket',
  519. component: () => import('layouts/bareLayout.vue'),
  520. children: [
  521. {
  522. path: '',
  523. name: 'Admin.Invoice.Ticket.List',
  524. component: () => import('src/pages/Admin/Invoice/Ticket/List.vue')
  525. },
  526. {
  527. path: ':id',
  528. name: 'Admin.Invoice.Ticket.Show',
  529. component: () => import('src/pages/Admin/Invoice/Ticket/Show.vue')
  530. }
  531. ]
  532. }
  533. ]
  534. }
  535. ]
  536. },
  537. {
  538. path: 'document',
  539. name: 'Document',
  540. component: () => import('layouts/bareLayout.vue'),
  541. children: [
  542. {
  543. path: 'component',
  544. name: 'component',
  545. component: () => import('src/pages/Document/component.vue'),
  546. breadcrumbs: { title: 'component' },
  547. meta: {
  548. middlewares: [Authenticated]
  549. }
  550. },
  551. {
  552. path: 'theme',
  553. name: 'Document.Theme',
  554. component: () => import('layouts/bareLayout.vue'),
  555. breadcrumbs: { title: 'Theme' },
  556. children: [
  557. {
  558. path: 'controls',
  559. name: 'Document.Theme.Controls',
  560. component: () => import('src/pages/Document/Theme/Controls.vue'),
  561. breadcrumbs: { title: 'Controls' }
  562. }
  563. ]
  564. },
  565. {
  566. path: 'debug',
  567. name: 'Document.Debug',
  568. component: () => import('src/pages/Document/debug.vue')
  569. },
  570. {
  571. path: 'icon-sax',
  572. name: 'Document.IconSax',
  573. component: () => import('src/pages/Document/IconSax.vue')
  574. },
  575. {
  576. path: '/form-generator',
  577. name: 'formGenerator',
  578. component: () => import('src/pages/Document/formGenerator.vue')
  579. }
  580. ]
  581. }
  582. ]
  583. }
  584. // must status 404
  585. // Always leave this as last one,
  586. // but you can also remove it
  587. // {
  588. // path: '/404/:catchAll(.*)*',
  589. // name: 'NotFound',
  590. // component:
  591. // () => import('src/pages/Error404.vue')
  592. // }
  593. ]
  594. export default routes