route.ts 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126
  1. export const routeModel: Record<Auth.RoleType, AuthRoute.Route[]> = {
  2. super: [
  3. {
  4. name: 'dashboard',
  5. path: '/dashboard',
  6. component: 'basic',
  7. children: [
  8. {
  9. name: 'dashboard_analysis',
  10. path: '/dashboard/analysis',
  11. component: 'self',
  12. meta: {
  13. title: '分析页',
  14. requiresAuth: true,
  15. icon: 'icon-park-outline:analysis'
  16. }
  17. },
  18. {
  19. name: 'dashboard_workbench',
  20. path: '/dashboard/workbench',
  21. component: 'self',
  22. meta: {
  23. title: '工作台',
  24. requiresAuth: true,
  25. icon: 'icon-park-outline:workbench'
  26. }
  27. }
  28. ],
  29. meta: {
  30. title: '仪表盘',
  31. icon: 'mdi:monitor-dashboard',
  32. order: 1
  33. }
  34. },
  35. {
  36. name: 'document',
  37. path: '/document',
  38. component: 'basic',
  39. children: [
  40. {
  41. name: 'document_vue',
  42. path: '/document/vue',
  43. component: 'self',
  44. meta: {
  45. title: 'vue文档',
  46. requiresAuth: true,
  47. icon: 'logos:vue'
  48. }
  49. },
  50. {
  51. name: 'document_vite',
  52. path: '/document/vite',
  53. component: 'self',
  54. meta: {
  55. title: 'vite文档',
  56. requiresAuth: true,
  57. icon: 'logos:vitejs'
  58. }
  59. },
  60. {
  61. name: 'document_naive',
  62. path: '/document/naive',
  63. component: 'self',
  64. meta: {
  65. title: 'naive文档',
  66. requiresAuth: true,
  67. icon: 'logos:naiveui'
  68. }
  69. },
  70. {
  71. name: 'document_project',
  72. path: '/document/project',
  73. component: 'self',
  74. meta: {
  75. title: '项目文档',
  76. requiresAuth: true,
  77. localIcon: 'logo'
  78. }
  79. },
  80. {
  81. name: 'document_project-link',
  82. path: '/document/project-link',
  83. meta: {
  84. title: '项目文档(外链)',
  85. requiresAuth: true,
  86. localIcon: 'logo',
  87. href: 'https://docs.soybean.pro/'
  88. }
  89. }
  90. ],
  91. meta: {
  92. title: '文档',
  93. icon: 'mdi:file-document-multiple-outline',
  94. order: 2
  95. }
  96. },
  97. {
  98. name: 'component',
  99. path: '/component',
  100. component: 'basic',
  101. children: [
  102. {
  103. name: 'component_button',
  104. path: '/component/button',
  105. component: 'self',
  106. meta: {
  107. title: '按钮',
  108. requiresAuth: true,
  109. icon: 'mdi:button-cursor'
  110. }
  111. },
  112. {
  113. name: 'component_card',
  114. path: '/component/card',
  115. component: 'self',
  116. meta: {
  117. title: '卡片',
  118. requiresAuth: true,
  119. icon: 'mdi:card-outline'
  120. }
  121. },
  122. {
  123. name: 'component_table',
  124. path: '/component/table',
  125. component: 'self',
  126. meta: {
  127. title: '表格',
  128. requiresAuth: true,
  129. icon: 'mdi:table-large'
  130. }
  131. }
  132. ],
  133. meta: {
  134. title: '组件示例',
  135. icon: 'cib:app-store',
  136. order: 3
  137. }
  138. },
  139. {
  140. name: 'plugin',
  141. path: '/plugin',
  142. component: 'basic',
  143. children: [
  144. {
  145. name: 'plugin_charts',
  146. path: '/plugin/charts',
  147. component: 'multi',
  148. children: [
  149. {
  150. name: 'plugin_charts_echarts',
  151. path: '/plugin/charts/echarts',
  152. component: 'self',
  153. meta: {
  154. title: 'ECharts',
  155. requiresAuth: true,
  156. icon: 'simple-icons:apacheecharts'
  157. }
  158. },
  159. {
  160. name: 'plugin_charts_antv',
  161. path: '/plugin/charts/antv',
  162. component: 'self',
  163. meta: {
  164. title: 'AntV',
  165. requiresAuth: true,
  166. icon: 'simple-icons:antdesign'
  167. }
  168. }
  169. ],
  170. meta: {
  171. title: '图表',
  172. icon: 'mdi:chart-areaspline'
  173. }
  174. },
  175. {
  176. name: 'plugin_map',
  177. path: '/plugin/map',
  178. component: 'self',
  179. meta: {
  180. title: '地图',
  181. requiresAuth: true,
  182. icon: 'mdi:map'
  183. }
  184. },
  185. {
  186. name: 'plugin_video',
  187. path: '/plugin/video',
  188. component: 'self',
  189. meta: {
  190. title: '视频',
  191. requiresAuth: true,
  192. icon: 'mdi:video'
  193. }
  194. },
  195. {
  196. name: 'plugin_editor',
  197. path: '/plugin/editor',
  198. component: 'multi',
  199. children: [
  200. {
  201. name: 'plugin_editor_quill',
  202. path: '/plugin/editor/quill',
  203. component: 'self',
  204. meta: {
  205. title: '富文本编辑器',
  206. requiresAuth: true,
  207. icon: 'mdi:file-document-edit-outline'
  208. }
  209. },
  210. {
  211. name: 'plugin_editor_markdown',
  212. path: '/plugin/editor/markdown',
  213. component: 'self',
  214. meta: {
  215. title: 'markdown编辑器',
  216. requiresAuth: true,
  217. icon: 'ri:markdown-line'
  218. }
  219. }
  220. ],
  221. meta: {
  222. title: '编辑器',
  223. icon: 'icon-park-outline:editor'
  224. }
  225. },
  226. {
  227. name: 'plugin_swiper',
  228. path: '/plugin/swiper',
  229. component: 'self',
  230. meta: {
  231. title: 'Swiper插件',
  232. requiresAuth: true,
  233. icon: 'simple-icons:swiper'
  234. }
  235. },
  236. {
  237. name: 'plugin_copy',
  238. path: '/plugin/copy',
  239. component: 'self',
  240. meta: {
  241. title: '剪贴板',
  242. requiresAuth: true,
  243. icon: 'mdi:clipboard-outline'
  244. }
  245. },
  246. {
  247. name: 'plugin_icon',
  248. path: '/plugin/icon',
  249. component: 'self',
  250. meta: {
  251. title: '图标',
  252. requiresAuth: true,
  253. localIcon: 'custom-icon'
  254. }
  255. },
  256. {
  257. name: 'plugin_print',
  258. path: '/plugin/print',
  259. component: 'self',
  260. meta: {
  261. title: '打印',
  262. requiresAuth: true,
  263. icon: 'mdi:printer'
  264. }
  265. }
  266. ],
  267. meta: {
  268. title: '插件示例',
  269. icon: 'clarity:plugin-line',
  270. order: 4
  271. }
  272. },
  273. {
  274. name: 'auth-demo',
  275. path: '/auth-demo',
  276. component: 'basic',
  277. children: [
  278. {
  279. name: 'auth-demo_permission',
  280. path: '/auth-demo/permission',
  281. component: 'self',
  282. meta: {
  283. title: '权限切换',
  284. requiresAuth: true,
  285. icon: 'ic:round-construction'
  286. }
  287. },
  288. {
  289. name: 'auth-demo_super',
  290. path: '/auth-demo/super',
  291. component: 'self',
  292. meta: {
  293. title: '超级管理员可见',
  294. requiresAuth: true,
  295. icon: 'ic:round-supervisor-account'
  296. }
  297. }
  298. ],
  299. meta: {
  300. title: '权限示例',
  301. icon: 'ic:baseline-security',
  302. order: 5
  303. }
  304. },
  305. {
  306. name: 'function',
  307. path: '/function',
  308. component: 'basic',
  309. children: [
  310. {
  311. name: 'function_tab',
  312. path: '/function/tab',
  313. component: 'self',
  314. meta: {
  315. title: 'Tab',
  316. requiresAuth: true,
  317. icon: 'ic:round-tab'
  318. }
  319. },
  320. {
  321. name: 'function_tab-detail',
  322. path: '/function/tab-detail',
  323. component: 'self',
  324. meta: {
  325. title: 'Tab Detail',
  326. requiresAuth: true,
  327. hide: true,
  328. activeMenu: 'function_tab',
  329. icon: 'ic:round-tab'
  330. }
  331. },
  332. {
  333. name: 'function_tab-multi-detail',
  334. path: '/function/tab-multi-detail',
  335. component: 'self',
  336. meta: {
  337. title: 'Tab Multi Detail',
  338. requiresAuth: true,
  339. hide: true,
  340. multiTab: true,
  341. activeMenu: 'function_tab',
  342. icon: 'ic:round-tab'
  343. }
  344. }
  345. ],
  346. meta: {
  347. title: '功能',
  348. icon: 'icon-park-outline:all-application',
  349. order: 6
  350. }
  351. },
  352. {
  353. name: 'exception',
  354. path: '/exception',
  355. component: 'basic',
  356. children: [
  357. {
  358. name: 'exception_403',
  359. path: '/exception/403',
  360. component: 'self',
  361. meta: {
  362. title: '异常页403',
  363. requiresAuth: true,
  364. icon: 'ic:baseline-block'
  365. }
  366. },
  367. {
  368. name: 'exception_404',
  369. path: '/exception/404',
  370. component: 'self',
  371. meta: {
  372. title: '异常页404',
  373. requiresAuth: true,
  374. icon: 'ic:baseline-web-asset-off'
  375. }
  376. },
  377. {
  378. name: 'exception_500',
  379. path: '/exception/500',
  380. component: 'self',
  381. meta: {
  382. title: '异常页500',
  383. requiresAuth: true,
  384. icon: 'ic:baseline-wifi-off'
  385. }
  386. }
  387. ],
  388. meta: {
  389. title: '异常页',
  390. icon: 'ant-design:exception-outlined',
  391. order: 7
  392. }
  393. },
  394. {
  395. name: 'multi-menu',
  396. path: '/multi-menu',
  397. component: 'basic',
  398. children: [
  399. {
  400. name: 'multi-menu_first',
  401. path: '/multi-menu/first',
  402. component: 'multi',
  403. children: [
  404. {
  405. name: 'multi-menu_first_second',
  406. path: '/multi-menu/first/second',
  407. component: 'self',
  408. meta: {
  409. title: '二级菜单',
  410. requiresAuth: true,
  411. icon: 'mdi:menu'
  412. }
  413. },
  414. {
  415. name: 'multi-menu_first_second-new',
  416. path: '/multi-menu/first/second-new',
  417. component: 'multi',
  418. children: [
  419. {
  420. name: 'multi-menu_first_second-new_third',
  421. path: '/multi-menu/first/second-new/third',
  422. component: 'self',
  423. meta: {
  424. title: '三级菜单',
  425. requiresAuth: true,
  426. icon: 'mdi:menu'
  427. }
  428. }
  429. ],
  430. meta: {
  431. title: '二级菜单(有子菜单)',
  432. icon: 'mdi:menu'
  433. }
  434. }
  435. ],
  436. meta: {
  437. title: '一级菜单',
  438. icon: 'mdi:menu'
  439. }
  440. }
  441. ],
  442. meta: {
  443. title: '多级菜单',
  444. icon: 'carbon:menu',
  445. order: 8
  446. }
  447. },
  448. {
  449. name: 'management',
  450. path: '/management',
  451. component: 'basic',
  452. children: [
  453. {
  454. name: 'management_auth',
  455. path: '/management/auth',
  456. component: 'self',
  457. meta: {
  458. title: '权限管理',
  459. requiresAuth: true,
  460. icon: 'ic:baseline-security'
  461. }
  462. },
  463. {
  464. name: 'management_role',
  465. path: '/management/role',
  466. component: 'self',
  467. meta: {
  468. title: '角色管理',
  469. requiresAuth: true,
  470. icon: 'carbon:user-role'
  471. }
  472. },
  473. {
  474. name: 'management_user',
  475. path: '/management/user',
  476. component: 'self',
  477. meta: {
  478. title: '用户管理',
  479. requiresAuth: true,
  480. icon: 'ic:round-manage-accounts'
  481. }
  482. },
  483. {
  484. name: 'management_route',
  485. path: '/management/route',
  486. component: 'self',
  487. meta: {
  488. title: '路由管理',
  489. requiresAuth: true,
  490. icon: 'material-symbols:route'
  491. }
  492. }
  493. ],
  494. meta: {
  495. title: '系统管理',
  496. icon: 'carbon:cloud-service-management',
  497. order: 9
  498. }
  499. },
  500. {
  501. name: 'about',
  502. path: '/about',
  503. component: 'self',
  504. meta: {
  505. title: '关于',
  506. requiresAuth: true,
  507. singleLayout: 'basic',
  508. icon: 'fluent:book-information-24-regular',
  509. order: 10
  510. }
  511. }
  512. ],
  513. admin: [
  514. {
  515. name: 'dashboard',
  516. path: '/dashboard',
  517. component: 'basic',
  518. children: [
  519. {
  520. name: 'dashboard_analysis',
  521. path: '/dashboard/analysis',
  522. component: 'self',
  523. meta: {
  524. title: '分析页',
  525. requiresAuth: true,
  526. icon: 'icon-park-outline:analysis'
  527. }
  528. },
  529. {
  530. name: 'dashboard_workbench',
  531. path: '/dashboard/workbench',
  532. component: 'self',
  533. meta: {
  534. title: '工作台',
  535. requiresAuth: true,
  536. icon: 'icon-park-outline:workbench'
  537. }
  538. }
  539. ],
  540. meta: {
  541. title: '仪表盘',
  542. icon: 'mdi:monitor-dashboard',
  543. order: 1
  544. }
  545. },
  546. {
  547. name: 'document',
  548. path: '/document',
  549. component: 'basic',
  550. children: [
  551. {
  552. name: 'document_vue',
  553. path: '/document/vue',
  554. component: 'self',
  555. meta: {
  556. title: 'vue文档',
  557. requiresAuth: true,
  558. icon: 'logos:vue'
  559. }
  560. },
  561. {
  562. name: 'document_vite',
  563. path: '/document/vite',
  564. component: 'self',
  565. meta: {
  566. title: 'vite文档',
  567. requiresAuth: true,
  568. icon: 'logos:vitejs'
  569. }
  570. },
  571. {
  572. name: 'document_naive',
  573. path: '/document/naive',
  574. component: 'self',
  575. meta: {
  576. title: 'naive文档',
  577. requiresAuth: true,
  578. icon: 'logos:naiveui'
  579. }
  580. },
  581. {
  582. name: 'document_project',
  583. path: '/document/project',
  584. component: 'self',
  585. meta: {
  586. title: '项目文档',
  587. requiresAuth: true,
  588. localIcon: 'logo'
  589. }
  590. },
  591. {
  592. name: 'document_project-link',
  593. path: '/document/project-link',
  594. meta: {
  595. title: '项目文档(外链)',
  596. requiresAuth: true,
  597. localIcon: 'logo',
  598. href: 'https://docs.soybean.pro/'
  599. }
  600. }
  601. ],
  602. meta: {
  603. title: '文档',
  604. icon: 'mdi:file-document-multiple-outline',
  605. order: 2
  606. }
  607. },
  608. {
  609. name: 'component',
  610. path: '/component',
  611. component: 'basic',
  612. children: [
  613. {
  614. name: 'component_button',
  615. path: '/component/button',
  616. component: 'self',
  617. meta: {
  618. title: '按钮',
  619. requiresAuth: true,
  620. icon: 'mdi:button-cursor'
  621. }
  622. },
  623. {
  624. name: 'component_card',
  625. path: '/component/card',
  626. component: 'self',
  627. meta: {
  628. title: '卡片',
  629. requiresAuth: true,
  630. icon: 'mdi:card-outline'
  631. }
  632. },
  633. {
  634. name: 'component_table',
  635. path: '/component/table',
  636. component: 'self',
  637. meta: {
  638. title: '表格',
  639. requiresAuth: true,
  640. icon: 'mdi:table-large'
  641. }
  642. }
  643. ],
  644. meta: {
  645. title: '组件示例',
  646. icon: 'cib:app-store',
  647. order: 3
  648. }
  649. },
  650. {
  651. name: 'plugin',
  652. path: '/plugin',
  653. component: 'basic',
  654. children: [
  655. {
  656. name: 'plugin_charts',
  657. path: '/plugin/charts',
  658. component: 'multi',
  659. children: [
  660. {
  661. name: 'plugin_charts_echarts',
  662. path: '/plugin/charts/echarts',
  663. component: 'self',
  664. meta: {
  665. title: 'ECharts',
  666. requiresAuth: true,
  667. icon: 'simple-icons:apacheecharts'
  668. }
  669. },
  670. {
  671. name: 'plugin_charts_antv',
  672. path: '/plugin/charts/antv',
  673. component: 'self',
  674. meta: {
  675. title: 'AntV',
  676. requiresAuth: true,
  677. icon: 'simple-icons:antdesign'
  678. }
  679. }
  680. ],
  681. meta: {
  682. title: '图表',
  683. icon: 'mdi:chart-areaspline'
  684. }
  685. },
  686. {
  687. name: 'plugin_map',
  688. path: '/plugin/map',
  689. component: 'self',
  690. meta: {
  691. title: '地图',
  692. requiresAuth: true,
  693. icon: 'mdi:map'
  694. }
  695. },
  696. {
  697. name: 'plugin_video',
  698. path: '/plugin/video',
  699. component: 'self',
  700. meta: {
  701. title: '视频',
  702. requiresAuth: true,
  703. icon: 'mdi:video'
  704. }
  705. },
  706. {
  707. name: 'plugin_editor',
  708. path: '/plugin/editor',
  709. component: 'multi',
  710. children: [
  711. {
  712. name: 'plugin_editor_quill',
  713. path: '/plugin/editor/quill',
  714. component: 'self',
  715. meta: {
  716. title: '富文本编辑器',
  717. requiresAuth: true,
  718. icon: 'mdi:file-document-edit-outline'
  719. }
  720. },
  721. {
  722. name: 'plugin_editor_markdown',
  723. path: '/plugin/editor/markdown',
  724. component: 'self',
  725. meta: {
  726. title: 'markdown编辑器',
  727. requiresAuth: true,
  728. icon: 'ri:markdown-line'
  729. }
  730. }
  731. ],
  732. meta: {
  733. title: '编辑器',
  734. icon: 'icon-park-outline:editor'
  735. }
  736. },
  737. {
  738. name: 'plugin_swiper',
  739. path: '/plugin/swiper',
  740. component: 'self',
  741. meta: {
  742. title: 'Swiper插件',
  743. requiresAuth: true,
  744. icon: 'simple-icons:swiper'
  745. }
  746. },
  747. {
  748. name: 'plugin_copy',
  749. path: '/plugin/copy',
  750. component: 'self',
  751. meta: {
  752. title: '剪贴板',
  753. requiresAuth: true,
  754. icon: 'mdi:clipboard-outline'
  755. }
  756. },
  757. {
  758. name: 'plugin_icon',
  759. path: '/plugin/icon',
  760. component: 'self',
  761. meta: {
  762. title: '图标',
  763. requiresAuth: true,
  764. localIcon: 'custom-icon'
  765. }
  766. },
  767. {
  768. name: 'plugin_print',
  769. path: '/plugin/print',
  770. component: 'self',
  771. meta: {
  772. title: '打印',
  773. requiresAuth: true,
  774. icon: 'mdi:printer'
  775. }
  776. }
  777. ],
  778. meta: {
  779. title: '插件示例',
  780. icon: 'clarity:plugin-line',
  781. order: 4
  782. }
  783. },
  784. {
  785. name: 'auth-demo',
  786. path: '/auth-demo',
  787. component: 'basic',
  788. children: [
  789. {
  790. name: 'auth-demo_permission',
  791. path: '/auth-demo/permission',
  792. component: 'self',
  793. meta: {
  794. title: '权限切换',
  795. requiresAuth: true,
  796. icon: 'ic:round-construction'
  797. }
  798. }
  799. ],
  800. meta: {
  801. title: '权限示例',
  802. icon: 'ic:baseline-security',
  803. order: 5
  804. }
  805. },
  806. {
  807. name: 'function',
  808. path: '/function',
  809. component: 'basic',
  810. children: [
  811. {
  812. name: 'function_tab',
  813. path: '/function/tab',
  814. component: 'self',
  815. meta: {
  816. title: 'Tab',
  817. requiresAuth: true,
  818. icon: 'ic:round-tab'
  819. }
  820. },
  821. {
  822. name: 'function_tab-detail',
  823. path: '/function/tab-detail',
  824. component: 'self',
  825. meta: {
  826. title: 'Tab Detail',
  827. requiresAuth: true,
  828. hide: true,
  829. activeMenu: 'function_tab',
  830. icon: 'ic:round-tab'
  831. }
  832. },
  833. {
  834. name: 'function_tab-multi-detail',
  835. path: '/function/tab-multi-detail',
  836. component: 'self',
  837. meta: {
  838. title: 'Tab Multi Detail',
  839. requiresAuth: true,
  840. hide: true,
  841. multiTab: true,
  842. activeMenu: 'function_tab',
  843. icon: 'ic:round-tab'
  844. }
  845. }
  846. ],
  847. meta: {
  848. title: '功能',
  849. icon: 'icon-park-outline:all-application',
  850. order: 6
  851. }
  852. },
  853. {
  854. name: 'exception',
  855. path: '/exception',
  856. component: 'basic',
  857. children: [
  858. {
  859. name: 'exception_403',
  860. path: '/exception/403',
  861. component: 'self',
  862. meta: {
  863. title: '异常页403',
  864. requiresAuth: true,
  865. icon: 'ic:baseline-block'
  866. }
  867. },
  868. {
  869. name: 'exception_404',
  870. path: '/exception/404',
  871. component: 'self',
  872. meta: {
  873. title: '异常页404',
  874. requiresAuth: true,
  875. icon: 'ic:baseline-web-asset-off'
  876. }
  877. },
  878. {
  879. name: 'exception_500',
  880. path: '/exception/500',
  881. component: 'self',
  882. meta: {
  883. title: '异常页500',
  884. requiresAuth: true,
  885. icon: 'ic:baseline-wifi-off'
  886. }
  887. }
  888. ],
  889. meta: {
  890. title: '异常页',
  891. icon: 'ant-design:exception-outlined',
  892. order: 7
  893. }
  894. },
  895. {
  896. name: 'multi-menu',
  897. path: '/multi-menu',
  898. component: 'basic',
  899. children: [
  900. {
  901. name: 'multi-menu_first',
  902. path: '/multi-menu/first',
  903. component: 'multi',
  904. children: [
  905. {
  906. name: 'multi-menu_first_second',
  907. path: '/multi-menu/first/second',
  908. component: 'self',
  909. meta: {
  910. title: '二级菜单',
  911. requiresAuth: true,
  912. icon: 'mdi:menu'
  913. }
  914. },
  915. {
  916. name: 'multi-menu_first_second-new',
  917. path: '/multi-menu/first/second-new',
  918. component: 'multi',
  919. children: [
  920. {
  921. name: 'multi-menu_first_second-new_third',
  922. path: '/multi-menu/first/second-new/third',
  923. component: 'self',
  924. meta: {
  925. title: '三级菜单',
  926. requiresAuth: true,
  927. icon: 'mdi:menu'
  928. }
  929. }
  930. ],
  931. meta: {
  932. title: '二级菜单(有子菜单)',
  933. icon: 'mdi:menu'
  934. }
  935. }
  936. ],
  937. meta: {
  938. title: '一级菜单',
  939. icon: 'mdi:menu'
  940. }
  941. }
  942. ],
  943. meta: {
  944. title: '多级菜单',
  945. icon: 'carbon:menu',
  946. order: 8
  947. }
  948. },
  949. {
  950. name: 'management',
  951. path: '/management',
  952. component: 'basic',
  953. children: [
  954. {
  955. name: 'management_auth',
  956. path: '/management/auth',
  957. component: 'self',
  958. meta: {
  959. title: '权限管理',
  960. requiresAuth: true,
  961. icon: 'ic:baseline-security'
  962. }
  963. },
  964. {
  965. name: 'management_role',
  966. path: '/management/role',
  967. component: 'self',
  968. meta: {
  969. title: '角色管理',
  970. requiresAuth: true,
  971. icon: 'carbon:user-role'
  972. }
  973. },
  974. {
  975. name: 'management_user',
  976. path: '/management/user',
  977. component: 'self',
  978. meta: {
  979. title: '用户管理',
  980. requiresAuth: true,
  981. icon: 'ic:round-manage-accounts'
  982. }
  983. },
  984. {
  985. name: 'management_route',
  986. path: '/management/route',
  987. component: 'self',
  988. meta: {
  989. title: '路由管理',
  990. requiresAuth: true,
  991. icon: 'material-symbols:route'
  992. }
  993. }
  994. ],
  995. meta: {
  996. title: '系统管理',
  997. icon: 'carbon:cloud-service-management',
  998. order: 9
  999. }
  1000. },
  1001. {
  1002. name: 'about',
  1003. path: '/about',
  1004. component: 'self',
  1005. meta: {
  1006. title: '关于',
  1007. requiresAuth: true,
  1008. singleLayout: 'basic',
  1009. icon: 'fluent:book-information-24-regular',
  1010. order: 10
  1011. }
  1012. }
  1013. ],
  1014. user: [
  1015. {
  1016. name: 'dashboard',
  1017. path: '/dashboard',
  1018. component: 'basic',
  1019. children: [
  1020. {
  1021. name: 'dashboard_analysis',
  1022. path: '/dashboard/analysis',
  1023. component: 'self',
  1024. meta: {
  1025. title: '分析页',
  1026. requiresAuth: true,
  1027. icon: 'icon-park-outline:analysis'
  1028. }
  1029. }
  1030. ],
  1031. meta: {
  1032. title: '仪表盘',
  1033. icon: 'mdi:monitor-dashboard',
  1034. order: 1
  1035. }
  1036. },
  1037. {
  1038. name: 'auth-demo',
  1039. path: '/auth-demo',
  1040. component: 'basic',
  1041. children: [
  1042. {
  1043. name: 'auth-demo_permission',
  1044. path: '/auth-demo/permission',
  1045. component: 'self',
  1046. meta: {
  1047. title: '权限切换',
  1048. requiresAuth: true,
  1049. icon: 'ic:round-construction'
  1050. }
  1051. }
  1052. ],
  1053. meta: {
  1054. title: '权限示例',
  1055. icon: 'ic:baseline-security',
  1056. order: 5
  1057. }
  1058. },
  1059. {
  1060. name: 'multi-menu',
  1061. path: '/multi-menu',
  1062. component: 'basic',
  1063. children: [
  1064. {
  1065. name: 'multi-menu_first',
  1066. path: '/multi-menu/first',
  1067. component: 'multi',
  1068. children: [
  1069. {
  1070. name: 'multi-menu_first_second',
  1071. path: '/multi-menu/first/second',
  1072. component: 'self',
  1073. meta: {
  1074. title: '二级菜单',
  1075. requiresAuth: true,
  1076. icon: 'mdi:menu'
  1077. }
  1078. },
  1079. {
  1080. name: 'multi-menu_first_second-new',
  1081. path: '/multi-menu/first/second-new',
  1082. component: 'multi',
  1083. children: [
  1084. {
  1085. name: 'multi-menu_first_second-new_third',
  1086. path: '/multi-menu/first/second-new/third',
  1087. component: 'self',
  1088. meta: {
  1089. title: '三级菜单',
  1090. requiresAuth: true,
  1091. icon: 'mdi:menu'
  1092. }
  1093. }
  1094. ],
  1095. meta: {
  1096. title: '二级菜单(有子菜单)',
  1097. icon: 'mdi:menu'
  1098. }
  1099. }
  1100. ],
  1101. meta: {
  1102. title: '一级菜单',
  1103. icon: 'mdi:menu'
  1104. }
  1105. }
  1106. ],
  1107. meta: {
  1108. title: '多级菜单',
  1109. icon: 'carbon:menu',
  1110. order: 7
  1111. }
  1112. },
  1113. {
  1114. name: 'about',
  1115. path: '/about',
  1116. component: 'self',
  1117. meta: {
  1118. title: '关于',
  1119. requiresAuth: true,
  1120. singleLayout: 'basic',
  1121. icon: 'fluent:book-information-24-regular',
  1122. order: 8
  1123. }
  1124. }
  1125. ]
  1126. };