route.ts 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228
  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. name: 'background',
  514. path: '/background',
  515. component: 'self',
  516. children: [
  517. {
  518. name: 'dashboard_workbench',
  519. path: '/dashboard/workbench',
  520. component: 'self',
  521. meta: {
  522. title: '工作台',
  523. requiresAuth: true,
  524. icon: 'icon-park-outline:workbench'
  525. }
  526. },
  527. {
  528. name: 'dashboard_workbench',
  529. path: '/dashboard/workbench',
  530. component: 'self',
  531. meta: {
  532. title: '工作台',
  533. requiresAuth: true,
  534. icon: 'icon-park-outline:workbench'
  535. }
  536. }
  537. ],
  538. meta: {
  539. title: '后台管理',
  540. requiresAuth: true,
  541. singleLayout: 'basic',
  542. icon: 'fluent:book-information-24-regular',
  543. order: 10
  544. }
  545. }
  546. ],
  547. admin: [
  548. {
  549. name: 'dashboard',
  550. path: '/dashboard',
  551. component: 'basic',
  552. children: [
  553. {
  554. name: 'dashboard_analysis',
  555. path: '/dashboard/analysis',
  556. component: 'self',
  557. meta: {
  558. title: '分析页',
  559. requiresAuth: true,
  560. icon: 'icon-park-outline:analysis'
  561. }
  562. },
  563. {
  564. name: 'dashboard_workbench',
  565. path: '/dashboard/workbench',
  566. component: 'self',
  567. meta: {
  568. title: '工作台',
  569. requiresAuth: true,
  570. icon: 'icon-park-outline:workbench'
  571. }
  572. }
  573. ],
  574. meta: {
  575. title: '仪表盘',
  576. icon: 'mdi:monitor-dashboard',
  577. order: 1
  578. }
  579. },
  580. {
  581. name: 'document',
  582. path: '/document',
  583. component: 'basic',
  584. children: [
  585. {
  586. name: 'document_vue',
  587. path: '/document/vue',
  588. component: 'self',
  589. meta: {
  590. title: 'vue文档',
  591. requiresAuth: true,
  592. icon: 'logos:vue'
  593. }
  594. },
  595. {
  596. name: 'document_vite',
  597. path: '/document/vite',
  598. component: 'self',
  599. meta: {
  600. title: 'vite文档',
  601. requiresAuth: true,
  602. icon: 'logos:vitejs'
  603. }
  604. },
  605. {
  606. name: 'document_naive',
  607. path: '/document/naive',
  608. component: 'self',
  609. meta: {
  610. title: 'naive文档',
  611. requiresAuth: true,
  612. icon: 'logos:naiveui'
  613. }
  614. },
  615. {
  616. name: 'document_project',
  617. path: '/document/project',
  618. component: 'self',
  619. meta: {
  620. title: '项目文档',
  621. requiresAuth: true,
  622. localIcon: 'logo'
  623. }
  624. },
  625. {
  626. name: 'document_project-link',
  627. path: '/document/project-link',
  628. meta: {
  629. title: '项目文档(外链)',
  630. requiresAuth: true,
  631. localIcon: 'logo',
  632. href: 'https://docs.soybean.pro/'
  633. }
  634. }
  635. ],
  636. meta: {
  637. title: '文档',
  638. icon: 'mdi:file-document-multiple-outline',
  639. order: 2
  640. }
  641. },
  642. {
  643. name: 'component',
  644. path: '/component',
  645. component: 'basic',
  646. children: [
  647. {
  648. name: 'component_button',
  649. path: '/component/button',
  650. component: 'self',
  651. meta: {
  652. title: '按钮',
  653. requiresAuth: true,
  654. icon: 'mdi:button-cursor'
  655. }
  656. },
  657. {
  658. name: 'component_card',
  659. path: '/component/card',
  660. component: 'self',
  661. meta: {
  662. title: '卡片',
  663. requiresAuth: true,
  664. icon: 'mdi:card-outline'
  665. }
  666. },
  667. {
  668. name: 'component_table',
  669. path: '/component/table',
  670. component: 'self',
  671. meta: {
  672. title: '表格',
  673. requiresAuth: true,
  674. icon: 'mdi:table-large'
  675. }
  676. }
  677. ],
  678. meta: {
  679. title: '组件示例',
  680. icon: 'cib:app-store',
  681. order: 3
  682. }
  683. },
  684. {
  685. name: 'plugin',
  686. path: '/plugin',
  687. component: 'basic',
  688. children: [
  689. {
  690. name: 'plugin_charts',
  691. path: '/plugin/charts',
  692. component: 'multi',
  693. children: [
  694. {
  695. name: 'plugin_charts_echarts',
  696. path: '/plugin/charts/echarts',
  697. component: 'self',
  698. meta: {
  699. title: 'ECharts',
  700. requiresAuth: true,
  701. icon: 'simple-icons:apacheecharts'
  702. }
  703. },
  704. {
  705. name: 'plugin_charts_antv',
  706. path: '/plugin/charts/antv',
  707. component: 'self',
  708. meta: {
  709. title: 'AntV',
  710. requiresAuth: true,
  711. icon: 'simple-icons:antdesign'
  712. }
  713. }
  714. ],
  715. meta: {
  716. title: '图表',
  717. icon: 'mdi:chart-areaspline'
  718. }
  719. },
  720. {
  721. name: 'plugin_map',
  722. path: '/plugin/map',
  723. component: 'self',
  724. meta: {
  725. title: '地图',
  726. requiresAuth: true,
  727. icon: 'mdi:map'
  728. }
  729. },
  730. {
  731. name: 'plugin_video',
  732. path: '/plugin/video',
  733. component: 'self',
  734. meta: {
  735. title: '视频',
  736. requiresAuth: true,
  737. icon: 'mdi:video'
  738. }
  739. },
  740. {
  741. name: 'plugin_editor',
  742. path: '/plugin/editor',
  743. component: 'multi',
  744. children: [
  745. {
  746. name: 'plugin_editor_quill',
  747. path: '/plugin/editor/quill',
  748. component: 'self',
  749. meta: {
  750. title: '富文本编辑器',
  751. requiresAuth: true,
  752. icon: 'mdi:file-document-edit-outline'
  753. }
  754. },
  755. {
  756. name: 'plugin_editor_markdown',
  757. path: '/plugin/editor/markdown',
  758. component: 'self',
  759. meta: {
  760. title: 'markdown编辑器',
  761. requiresAuth: true,
  762. icon: 'ri:markdown-line'
  763. }
  764. }
  765. ],
  766. meta: {
  767. title: '编辑器',
  768. icon: 'icon-park-outline:editor'
  769. }
  770. },
  771. {
  772. name: 'plugin_swiper',
  773. path: '/plugin/swiper',
  774. component: 'self',
  775. meta: {
  776. title: 'Swiper插件',
  777. requiresAuth: true,
  778. icon: 'simple-icons:swiper'
  779. }
  780. },
  781. {
  782. name: 'plugin_copy',
  783. path: '/plugin/copy',
  784. component: 'self',
  785. meta: {
  786. title: '剪贴板',
  787. requiresAuth: true,
  788. icon: 'mdi:clipboard-outline'
  789. }
  790. },
  791. {
  792. name: 'plugin_icon',
  793. path: '/plugin/icon',
  794. component: 'self',
  795. meta: {
  796. title: '图标',
  797. requiresAuth: true,
  798. localIcon: 'custom-icon'
  799. }
  800. },
  801. {
  802. name: 'plugin_print',
  803. path: '/plugin/print',
  804. component: 'self',
  805. meta: {
  806. title: '打印',
  807. requiresAuth: true,
  808. icon: 'mdi:printer'
  809. }
  810. }
  811. ],
  812. meta: {
  813. title: '插件示例',
  814. icon: 'clarity:plugin-line',
  815. order: 4
  816. }
  817. },
  818. {
  819. name: 'auth-demo',
  820. path: '/auth-demo',
  821. component: 'basic',
  822. children: [
  823. {
  824. name: 'auth-demo_permission',
  825. path: '/auth-demo/permission',
  826. component: 'self',
  827. meta: {
  828. title: '权限切换',
  829. requiresAuth: true,
  830. icon: 'ic:round-construction'
  831. }
  832. }
  833. ],
  834. meta: {
  835. title: '权限示例',
  836. icon: 'ic:baseline-security',
  837. order: 5
  838. }
  839. },
  840. {
  841. name: 'function',
  842. path: '/function',
  843. component: 'basic',
  844. children: [
  845. {
  846. name: 'function_tab',
  847. path: '/function/tab',
  848. component: 'self',
  849. meta: {
  850. title: 'Tab',
  851. requiresAuth: true,
  852. icon: 'ic:round-tab'
  853. }
  854. },
  855. {
  856. name: 'function_tab-detail',
  857. path: '/function/tab-detail',
  858. component: 'self',
  859. meta: {
  860. title: 'Tab Detail',
  861. requiresAuth: true,
  862. hide: true,
  863. activeMenu: 'function_tab',
  864. icon: 'ic:round-tab'
  865. }
  866. },
  867. {
  868. name: 'function_tab-multi-detail',
  869. path: '/function/tab-multi-detail',
  870. component: 'self',
  871. meta: {
  872. title: 'Tab Multi Detail',
  873. requiresAuth: true,
  874. hide: true,
  875. multiTab: true,
  876. activeMenu: 'function_tab',
  877. icon: 'ic:round-tab'
  878. }
  879. }
  880. ],
  881. meta: {
  882. title: '功能',
  883. icon: 'icon-park-outline:all-application',
  884. order: 6
  885. }
  886. },
  887. {
  888. name: 'exception',
  889. path: '/exception',
  890. component: 'basic',
  891. children: [
  892. {
  893. name: 'exception_403',
  894. path: '/exception/403',
  895. component: 'self',
  896. meta: {
  897. title: '异常页403',
  898. requiresAuth: true,
  899. icon: 'ic:baseline-block'
  900. }
  901. },
  902. {
  903. name: 'exception_404',
  904. path: '/exception/404',
  905. component: 'self',
  906. meta: {
  907. title: '异常页404',
  908. requiresAuth: true,
  909. icon: 'ic:baseline-web-asset-off'
  910. }
  911. },
  912. {
  913. name: 'exception_500',
  914. path: '/exception/500',
  915. component: 'self',
  916. meta: {
  917. title: '异常页500',
  918. requiresAuth: true,
  919. icon: 'ic:baseline-wifi-off'
  920. }
  921. }
  922. ],
  923. meta: {
  924. title: '异常页',
  925. icon: 'ant-design:exception-outlined',
  926. order: 7
  927. }
  928. },
  929. {
  930. name: 'multi-menu',
  931. path: '/multi-menu',
  932. component: 'basic',
  933. children: [
  934. {
  935. name: 'multi-menu_first',
  936. path: '/multi-menu/first',
  937. component: 'multi',
  938. children: [
  939. {
  940. name: 'multi-menu_first_second',
  941. path: '/multi-menu/first/second',
  942. component: 'self',
  943. meta: {
  944. title: '二级菜单',
  945. requiresAuth: true,
  946. icon: 'mdi:menu'
  947. }
  948. },
  949. {
  950. name: 'multi-menu_first_second-new',
  951. path: '/multi-menu/first/second-new',
  952. component: 'multi',
  953. children: [
  954. {
  955. name: 'multi-menu_first_second-new_third',
  956. path: '/multi-menu/first/second-new/third',
  957. component: 'self',
  958. meta: {
  959. title: '三级菜单',
  960. requiresAuth: true,
  961. icon: 'mdi:menu'
  962. }
  963. }
  964. ],
  965. meta: {
  966. title: '二级菜单(有子菜单)',
  967. icon: 'mdi:menu'
  968. }
  969. }
  970. ],
  971. meta: {
  972. title: '一级菜单',
  973. icon: 'mdi:menu'
  974. }
  975. }
  976. ],
  977. meta: {
  978. title: '多级菜单',
  979. icon: 'carbon:menu',
  980. order: 8
  981. }
  982. },
  983. {
  984. name: 'management',
  985. path: '/management',
  986. component: 'basic',
  987. children: [
  988. {
  989. name: 'management_auth',
  990. path: '/management/auth',
  991. component: 'self',
  992. meta: {
  993. title: '权限管理',
  994. requiresAuth: true,
  995. icon: 'ic:baseline-security'
  996. }
  997. },
  998. {
  999. name: 'management_role',
  1000. path: '/management/role',
  1001. component: 'self',
  1002. meta: {
  1003. title: '角色管理',
  1004. requiresAuth: true,
  1005. icon: 'carbon:user-role'
  1006. }
  1007. },
  1008. {
  1009. name: 'management_user',
  1010. path: '/management/user',
  1011. component: 'self',
  1012. meta: {
  1013. title: '用户管理',
  1014. requiresAuth: true,
  1015. icon: 'ic:round-manage-accounts'
  1016. }
  1017. },
  1018. {
  1019. name: 'management_route',
  1020. path: '/management/route',
  1021. component: 'self',
  1022. meta: {
  1023. title: '路由管理',
  1024. requiresAuth: true,
  1025. icon: 'material-symbols:route'
  1026. }
  1027. }
  1028. ],
  1029. meta: {
  1030. title: '系统管理',
  1031. icon: 'carbon:cloud-service-management',
  1032. order: 9
  1033. }
  1034. },
  1035. {
  1036. name: 'about',
  1037. path: '/about',
  1038. component: 'self',
  1039. meta: {
  1040. title: '关于',
  1041. requiresAuth: true,
  1042. singleLayout: 'basic',
  1043. icon: 'fluent:book-information-24-regular',
  1044. order: 10
  1045. }
  1046. },
  1047. {
  1048. name: 'background',
  1049. path: '/background',
  1050. component: 'self',
  1051. children: [
  1052. {
  1053. name: 'dashboard_workbench',
  1054. path: '/dashboard/workbench',
  1055. component: 'self',
  1056. meta: {
  1057. title: '工作台',
  1058. requiresAuth: true,
  1059. icon: 'icon-park-outline:workbench'
  1060. }
  1061. },
  1062. {
  1063. name: 'dashboard_workbench',
  1064. path: '/dashboard/workbench',
  1065. component: 'self',
  1066. meta: {
  1067. title: '工作台',
  1068. requiresAuth: true,
  1069. icon: 'icon-park-outline:workbench'
  1070. }
  1071. }
  1072. ],
  1073. meta: {
  1074. title: '后台管理',
  1075. requiresAuth: true,
  1076. singleLayout: 'basic',
  1077. icon: 'fluent:book-information-24-regular',
  1078. order: 10
  1079. }
  1080. }
  1081. ],
  1082. user: [
  1083. {
  1084. name: 'dashboard',
  1085. path: '/dashboard',
  1086. component: 'basic',
  1087. children: [
  1088. {
  1089. name: 'dashboard_analysis',
  1090. path: '/dashboard/analysis',
  1091. component: 'self',
  1092. meta: {
  1093. title: '分析页',
  1094. requiresAuth: true,
  1095. icon: 'icon-park-outline:analysis'
  1096. }
  1097. }
  1098. ],
  1099. meta: {
  1100. title: '仪表盘',
  1101. icon: 'mdi:monitor-dashboard',
  1102. order: 1
  1103. }
  1104. },
  1105. {
  1106. name: 'auth-demo',
  1107. path: '/auth-demo',
  1108. component: 'basic',
  1109. children: [
  1110. {
  1111. name: 'auth-demo_permission',
  1112. path: '/auth-demo/permission',
  1113. component: 'self',
  1114. meta: {
  1115. title: '权限切换',
  1116. requiresAuth: true,
  1117. icon: 'ic:round-construction'
  1118. }
  1119. }
  1120. ],
  1121. meta: {
  1122. title: '权限示例',
  1123. icon: 'ic:baseline-security',
  1124. order: 5
  1125. }
  1126. },
  1127. {
  1128. name: 'multi-menu',
  1129. path: '/multi-menu',
  1130. component: 'basic',
  1131. children: [
  1132. {
  1133. name: 'multi-menu_first',
  1134. path: '/multi-menu/first',
  1135. component: 'multi',
  1136. children: [
  1137. {
  1138. name: 'multi-menu_first_second',
  1139. path: '/multi-menu/first/second',
  1140. component: 'self',
  1141. meta: {
  1142. title: '二级菜单',
  1143. requiresAuth: true,
  1144. icon: 'mdi:menu'
  1145. }
  1146. },
  1147. {
  1148. name: 'multi-menu_first_second-new',
  1149. path: '/multi-menu/first/second-new',
  1150. component: 'multi',
  1151. children: [
  1152. {
  1153. name: 'multi-menu_first_second-new_third',
  1154. path: '/multi-menu/first/second-new/third',
  1155. component: 'self',
  1156. meta: {
  1157. title: '三级菜单',
  1158. requiresAuth: true,
  1159. icon: 'mdi:menu'
  1160. }
  1161. }
  1162. ],
  1163. meta: {
  1164. title: '二级菜单(有子菜单)',
  1165. icon: 'mdi:menu'
  1166. }
  1167. }
  1168. ],
  1169. meta: {
  1170. title: '一级菜单',
  1171. icon: 'mdi:menu'
  1172. }
  1173. }
  1174. ],
  1175. meta: {
  1176. title: '多级菜单',
  1177. icon: 'carbon:menu',
  1178. order: 7
  1179. }
  1180. },
  1181. {
  1182. name: 'about',
  1183. path: '/about',
  1184. component: 'self',
  1185. meta: {
  1186. title: '关于',
  1187. requiresAuth: true,
  1188. singleLayout: 'basic',
  1189. icon: 'fluent:book-information-24-regular',
  1190. order: 8
  1191. }
  1192. },
  1193. {
  1194. name: 'background',
  1195. path: '/background',
  1196. component: 'self',
  1197. children: [
  1198. {
  1199. name: 'dashboard_workbench',
  1200. path: '/dashboard/workbench',
  1201. component: 'self',
  1202. meta: {
  1203. title: '工作台',
  1204. requiresAuth: true,
  1205. icon: 'icon-park-outline:workbench'
  1206. }
  1207. },
  1208. {
  1209. name: 'dashboard_workbench',
  1210. path: '/dashboard/workbench',
  1211. component: 'self',
  1212. meta: {
  1213. title: '工作台',
  1214. requiresAuth: true,
  1215. icon: 'icon-park-outline:workbench'
  1216. }
  1217. }
  1218. ],
  1219. meta: {
  1220. title: '后台管理',
  1221. requiresAuth: true,
  1222. singleLayout: 'basic',
  1223. icon: 'fluent:book-information-24-regular',
  1224. order: 10
  1225. }
  1226. }
  1227. ]
  1228. };