router.ts 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231
  1. import { MockMethod } from 'vite-plugin-mock'
  2. const Layout = 'Layout'
  3. const list = [
  4. {
  5. path: '/',
  6. name: 'Root',
  7. component: Layout,
  8. meta: {
  9. title: '首页',
  10. icon: 'home-2-line',
  11. },
  12. children: [
  13. {
  14. path: 'index',
  15. name: 'Index',
  16. component: '/@/views/index/index.vue',
  17. meta: {
  18. title: '首页',
  19. icon: 'home-2-line',
  20. noClosable: true,
  21. },
  22. },
  23. {
  24. path: 'dashboard',
  25. name: 'Dashboard',
  26. component: '/@/views/index/dashboard.vue',
  27. meta: {
  28. title: '看板',
  29. icon: 'dashboard-2-line',
  30. },
  31. },
  32. {
  33. path: 'tile',
  34. name: 'Tile',
  35. component: '/@/views/index/tile.vue',
  36. meta: {
  37. title: '磁贴',
  38. icon: 'collage-line',
  39. },
  40. },
  41. {
  42. path: 'dataScreen',
  43. name: 'DataScreen',
  44. component: '/@/views/index/dataScreen.vue',
  45. meta: {
  46. title: '数据大屏',
  47. icon: 'database-2-line',
  48. target: '_blank',
  49. badge: 'Hot',
  50. },
  51. },
  52. {
  53. path: 'application',
  54. name: 'Application',
  55. component: '/@/views/index/application.vue',
  56. meta: {
  57. title: '客户端',
  58. icon: 'apps-2-line',
  59. noKeepAlive: true,
  60. dot: true,
  61. },
  62. },
  63. ],
  64. },
  65. {
  66. path: '/vab',
  67. name: 'Vab',
  68. component: Layout,
  69. meta: {
  70. title: '组件',
  71. icon: 'code-box-line',
  72. },
  73. children: [
  74. {
  75. path: 'icon',
  76. name: 'Icon',
  77. meta: {
  78. title: '图标',
  79. icon: 'remixicon-line',
  80. },
  81. children: [
  82. {
  83. path: 'defaultIcon',
  84. name: 'DefaultIcon',
  85. component: '/@/views/vab/icon/defaultIcon.vue',
  86. meta: {
  87. title: '默认图标',
  88. },
  89. },
  90. {
  91. path: 'iconSelector',
  92. name: 'IconSelector',
  93. component: '/@/views/vab/icon/iconSelector.vue',
  94. meta: {
  95. title: '图标选择器',
  96. },
  97. },
  98. {
  99. path: 'customSvg',
  100. name: 'CustomSvg',
  101. component: '/@/views/vab/icon/customSvg.vue',
  102. meta: {
  103. title: '自定义图标',
  104. },
  105. },
  106. ],
  107. },
  108. {
  109. path: 'table',
  110. name: 'Table',
  111. meta: {
  112. title: '表格',
  113. // 非editor角色的用户可见
  114. guard: {
  115. role: ['Editor'],
  116. mode: 'except',
  117. },
  118. icon: 'table-2',
  119. },
  120. children: [
  121. {
  122. path: 'defaultTable',
  123. name: 'DefaultTable',
  124. component: '/@/views/vab/table/defaultTable.vue',
  125. meta: {
  126. title: '默认表格',
  127. },
  128. },
  129. {
  130. path: 'columnTable',
  131. name: 'ColumnTable',
  132. component: '/@/views/vab/table/columnTable.vue',
  133. meta: {
  134. title: '左树右表',
  135. },
  136. },
  137. {
  138. path: 'tabsTable',
  139. name: 'TabsTable',
  140. component: '/@/views/vab/table/tabsTable.vue',
  141. meta: {
  142. title: '分类表格',
  143. dot: true,
  144. },
  145. },
  146. {
  147. path: 'inlineEditTable',
  148. name: 'InlineEditTable',
  149. component: '/@/views/vab/table/inlineEditTable.vue',
  150. meta: {
  151. title: '行内编辑表格',
  152. },
  153. },
  154. {
  155. path: 'customTable',
  156. name: 'CustomTable',
  157. component: '/@/views/vab/table/customTable.vue',
  158. meta: {
  159. title: '自定义表格',
  160. badge: 'Hot',
  161. },
  162. },
  163. {
  164. path: 'splitTable',
  165. name: 'SplitTable',
  166. component: '/@/views/vab/table/splitTable.vue',
  167. meta: {
  168. title: '分割表格',
  169. },
  170. },
  171. {
  172. path: 'bigDataTable',
  173. name: 'BigDataTable',
  174. component: '/@/views/vab/table/bigDataTable.vue',
  175. meta: {
  176. title: '大数据表格',
  177. },
  178. },
  179. {
  180. path: 'defaultTableDetail',
  181. name: 'DefaultTableDetail',
  182. component: '/@/views/vab/table/defaultTableDetail.vue',
  183. meta: {
  184. hidden: true,
  185. title: '详情页',
  186. activeMenu: '/vab/table/defaultTable',
  187. dynamicNewTab: true, //详情页根据id传参不同可打开多个
  188. },
  189. },
  190. ],
  191. },
  192. {
  193. path: 'list',
  194. name: 'List',
  195. component: '/@/views/vab/list/index.vue',
  196. meta: {
  197. title: '列表',
  198. guard: ['Admin'],
  199. icon: 'list-check-2',
  200. },
  201. },
  202. {
  203. path: 'form',
  204. name: 'Form',
  205. meta: {
  206. title: '表单',
  207. guard: ['Admin'],
  208. icon: 'file-list-2-line',
  209. },
  210. children: [
  211. {
  212. path: 'comprehensiveForm',
  213. name: 'ComprehensiveForm',
  214. component: '/@/views/vab/form/comprehensiveForm.vue',
  215. meta: {
  216. title: '综合表单',
  217. },
  218. },
  219. {
  220. path: 'stepForm',
  221. name: 'StepForm',
  222. component: '/@/views/vab/form/stepForm.vue',
  223. meta: {
  224. title: '分步表单',
  225. },
  226. },
  227. {
  228. path: 'button',
  229. name: 'Button',
  230. component: '/@/views/vab/form/button.vue',
  231. meta: {
  232. title: '按钮',
  233. },
  234. },
  235. {
  236. path: 'link',
  237. name: 'Link',
  238. component: '/@/views/vab/form/link.vue',
  239. meta: {
  240. title: '文字链接',
  241. },
  242. },
  243. {
  244. path: 'radio',
  245. name: 'Radio',
  246. component: '/@/views/vab/form/radio.vue',
  247. meta: {
  248. title: '单选框',
  249. },
  250. },
  251. {
  252. path: 'checkbox',
  253. name: 'Checkbox',
  254. component: '/@/views/vab/form/checkbox.vue',
  255. meta: {
  256. title: '多选框',
  257. },
  258. },
  259. {
  260. path: 'input',
  261. name: 'Input',
  262. component: '/@/views/vab/form/input.vue',
  263. meta: {
  264. title: '输入框',
  265. },
  266. },
  267. {
  268. path: 'inputNumber',
  269. name: 'InputNumber',
  270. component: '/@/views/vab/form/inputNumber.vue',
  271. meta: {
  272. title: '计数器',
  273. },
  274. },
  275. {
  276. path: 'select',
  277. name: 'Select',
  278. component: '/@/views/vab/form/select.vue',
  279. meta: {
  280. title: '选择器',
  281. dot: true,
  282. },
  283. },
  284. {
  285. path: 'switch',
  286. name: 'Switch',
  287. component: '/@/views/vab/form/switch.vue',
  288. meta: {
  289. title: '开关',
  290. },
  291. },
  292. {
  293. path: 'slider',
  294. name: 'Slider',
  295. component: '/@/views/vab/form/slider.vue',
  296. meta: {
  297. title: '滑块',
  298. },
  299. },
  300. {
  301. path: 'timePicker',
  302. name: 'TimePicker',
  303. component: '/@/views/vab/form/timePicker.vue',
  304. meta: {
  305. title: '时间选择器',
  306. },
  307. },
  308. {
  309. path: 'datePicker',
  310. name: 'DatePicker',
  311. component: '/@/views/vab/form/datePicker.vue',
  312. meta: {
  313. title: '日期选择器',
  314. },
  315. },
  316. {
  317. path: 'dateTimePicker',
  318. name: 'DateTimePicker',
  319. component: '/@/views/vab/form/dateTimePicker.vue',
  320. meta: {
  321. title: '日期时间选择器',
  322. },
  323. },
  324. {
  325. path: 'rate',
  326. name: 'Rate',
  327. component: '/@/views/vab/form/rate.vue',
  328. meta: {
  329. title: '评分',
  330. },
  331. },
  332. ],
  333. },
  334. {
  335. path: 'description',
  336. name: 'Description',
  337. component: '/@/views/vab/description/index.vue',
  338. meta: {
  339. title: '描述',
  340. guard: ['Admin'],
  341. icon: 'slideshow-line',
  342. },
  343. },
  344. {
  345. path: 'tree',
  346. name: 'Tree',
  347. component: '/@/views/vab/tree/index.vue',
  348. meta: {
  349. title: '树',
  350. guard: ['Admin'],
  351. icon: 'node-tree',
  352. },
  353. },
  354. {
  355. path: 'upload',
  356. name: 'Upload',
  357. component: '/@/views/vab/upload/index.vue',
  358. meta: {
  359. title: '上传',
  360. icon: 'upload-cloud-2-line',
  361. guard: ['Admin'],
  362. dot: true,
  363. },
  364. },
  365. {
  366. path: 'notice',
  367. name: 'Notice',
  368. component: '/@/views/vab/notice/index.vue',
  369. meta: {
  370. title: '通知',
  371. guard: ['Admin'],
  372. icon: 'message-2-line',
  373. },
  374. },
  375. {
  376. path: 'progress',
  377. name: 'Progress',
  378. component: '/@/views/vab/progress/index.vue',
  379. meta: {
  380. title: '进度条',
  381. guard: ['Admin'],
  382. icon: 'footprint-line',
  383. },
  384. },
  385. {
  386. path: 'timeline',
  387. name: 'Timeline',
  388. component: '/@/views/vab/timeline/index.vue',
  389. meta: {
  390. title: '时间线',
  391. guard: ['Admin'],
  392. icon: 'time-line',
  393. },
  394. },
  395. {
  396. path: 'statistic',
  397. name: 'Statistic',
  398. component: '/@/views/vab/statistic/index.vue',
  399. meta: {
  400. title: '统计',
  401. guard: ['Admin'],
  402. icon: 'bar-chart-2-line',
  403. },
  404. },
  405. {
  406. path: 'image',
  407. name: 'Image',
  408. component: '/@/views/vab/image/index.vue',
  409. meta: {
  410. title: '图片',
  411. guard: ['Admin'],
  412. icon: 'image-2-line',
  413. },
  414. },
  415. {
  416. path: 'infiniteScroll',
  417. name: 'InfiniteScroll',
  418. component: '/@/views/vab/infiniteScroll/index.vue',
  419. meta: {
  420. title: '无限滚动',
  421. guard: ['Admin'],
  422. icon: 'align-vertically',
  423. },
  424. },
  425. {
  426. path: 'drawer',
  427. name: 'Drawer',
  428. component: '/@/views/vab/drawer/index.vue',
  429. meta: {
  430. title: '抽屉',
  431. guard: ['Admin'],
  432. icon: 'archive-drawer-line',
  433. },
  434. },
  435. {
  436. path: 'carousel',
  437. name: 'Carousel',
  438. component: '/@/views/vab/carousel/index.vue',
  439. meta: {
  440. title: '走马灯',
  441. guard: ['Admin'],
  442. icon: 'switch-fill',
  443. },
  444. },
  445. ],
  446. },
  447. {
  448. path: '/other',
  449. name: 'Other',
  450. component: Layout,
  451. meta: {
  452. title: '其他',
  453. icon: 'archive-line',
  454. guard: ['Admin'],
  455. },
  456. children: [
  457. {
  458. path: 'echarts',
  459. name: 'ECharts',
  460. component: '/@/views/other/echarts/index.vue',
  461. meta: {
  462. title: '图表',
  463. guard: ['Admin'],
  464. icon: 'bubble-chart-line',
  465. },
  466. },
  467. {
  468. path: 'gantt',
  469. name: 'Gantt',
  470. component: '/@/views/other/gantt/index.vue',
  471. meta: {
  472. title: '甘特图',
  473. guard: ['Admin'],
  474. icon: 'organization-chart',
  475. },
  476. },
  477. {
  478. path: 'editor',
  479. name: 'Editor',
  480. component: Layout,
  481. meta: {
  482. title: '编辑器',
  483. icon: 'edit-box-line',
  484. guard: ['Admin'],
  485. },
  486. children: [
  487. {
  488. path: 'wangEditor',
  489. name: 'WangEditor',
  490. component: '/@/views/other/editor/wangEditor.vue',
  491. meta: {
  492. title: '富文本',
  493. guard: ['Admin'],
  494. },
  495. },
  496. {
  497. path: 'mdEditor',
  498. name: 'MdEditor',
  499. component: '/@/views/other/editor/mdEditor.vue',
  500. meta: {
  501. title: 'Markdown',
  502. guard: ['Admin'],
  503. },
  504. },
  505. ],
  506. },
  507. {
  508. path: 'video',
  509. name: 'Video',
  510. component: '/@/views/other/video/index.vue',
  511. meta: {
  512. title: '视频播放器',
  513. guard: ['Admin'],
  514. icon: 'video-line',
  515. dot: true,
  516. },
  517. },
  518. {
  519. path: 'workflow',
  520. name: 'Workflow',
  521. component: '/@/views/other/workflow/index.vue',
  522. meta: {
  523. title: '工作流',
  524. guard: ['Admin'],
  525. icon: 'flow-chart',
  526. },
  527. },
  528. {
  529. path: 'award',
  530. name: 'Award',
  531. component: '/@/views/other/award/index.vue',
  532. meta: {
  533. title: '抽奖',
  534. icon: 'award-line',
  535. badge: 'New',
  536. },
  537. },
  538. {
  539. path: 'count',
  540. name: 'Count',
  541. component: '/@/views/other/count/index.vue',
  542. meta: {
  543. title: '数字自增长',
  544. guard: ['Admin'],
  545. icon: 'number-0',
  546. },
  547. },
  548. {
  549. path: 'signature',
  550. name: 'Signature',
  551. component: '/@/views/other/signature/index.vue',
  552. meta: {
  553. title: '签名',
  554. icon: 'edit-2-line',
  555. guard: ['Admin'],
  556. },
  557. },
  558. {
  559. path: 'watermark',
  560. name: 'Watermark',
  561. component: '/@/views/other/watermark/index.vue',
  562. meta: {
  563. title: '水印',
  564. guard: ['Admin'],
  565. icon: 'water-flash-line',
  566. },
  567. },
  568. {
  569. path: 'pdf',
  570. name: 'PDF',
  571. component: '/@/views/other/pdf/index.vue',
  572. meta: {
  573. title: 'Pdf',
  574. guard: ['Admin'],
  575. icon: 'file-pdf-line',
  576. },
  577. },
  578. {
  579. path: 'print',
  580. name: 'Print',
  581. component: '/@/views/other/print/index.vue',
  582. meta: {
  583. title: '打印',
  584. guard: ['Admin'],
  585. icon: 'printer-line',
  586. },
  587. },
  588. {
  589. path: 'share',
  590. name: 'Share',
  591. component: '/@/views/other/share/index.vue',
  592. meta: {
  593. title: '分享',
  594. guard: ['Admin'],
  595. icon: 'share-line',
  596. dot: true,
  597. },
  598. },
  599. {
  600. path: 'passwordGenerator',
  601. name: 'PasswordGenerator',
  602. component: '/@/views/other/passwordGenerator/index.vue',
  603. meta: {
  604. title: '密码生成器',
  605. guard: ['Admin'],
  606. icon: 'lock-password-line',
  607. },
  608. },
  609. {
  610. path: 'amount',
  611. name: 'Amount',
  612. component: '/@/views/other/amount/index.vue',
  613. meta: {
  614. title: '大写金额转换',
  615. guard: ['Admin'],
  616. icon: 'money-cny-box-line',
  617. },
  618. },
  619. {
  620. path: 'regularExpression',
  621. name: 'RegularExpression',
  622. component: '/@/views/other/regularExpression/index.vue',
  623. meta: {
  624. title: '正则表达式',
  625. guard: ['Admin'],
  626. icon: 'file-copy-2-line',
  627. },
  628. },
  629. {
  630. path: 'throttleDebounce',
  631. name: 'ThrottleDebounce',
  632. component: '/@/views/other/throttleDebounce/index.vue',
  633. meta: {
  634. title: '节流防抖',
  635. guard: ['Admin'],
  636. icon: 'water-percent-line',
  637. },
  638. },
  639. {
  640. path: '//github.com/chuzhixin/vue-admin-beautiful?utm_source=gold_browser_extension',
  641. name: 'ExternalLink',
  642. meta: {
  643. title: '外链',
  644. target: '_blank',
  645. guard: ['Admin', 'Editor'],
  646. icon: 'external-link-line',
  647. },
  648. },
  649. {
  650. path: 'paneSplit',
  651. name: 'PaneSplit',
  652. component: '/@/views/other/paneSplit/index.vue',
  653. meta: {
  654. title: '面板分割',
  655. guard: ['Admin'],
  656. icon: 'split-cells-horizontal',
  657. },
  658. },
  659. {
  660. path: 'drag',
  661. name: 'Drag',
  662. component: '/@/views/other/drag/index.vue',
  663. meta: {
  664. title: '拖拽',
  665. icon: 'drag-drop-line',
  666. },
  667. },
  668. {
  669. path: 'transition',
  670. name: 'Transition',
  671. component: '/@/views/other/transition/index.vue',
  672. meta: {
  673. title: '过渡动画',
  674. icon: 'hand-heart-line',
  675. },
  676. },
  677. {
  678. path: 'noLayout',
  679. name: 'NoLayout',
  680. component: '/@/views/other/noLayout/index.vue',
  681. meta: {
  682. title: '全屏',
  683. guard: ['Admin'],
  684. icon: 'aspect-ratio-line',
  685. dot: true,
  686. },
  687. },
  688. {
  689. path: 'iframe',
  690. name: 'Iframe',
  691. meta: {
  692. title: '内嵌网页',
  693. guard: ['Admin'],
  694. icon: 'window-line',
  695. },
  696. children: [
  697. {
  698. path: 'iframeView',
  699. name: 'IframeView',
  700. component: '/@/views/other/iframe/view.vue',
  701. meta: {
  702. title: 'Iframe',
  703. icon: 'window-line',
  704. dynamicNewTab: true,
  705. hidden: true,
  706. },
  707. },
  708. {
  709. path: 'iframeView?url=cn.vuejs.org&title=Vue',
  710. name: 'Vue',
  711. meta: {
  712. title: 'Vue',
  713. },
  714. },
  715. {
  716. path: 'iframeView?url=cn.vitejs.dev&title=Vite',
  717. name: 'Vite',
  718. meta: {
  719. title: 'Vite',
  720. },
  721. },
  722. ],
  723. },
  724. ],
  725. },
  726. {
  727. path: '/operate',
  728. name: 'Operate',
  729. component: Layout,
  730. meta: {
  731. title: '操作',
  732. icon: 'microscope-line',
  733. },
  734. children: [
  735. {
  736. path: 'permission',
  737. name: 'Permission',
  738. component: '/@/views/operate/permission/index.vue',
  739. meta: {
  740. title: '角色权限',
  741. icon: 'user-3-line',
  742. badge: 'Hot',
  743. },
  744. },
  745. {
  746. path: 'tabs',
  747. name: 'Tabs',
  748. component: '/@/views/operate/tabs/index.vue',
  749. meta: {
  750. title: '多标签',
  751. guard: ['Admin'],
  752. icon: 'bank-card-line',
  753. },
  754. },
  755. {
  756. path: 'dynamicMeta',
  757. name: 'DynamicMeta',
  758. component: '/@/views/operate/dynamicMeta/index.vue',
  759. meta: {
  760. title: '动态Meta',
  761. guard: ['Admin'],
  762. icon: 'notification-badge-line',
  763. badge: '0',
  764. },
  765. },
  766. {
  767. path: 'guide',
  768. name: 'Guide',
  769. component: '/@/views/operate/guid/index.vue',
  770. meta: {
  771. title: '页面引导',
  772. guard: ['Admin'],
  773. icon: 'guide-line',
  774. dot: true,
  775. },
  776. },
  777. {
  778. path: 'randomTheme',
  779. name: 'RandomTheme',
  780. component: '/@/views/operate/randomTheme/index.vue',
  781. meta: {
  782. title: '随机换肤',
  783. guard: ['Admin'],
  784. icon: 'ai-generate',
  785. },
  786. },
  787. {
  788. path: 'log',
  789. name: 'Log',
  790. component: '/@/views/operate/errorLog/index.vue',
  791. meta: {
  792. title: '错误日志',
  793. guard: ['Admin'],
  794. icon: 'error-warning-line',
  795. },
  796. },
  797. {
  798. path: 'dynamicSegment',
  799. name: 'DynamicSegment',
  800. meta: {
  801. title: '动态路径参数',
  802. guard: ['Admin'],
  803. icon: 'arrow-left-right-line',
  804. },
  805. children: [
  806. {
  807. path: 'test1/:id',
  808. name: 'Test1',
  809. component: '/@/views/operate/dynamicSegment/test1.vue',
  810. meta: {
  811. hidden: true,
  812. title: 'Params',
  813. dynamicNewTab: true,
  814. },
  815. },
  816. {
  817. path: 'test1/1',
  818. name: 'Test1/1',
  819. component: '/@/views/operate/dynamicSegment/test1.vue',
  820. meta: { title: 'Params id=1' },
  821. },
  822. {
  823. path: 'test2',
  824. name: 'Test2',
  825. component: '/@/views/operate/dynamicSegment/test2.vue',
  826. meta: {
  827. hidden: true,
  828. title: 'Query',
  829. dynamicNewTab: true,
  830. },
  831. },
  832. {
  833. path: 'test2?id=1',
  834. name: 'Test2?id=1',
  835. component: '/@/views/operate/dynamicSegment/test2.vue',
  836. meta: { title: 'Query id=1' },
  837. },
  838. ],
  839. },
  840. {
  841. path: 'menu1',
  842. name: 'Menu1',
  843. meta: {
  844. title: '多级路由缓存',
  845. guard: ['Admin'],
  846. icon: 'route-line',
  847. },
  848. children: [
  849. {
  850. path: 'menu11',
  851. name: 'Menu11',
  852. meta: {
  853. title: '路由1.1',
  854. },
  855. children: [
  856. {
  857. path: 'menu111',
  858. name: 'Menu111',
  859. meta: {
  860. title: '路由1.1.1',
  861. },
  862. children: [
  863. {
  864. path: 'menu1111',
  865. name: 'Menu1111',
  866. meta: {
  867. title: '路由1.1.1.1',
  868. },
  869. component: '/@/views/operate/nested/menu1/menu11/menu111/menu1111/index.vue',
  870. },
  871. ],
  872. },
  873. ],
  874. },
  875. ],
  876. },
  877. ],
  878. },
  879. {
  880. path: '/template',
  881. name: 'Template',
  882. component: Layout,
  883. meta: {
  884. title: '模板',
  885. icon: 'clipboard-line',
  886. },
  887. children: [
  888. {
  889. path: 'news',
  890. name: 'News',
  891. component: '/@/views/template/News.vue',
  892. meta: {
  893. title: '新闻',
  894. icon: 'newspaper-line',
  895. badge: 'New',
  896. },
  897. },
  898. {
  899. path: 'newsDetail',
  900. name: 'NewsDetail',
  901. component: '/@/views/template/NewsDetail.vue',
  902. meta: {
  903. title: '新闻详情',
  904. icon: 'newspaper-line',
  905. hidden: true,
  906. },
  907. },
  908. {
  909. path: 'lllustration',
  910. name: 'Lllustration',
  911. component: '/@/views/template/Lllustration.vue',
  912. meta: {
  913. title: '插画',
  914. icon: 'brush-3-line',
  915. dot: true,
  916. },
  917. },
  918. {
  919. path: 'qRLogin',
  920. name: 'QRLogin',
  921. component: '/@/views/template/QRLogin.vue',
  922. meta: {
  923. title: '二维码登录',
  924. icon: 'qr-scan-2-line',
  925. },
  926. },
  927. {
  928. path: 'resume',
  929. name: 'Resume',
  930. component: '/@/views/template/Resume.vue',
  931. meta: {
  932. title: '简历',
  933. icon: 'folder-user-line',
  934. },
  935. },
  936. {
  937. path: '403',
  938. name: 'Error403',
  939. component: '/@/views/error/403.vue',
  940. meta: {
  941. title: '403',
  942. icon: 'error-warning-line',
  943. },
  944. },
  945. {
  946. path: '404',
  947. name: 'Error404',
  948. component: '/@/views/error/404.vue',
  949. meta: {
  950. title: '404',
  951. icon: 'error-warning-line',
  952. },
  953. },
  954. {
  955. path: '500',
  956. name: 'Error500',
  957. component: '/@/views/error/500.vue',
  958. meta: {
  959. title: '500',
  960. icon: 'error-warning-line',
  961. },
  962. },
  963. {
  964. path: '503',
  965. name: 'Error503',
  966. component: '/@/views/error/503.vue',
  967. meta: {
  968. title: '503',
  969. icon: 'error-warning-line',
  970. },
  971. },
  972. ],
  973. },
  974. {
  975. path: '/setting',
  976. name: 'PersonnelManagement',
  977. component: Layout,
  978. meta: {
  979. title: '配置',
  980. icon: 'user-settings-line',
  981. guard: ['Admin'],
  982. },
  983. children: [
  984. {
  985. path: 'personalCenter',
  986. name: 'PersonalCenter',
  987. component: '/@/views/setting/personalCenter/index.vue',
  988. meta: {
  989. title: '个人中心',
  990. icon: 'map-pin-user-line',
  991. },
  992. },
  993. {
  994. path: 'userManagement',
  995. name: 'UserManagement',
  996. component: '/@/views/setting/userManagement/index.vue',
  997. meta: {
  998. title: '用户管理',
  999. icon: 'user-3-line',
  1000. },
  1001. },
  1002. {
  1003. path: 'roleManagement',
  1004. name: 'RoleManagement',
  1005. component: '/@/views/setting/roleManagement/index.vue',
  1006. meta: {
  1007. title: '角色管理',
  1008. icon: 'admin-line',
  1009. },
  1010. },
  1011. {
  1012. path: 'departmentManagement',
  1013. name: 'DepartmentManagement',
  1014. component: '/@/views/setting/departmentManagement/index.vue',
  1015. meta: {
  1016. title: '部门管理',
  1017. icon: 'group-line',
  1018. },
  1019. },
  1020. {
  1021. path: 'menuManagement',
  1022. name: 'MenuManagement',
  1023. component: '/@/views/setting/menuManagement/index.vue',
  1024. meta: {
  1025. title: '菜单管理',
  1026. icon: 'menu-2-fill',
  1027. },
  1028. },
  1029. {
  1030. path: 'dictionaryManagement',
  1031. name: 'DictionaryManagement',
  1032. component: '/@/views/setting/dictionaryManagement/index.vue',
  1033. meta: {
  1034. title: '字典管理',
  1035. icon: 'book-2-line',
  1036. dot: true,
  1037. },
  1038. },
  1039. {
  1040. path: 'taskManagement',
  1041. name: 'TaskManagement',
  1042. component: '/@/views/setting/taskManagement/index.vue',
  1043. meta: {
  1044. title: '任务管理',
  1045. icon: 'task-line',
  1046. badge: 'New',
  1047. },
  1048. },
  1049. {
  1050. path: 'systemLog',
  1051. name: 'SystemLog',
  1052. component: '/@/views/setting/systemLog/index.vue',
  1053. meta: {
  1054. title: '系统日志',
  1055. icon: 'file-shield-2-line',
  1056. },
  1057. },
  1058. {
  1059. path: 'websiteSetting',
  1060. name: 'WebsiteSetting',
  1061. component: '/@/views/setting/websiteSetting/index.vue',
  1062. meta: {
  1063. title: '网站设置',
  1064. icon: 'global-line',
  1065. },
  1066. },
  1067. ],
  1068. },
  1069. {
  1070. path: '/noColumn',
  1071. name: 'NoColumn',
  1072. component: Layout,
  1073. meta: {
  1074. title: '单栏',
  1075. icon: 'delete-column',
  1076. guard: ['Admin'],
  1077. levelHidden: true,
  1078. breadcrumbHidden: true,
  1079. },
  1080. children: [
  1081. {
  1082. path: 'deleteColumn',
  1083. name: 'DeleteColumn',
  1084. component: '/@/views/noColumn/deleteColumn/index.vue',
  1085. meta: {
  1086. title: '单栏',
  1087. icon: 'delete-column',
  1088. noColumn: true,
  1089. },
  1090. },
  1091. ],
  1092. },
  1093. {
  1094. path: '/goods',
  1095. name: 'Goods',
  1096. component: Layout,
  1097. meta: {
  1098. title: '商品',
  1099. icon: 'shopping-bag-3-line',
  1100. },
  1101. children: [
  1102. {
  1103. path: 'goodsManagement',
  1104. name: 'GoodsManagement',
  1105. component: '/@/views/goods/GoodsManagement.vue',
  1106. meta: {
  1107. title: '商品管理',
  1108. icon: 'shopping-basket-line',
  1109. },
  1110. },
  1111. {
  1112. path: 'goodsList',
  1113. name: 'GoodsList',
  1114. component: '/@/views/goods/GoodsList.vue',
  1115. meta: {
  1116. title: '商品列表',
  1117. icon: 'list-check-3',
  1118. },
  1119. },
  1120. {
  1121. path: 'workOrder',
  1122. name: 'WorkOrder',
  1123. component: '/@/views/goods/WorkOrder.vue',
  1124. meta: {
  1125. title: '工单管理',
  1126. icon: 'list-ordered-2',
  1127. },
  1128. },
  1129. {
  1130. path: 'goodsTag',
  1131. name: 'GoodsTag',
  1132. component: '/@/views/goods/GoodsTag.vue',
  1133. meta: {
  1134. title: '商品分组',
  1135. icon: 'shopping-basket-2-line',
  1136. },
  1137. },
  1138. ],
  1139. },
  1140. {
  1141. path: '/chat',
  1142. name: 'Chat',
  1143. component: Layout,
  1144. meta: {
  1145. title: 'GPT',
  1146. icon: 'chat-1-line',
  1147. },
  1148. children: [
  1149. {
  1150. path: 'chatGPT',
  1151. name: 'ChatGPT',
  1152. component: '/@/views/chatGPT/ChatGPT.vue',
  1153. meta: {
  1154. title: 'ChatGPT',
  1155. icon: 'openai-line',
  1156. dot: true,
  1157. },
  1158. },
  1159. {
  1160. path: 'speechSynthesis',
  1161. name: 'SpeechSynthesis',
  1162. component: '/@/views/chatGPT/SpeechSynthesis.vue',
  1163. meta: {
  1164. title: '语音合成',
  1165. icon: 'customer-service-line',
  1166. },
  1167. },
  1168. {
  1169. path: '//claude.ai/chat',
  1170. name: 'Claude',
  1171. meta: {
  1172. title: 'Claude',
  1173. target: '_blank',
  1174. icon: 'brain-line',
  1175. },
  1176. },
  1177. {
  1178. path: '//yiyan.baidu.com',
  1179. name: 'Yiyan',
  1180. meta: {
  1181. title: '文心一言',
  1182. target: '_blank',
  1183. icon: 'baidu-line',
  1184. },
  1185. },
  1186. {
  1187. path: '//qianwen.aliyun.com/chat',
  1188. name: 'Qianwen',
  1189. meta: {
  1190. title: '通义千问',
  1191. target: '_blank',
  1192. icon: 'taobao-line',
  1193. },
  1194. },
  1195. ],
  1196. },
  1197. {
  1198. path: '/portal',
  1199. name: 'Portal',
  1200. component: '/@/views/portal/Portal.vue',
  1201. meta: {
  1202. title: '门户',
  1203. icon: 'user-heart-line',
  1204. target: '_blank',
  1205. },
  1206. },
  1207. {
  1208. path: '/:pathMatch(.*)*',
  1209. redirect: '/404',
  1210. name: 'NotFound',
  1211. meta: {
  1212. hidden: true,
  1213. },
  1214. },
  1215. ]
  1216. export default [
  1217. {
  1218. url: '/router/getList',
  1219. method: 'get',
  1220. response() {
  1221. return {
  1222. code: 200,
  1223. msg: 'success',
  1224. data: { list },
  1225. }
  1226. },
  1227. },
  1228. ] as MockMethod[]