index.ts 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984
  1. import config from '@/config/axios/config'
  2. import { MockMethod } from 'vite-plugin-mock'
  3. import Mock from 'mockjs'
  4. import { toAnyString } from '@/utils'
  5. const { code } = config
  6. const timeout = 1
  7. const adminList = [
  8. {
  9. path: '/dashboard',
  10. component: '#',
  11. redirect: '/dashboard/analysis',
  12. name: 'Dashboard',
  13. meta: {
  14. title: 'router.dashboard',
  15. icon: 'ant-design:dashboard-filled',
  16. alwaysShow: true
  17. },
  18. children: [
  19. {
  20. path: 'analysis',
  21. component: 'views/Dashboard/Analysis',
  22. name: 'Analysis',
  23. meta: {
  24. title: 'router.analysis',
  25. noCache: true
  26. }
  27. },
  28. {
  29. path: 'workplace',
  30. component: 'views/Dashboard/Workplace',
  31. name: 'Workplace',
  32. meta: {
  33. title: 'router.workplace',
  34. noCache: true
  35. }
  36. }
  37. ]
  38. },
  39. {
  40. path: '/manage',
  41. component: '#',
  42. redirect: '/manage/news-page',
  43. name: 'Manage',
  44. meta: {
  45. title: '模块管理',
  46. icon: 'ep:menu',
  47. alwaysShow: true
  48. },
  49. children: [
  50. {
  51. path: 'news-page',
  52. component: 'views/Manage/News/NewsPage',
  53. name: 'NewsPage',
  54. meta: {
  55. title: 'router.form',
  56. alwaysShow: true
  57. },
  58. children: [
  59. {
  60. path: 'default-form',
  61. component: 'views/Components/Form/DefaultForm',
  62. name: 'DefaultForm',
  63. meta: {
  64. title: 'router.defaultForm'
  65. }
  66. },
  67. {
  68. path: 'use-form',
  69. component: 'views/Components/Form/UseFormDemo',
  70. name: 'UseForm',
  71. meta: {
  72. title: 'UseForm'
  73. }
  74. }
  75. ]
  76. },
  77. {
  78. path: 'table',
  79. component: '##',
  80. redirect: '/components/table/default-table',
  81. name: 'TableDemo',
  82. meta: {
  83. title: 'router.table',
  84. alwaysShow: true
  85. },
  86. children: [
  87. {
  88. path: 'default-table',
  89. component: 'views/Components/Table/DefaultTable',
  90. name: 'DefaultTable',
  91. meta: {
  92. title: 'router.defaultTable'
  93. }
  94. },
  95. {
  96. path: 'use-table',
  97. component: 'views/Components/Table/UseTableDemo',
  98. name: 'UseTable',
  99. meta: {
  100. title: 'UseTable'
  101. }
  102. },
  103. {
  104. path: 'tree-table',
  105. component: 'views/Components/Table/TreeTable',
  106. name: 'TreeTable',
  107. meta: {
  108. title: 'TreeTable'
  109. }
  110. },
  111. {
  112. path: 'table-image-preview',
  113. component: 'views/Components/Table/TableImagePreview',
  114. name: 'TableImagePreview',
  115. meta: {
  116. title: 'router.PicturePreview'
  117. }
  118. }
  119. // {
  120. // path: 'ref-table',
  121. // component: 'views/Components/Table/RefTable',
  122. // name: 'RefTable',
  123. // meta: {
  124. // title: 'RefTable'
  125. // }
  126. // }
  127. ]
  128. },
  129. {
  130. path: 'editor-demo',
  131. component: '##',
  132. redirect: '/components/editor-demo/editor',
  133. name: 'EditorDemo',
  134. meta: {
  135. title: 'router.editor',
  136. alwaysShow: true
  137. },
  138. children: [
  139. {
  140. path: 'editor',
  141. component: 'views/Components/Editor/Editor',
  142. name: 'Editor',
  143. meta: {
  144. title: 'router.richText'
  145. }
  146. },
  147. {
  148. path: 'json-editor',
  149. component: 'views/Components/Editor/JsonEditor',
  150. name: 'JsonEditor',
  151. meta: {
  152. title: 'router.jsonEditor'
  153. }
  154. }
  155. ]
  156. },
  157. {
  158. path: 'search',
  159. component: 'views/Components/Search',
  160. name: 'Search',
  161. meta: {
  162. title: 'router.search'
  163. }
  164. },
  165. {
  166. path: 'news-add',
  167. component: 'views/Manage/News/NewsAdd',
  168. name: 'NewsAdd',
  169. meta: {
  170. title: '新增新闻',
  171. noTagsView: true,
  172. noCache: true,
  173. hidden: true,
  174. canTo: true,
  175. activeMenu: '/manage/news-page'
  176. }
  177. },
  178. {
  179. path: 'useTagsView',
  180. component: 'views/hooks/useTagsView',
  181. name: 'UseTagsView',
  182. meta: {
  183. title: 'useTagsView'
  184. }
  185. },
  186. {
  187. path: 'useValidator',
  188. component: 'views/hooks/useValidator',
  189. name: 'UseValidator',
  190. meta: {
  191. title: 'useValidator'
  192. }
  193. },
  194. {
  195. path: 'useCrudSchemas',
  196. component: 'views/hooks/useCrudSchemas',
  197. name: 'UseCrudSchemas',
  198. meta: {
  199. title: 'useCrudSchemas'
  200. }
  201. }
  202. ]
  203. },
  204. {
  205. path: '/level',
  206. component: '#',
  207. redirect: '/level/menu1/menu1-1/menu1-1-1',
  208. name: 'Level',
  209. meta: {
  210. title: 'router.level',
  211. icon: 'carbon:skill-level-advanced'
  212. },
  213. children: [
  214. {
  215. path: 'menu1',
  216. name: 'Menu1',
  217. component: '##',
  218. redirect: '/level/menu1/menu1-1/menu1-1-1',
  219. meta: {
  220. title: 'router.menu1'
  221. },
  222. children: [
  223. {
  224. path: 'menu1-1',
  225. name: 'Menu11',
  226. component: '##',
  227. redirect: '/level/menu1/menu1-1/menu1-1-1',
  228. meta: {
  229. title: 'router.menu11',
  230. alwaysShow: true
  231. },
  232. children: [
  233. {
  234. path: 'menu1-1-1',
  235. name: 'Menu111',
  236. component: 'views/Level/Menu111',
  237. meta: {
  238. title: 'router.menu111'
  239. }
  240. }
  241. ]
  242. },
  243. {
  244. path: 'menu1-2',
  245. name: 'Menu12',
  246. component: 'views/Level/Menu12',
  247. meta: {
  248. title: 'router.menu12'
  249. }
  250. }
  251. ]
  252. },
  253. {
  254. path: 'news-detail',
  255. component: 'views/Manage/News/NewsDetail',
  256. name: 'NewsDetail',
  257. meta: {
  258. title: '新闻详情',
  259. noTagsView: true,
  260. noCache: true,
  261. hidden: true,
  262. canTo: true,
  263. activeMenu: '/manage/news-page'
  264. }
  265. },
  266. {
  267. path: 'product-page',
  268. component: 'views/Manage/Product/ProductPage',
  269. name: 'ProductPage',
  270. meta: {
  271. title: '产品管理'
  272. }
  273. },
  274. {
  275. path: 'product-add',
  276. component: 'views/Manage/Product/ProductAdd',
  277. name: 'ProductAdd',
  278. meta: {
  279. title: '新增产品',
  280. noTagsView: true,
  281. noCache: true,
  282. hidden: true,
  283. canTo: true,
  284. activeMenu: '/manage/product-page'
  285. }
  286. },
  287. {
  288. path: 'product-edit',
  289. component: 'views/Manage/Product/ProductEdit',
  290. name: 'ProductEdit',
  291. meta: {
  292. title: '编辑产品',
  293. noTagsView: true,
  294. noCache: true,
  295. hidden: true,
  296. canTo: true,
  297. activeMenu: '/manage/product-page'
  298. }
  299. },
  300. {
  301. path: 'product-detail',
  302. component: 'views/Manage/Product/ProductDetail',
  303. name: 'ProductDetail',
  304. meta: {
  305. title: '产品详情',
  306. noTagsView: true,
  307. noCache: true,
  308. hidden: true,
  309. canTo: true,
  310. activeMenu: '/manage/product-page'
  311. }
  312. }
  313. ]
  314. },
  315. {
  316. path: '/example',
  317. component: '#',
  318. redirect: '/example/example-page',
  319. name: 'Example',
  320. meta: {
  321. title: 'router.example',
  322. icon: 'ep:management',
  323. alwaysShow: true
  324. },
  325. children: [
  326. {
  327. path: 'example-page',
  328. component: 'views/Example/Page/ExamplePage',
  329. name: 'ExamplePage',
  330. meta: {
  331. title: 'router.examplePage'
  332. }
  333. },
  334. {
  335. path: 'example-add',
  336. component: 'views/Example/Page/ExampleAdd',
  337. name: 'ExampleAdd',
  338. meta: {
  339. title: 'router.exampleAdd',
  340. noTagsView: true,
  341. noCache: true,
  342. hidden: true,
  343. canTo: true,
  344. activeMenu: '/example/example-page'
  345. }
  346. },
  347. {
  348. path: 'example-edit',
  349. component: 'views/Example/Page/ExampleEdit',
  350. name: 'ExampleEdit',
  351. meta: {
  352. title: 'router.exampleEdit',
  353. noTagsView: true,
  354. noCache: true,
  355. hidden: true,
  356. canTo: true,
  357. activeMenu: '/example/example-page'
  358. }
  359. },
  360. {
  361. path: 'example-detail',
  362. component: 'views/Example/Page/ExampleDetail',
  363. name: 'ExampleDetail',
  364. meta: {
  365. title: 'router.exampleDetail',
  366. noTagsView: true,
  367. noCache: true,
  368. hidden: true,
  369. canTo: true,
  370. activeMenu: '/example/example-page'
  371. }
  372. }
  373. ]
  374. },
  375. {
  376. path: '/authorization',
  377. component: '#',
  378. redirect: '/authorization/user',
  379. name: 'Authorization',
  380. meta: {
  381. title: 'router.authorization',
  382. icon: 'eos-icons:role-binding',
  383. alwaysShow: true
  384. },
  385. children: [
  386. {
  387. path: 'department',
  388. component: 'views/Authorization/Department/Department',
  389. name: 'Department',
  390. meta: {
  391. title: 'router.department'
  392. }
  393. },
  394. {
  395. path: 'user',
  396. component: 'views/Authorization/User/User',
  397. name: 'User',
  398. meta: {
  399. title: 'router.user'
  400. }
  401. },
  402. {
  403. path: 'menu',
  404. component: 'views/Authorization/Menu/Menu',
  405. name: 'Menu',
  406. meta: {
  407. title: 'router.menuManagement'
  408. }
  409. },
  410. {
  411. path: 'role',
  412. component: 'views/Authorization/Role/Role',
  413. name: 'Role',
  414. meta: {
  415. title: 'router.role'
  416. }
  417. },
  418. {
  419. path: 'test',
  420. component: 'views/Authorization/Test/Test',
  421. name: 'Test',
  422. meta: {
  423. title: 'router.permission',
  424. permission: ['add', 'edit', 'delete']
  425. }
  426. }
  427. ]
  428. }
  429. ]
  430. const testList: string[] = [
  431. '/dashboard',
  432. '/dashboard/analysis',
  433. '/dashboard/workplace',
  434. 'external-link',
  435. 'https://element-plus-admin-doc.cn/',
  436. '/guide',
  437. '/guide/index',
  438. '/components',
  439. '/components/form',
  440. '/components/form/default-form',
  441. '/components/form/use-form',
  442. '/components/form/ref-form',
  443. '/components/table',
  444. '/components/table/default-table',
  445. '/components/table/use-table',
  446. '/components/table/tree-table',
  447. '/components/table/table-image-preview',
  448. '/components/table/ref-table',
  449. '/components/editor-demo',
  450. '/components/editor-demo/editor',
  451. '/components/editor-demo/json-editor',
  452. '/components/search',
  453. '/components/descriptions',
  454. '/components/image-viewer',
  455. '/components/dialog',
  456. '/components/icon',
  457. '/components/echart',
  458. '/components/count-to',
  459. '/components/qrcode',
  460. '/components/highlight',
  461. '/components/infotip',
  462. '/Components/InputPassword',
  463. '/Components/Sticky',
  464. 'function',
  465. '/function/multiple-tabs',
  466. '/function/multiple-tabs-demo/:id',
  467. '/hooks',
  468. '/hooks/useWatermark',
  469. '/hooks/useTagsView',
  470. '/hooks/useValidator',
  471. '/hooks/useCrudSchemas',
  472. '/level',
  473. '/level/menu1',
  474. '/level/menu1/menu1-1',
  475. '/level/menu1/menu1-1/menu1-1-1',
  476. '/level/menu1/menu1-2',
  477. '/level/menu2',
  478. '/example',
  479. '/example/example-dialog',
  480. '/example/example-page',
  481. '/example/example-add',
  482. '/example/example-edit',
  483. '/example/example-detail',
  484. '/authorization',
  485. '/authorization/department',
  486. '/authorization/user',
  487. '/authorization/role',
  488. '/authorization/menu',
  489. '/authorization/test',
  490. '/error',
  491. '/error/404-demo',
  492. '/error/403-demo',
  493. '/error/500-demo'
  494. ]
  495. const List: any[] = []
  496. const roleNames = ['超级管理员', '管理员', '普通用户', '游客']
  497. const menus = [
  498. [
  499. {
  500. path: '/dashboard',
  501. component: '#',
  502. redirect: '/dashboard/analysis',
  503. name: 'Dashboard',
  504. status: Mock.Random.integer(0, 1),
  505. id: 1,
  506. meta: {
  507. title: '首页',
  508. icon: 'ant-design:dashboard-filled',
  509. alwaysShow: true
  510. },
  511. children: [
  512. {
  513. path: 'analysis',
  514. component: 'views/Dashboard/Analysis',
  515. name: 'Analysis',
  516. status: Mock.Random.integer(0, 1),
  517. id: 2,
  518. meta: {
  519. title: '分析页',
  520. noCache: true
  521. }
  522. },
  523. {
  524. path: 'workplace',
  525. component: 'views/Dashboard/Workplace',
  526. name: 'Workplace',
  527. status: Mock.Random.integer(0, 1),
  528. id: 3,
  529. meta: {
  530. title: '工作台',
  531. noCache: true
  532. }
  533. }
  534. ]
  535. },
  536. {
  537. path: '/external-link',
  538. component: '#',
  539. meta: {
  540. title: '文档',
  541. icon: 'clarity:document-solid'
  542. },
  543. name: 'ExternalLink',
  544. status: Mock.Random.integer(0, 1),
  545. id: 4,
  546. children: [
  547. {
  548. path: 'https://element-plus-admin-doc.cn/',
  549. name: 'DocumentLink',
  550. status: Mock.Random.integer(0, 1),
  551. id: 5,
  552. meta: {
  553. title: '文档'
  554. }
  555. }
  556. ]
  557. },
  558. {
  559. path: '/level',
  560. component: '#',
  561. redirect: '/level/menu1/menu1-1/menu1-1-1',
  562. name: 'Level',
  563. status: Mock.Random.integer(0, 1),
  564. id: 6,
  565. meta: {
  566. title: '菜单',
  567. icon: 'carbon:skill-level-advanced'
  568. },
  569. children: [
  570. {
  571. path: 'menu1',
  572. name: 'Menu1',
  573. component: '##',
  574. status: Mock.Random.integer(0, 1),
  575. id: 7,
  576. redirect: '/level/menu1/menu1-1/menu1-1-1',
  577. meta: {
  578. title: '菜单1'
  579. },
  580. children: [
  581. {
  582. path: 'menu1-1',
  583. name: 'Menu11',
  584. component: '##',
  585. status: Mock.Random.integer(0, 1),
  586. id: 8,
  587. redirect: '/level/menu1/menu1-1/menu1-1-1',
  588. meta: {
  589. title: '菜单1-1',
  590. alwaysShow: true
  591. },
  592. children: [
  593. {
  594. path: 'menu1-1-1',
  595. name: 'Menu111',
  596. component: 'views/Level/Menu111',
  597. status: Mock.Random.integer(0, 1),
  598. id: 9,
  599. permission: ['edit', 'add', 'delete'],
  600. meta: {
  601. title: '菜单1-1-1',
  602. permission: ['edit', 'add', 'delete']
  603. }
  604. }
  605. ]
  606. },
  607. {
  608. path: 'menu1-2',
  609. name: 'Menu12',
  610. component: 'views/Level/Menu12',
  611. status: Mock.Random.integer(0, 1),
  612. id: 10,
  613. permission: ['edit', 'add', 'delete'],
  614. meta: {
  615. title: '菜单1-2',
  616. permission: ['edit', 'add', 'delete']
  617. }
  618. }
  619. ]
  620. },
  621. {
  622. path: 'menu2',
  623. name: 'Menu2Demo',
  624. component: 'views/Level/Menu2',
  625. status: Mock.Random.integer(0, 1),
  626. id: 11,
  627. permission: ['edit', 'add', 'delete'],
  628. meta: {
  629. title: '菜单2',
  630. permission: ['edit', 'add', 'delete']
  631. }
  632. }
  633. ]
  634. },
  635. {
  636. path: '/example',
  637. component: '#',
  638. redirect: '/example/example-dialog',
  639. name: 'Example',
  640. status: Mock.Random.integer(0, 1),
  641. id: 12,
  642. meta: {
  643. title: '综合示例',
  644. icon: 'ep:management',
  645. alwaysShow: true
  646. },
  647. children: [
  648. {
  649. path: 'example-dialog',
  650. component: 'views/Example/Dialog/ExampleDialog',
  651. name: 'ExampleDialog',
  652. status: Mock.Random.integer(0, 1),
  653. id: 13,
  654. permission: ['edit', 'add', 'delete'],
  655. meta: {
  656. title: '综合示例-弹窗',
  657. permission: ['edit', 'add', 'delete']
  658. }
  659. },
  660. {
  661. path: 'example-page',
  662. component: 'views/Example/Page/ExamplePage',
  663. name: 'ExamplePage',
  664. status: Mock.Random.integer(0, 1),
  665. id: 14,
  666. permission: ['edit', 'add', 'delete'],
  667. meta: {
  668. title: '综合示例-页面',
  669. permission: ['edit', 'add', 'delete']
  670. }
  671. },
  672. {
  673. path: 'example-add',
  674. component: 'views/Example/Page/ExampleAdd',
  675. name: 'ExampleAdd',
  676. status: Mock.Random.integer(0, 1),
  677. id: 15,
  678. permission: ['edit', 'add', 'delete'],
  679. meta: {
  680. title: '综合示例-新增',
  681. noTagsView: true,
  682. noCache: true,
  683. hidden: true,
  684. canTo: true,
  685. activeMenu: '/example/example-page',
  686. permission: ['edit', 'add', 'delete']
  687. }
  688. },
  689. {
  690. path: 'example-edit',
  691. component: 'views/Example/Page/ExampleEdit',
  692. name: 'ExampleEdit',
  693. status: Mock.Random.integer(0, 1),
  694. id: 16,
  695. permission: ['edit', 'add', 'delete'],
  696. meta: {
  697. title: '综合示例-编辑',
  698. noTagsView: true,
  699. noCache: true,
  700. hidden: true,
  701. canTo: true,
  702. activeMenu: '/example/example-page',
  703. permission: ['edit', 'add', 'delete']
  704. }
  705. },
  706. {
  707. path: 'example-detail',
  708. component: 'views/Example/Page/ExampleDetail',
  709. name: 'ExampleDetail',
  710. status: Mock.Random.integer(0, 1),
  711. id: 17,
  712. permission: ['edit', 'add', 'delete'],
  713. meta: {
  714. title: '综合示例-详情',
  715. noTagsView: true,
  716. noCache: true,
  717. hidden: true,
  718. canTo: true,
  719. activeMenu: '/example/example-page',
  720. permission: ['edit', 'add', 'delete']
  721. }
  722. }
  723. ]
  724. }
  725. ],
  726. [
  727. {
  728. path: '/dashboard',
  729. component: '#',
  730. redirect: '/dashboard/analysis',
  731. name: 'Dashboard',
  732. status: Mock.Random.integer(0, 1),
  733. id: 1,
  734. meta: {
  735. title: '首页',
  736. icon: 'ant-design:dashboard-filled',
  737. alwaysShow: true
  738. },
  739. children: [
  740. {
  741. path: 'analysis',
  742. component: 'views/Dashboard/Analysis',
  743. name: 'Analysis',
  744. status: Mock.Random.integer(0, 1),
  745. id: 2,
  746. meta: {
  747. title: '分析页',
  748. noCache: true
  749. }
  750. },
  751. {
  752. path: 'workplace',
  753. component: 'views/Dashboard/Workplace',
  754. name: 'Workplace',
  755. status: Mock.Random.integer(0, 1),
  756. id: 3,
  757. meta: {
  758. title: '工作台',
  759. noCache: true
  760. }
  761. }
  762. ]
  763. }
  764. ],
  765. [
  766. {
  767. path: '/external-link',
  768. component: '#',
  769. meta: {
  770. title: '文档',
  771. icon: 'clarity:document-solid'
  772. },
  773. name: 'ExternalLink',
  774. status: Mock.Random.integer(0, 1),
  775. id: 4,
  776. children: [
  777. {
  778. path: 'https://element-plus-admin-doc.cn/',
  779. name: 'DocumentLink',
  780. status: Mock.Random.integer(0, 1),
  781. id: 5,
  782. meta: {
  783. title: '文档'
  784. }
  785. }
  786. ]
  787. },
  788. {
  789. path: '/level',
  790. component: '#',
  791. redirect: '/level/menu1/menu1-1/menu1-1-1',
  792. name: 'Level',
  793. status: Mock.Random.integer(0, 1),
  794. id: 6,
  795. meta: {
  796. title: '菜单',
  797. icon: 'carbon:skill-level-advanced'
  798. },
  799. children: [
  800. {
  801. path: 'menu1',
  802. name: 'Menu1',
  803. component: '##',
  804. status: Mock.Random.integer(0, 1),
  805. id: 7,
  806. redirect: '/level/menu1/menu1-1/menu1-1-1',
  807. meta: {
  808. title: '菜单1'
  809. },
  810. children: [
  811. {
  812. path: 'menu1-1',
  813. name: 'Menu11',
  814. component: '##',
  815. status: Mock.Random.integer(0, 1),
  816. id: 8,
  817. redirect: '/level/menu1/menu1-1/menu1-1-1',
  818. meta: {
  819. title: '菜单1-1',
  820. alwaysShow: true
  821. },
  822. children: [
  823. {
  824. path: 'menu1-1-1',
  825. name: 'Menu111',
  826. component: 'views/Level/Menu111',
  827. status: Mock.Random.integer(0, 1),
  828. id: 9,
  829. permission: ['edit', 'add', 'delete'],
  830. meta: {
  831. title: '菜单1-1-1',
  832. permission: ['edit', 'add', 'delete']
  833. }
  834. }
  835. ]
  836. },
  837. {
  838. path: 'menu1-2',
  839. name: 'Menu12',
  840. component: 'views/Level/Menu12',
  841. status: Mock.Random.integer(0, 1),
  842. id: 10,
  843. permission: ['edit', 'add', 'delete'],
  844. meta: {
  845. title: '菜单1-2',
  846. permission: ['edit', 'add', 'delete']
  847. }
  848. }
  849. ]
  850. },
  851. {
  852. path: 'menu2',
  853. name: 'Menu2Demo',
  854. component: 'views/Level/Menu2',
  855. status: Mock.Random.integer(0, 1),
  856. id: 11,
  857. permission: ['edit', 'add', 'delete'],
  858. meta: {
  859. title: '菜单2',
  860. permission: ['edit', 'add', 'delete']
  861. }
  862. }
  863. ]
  864. }
  865. ],
  866. [
  867. {
  868. path: '/example',
  869. component: '#',
  870. redirect: '/example/example-dialog',
  871. name: 'Example',
  872. status: Mock.Random.integer(0, 1),
  873. id: 12,
  874. meta: {
  875. title: '综合示例',
  876. icon: 'ep:management',
  877. alwaysShow: true
  878. },
  879. children: [
  880. {
  881. path: 'example-detail',
  882. component: 'views/Example/Page/ExampleDetail',
  883. name: 'ExampleDetail',
  884. status: Mock.Random.integer(0, 1),
  885. id: 17,
  886. permission: ['edit', 'add', 'delete'],
  887. meta: {
  888. title: '综合示例-详情',
  889. noTagsView: true,
  890. noCache: true,
  891. hidden: true,
  892. canTo: true,
  893. activeMenu: '/example/example-page',
  894. permission: ['edit', 'add', 'delete']
  895. }
  896. }
  897. ]
  898. }
  899. ]
  900. ]
  901. for (let i = 0; i < 4; i++) {
  902. List.push(
  903. Mock.mock({
  904. id: toAnyString(),
  905. // timestamp: +Mock.Random.date('T'),
  906. roleName: roleNames[i],
  907. role: '@first',
  908. status: Mock.Random.integer(0, 1),
  909. createTime: '@datetime',
  910. remark: '@cword(10, 15)',
  911. menu: menus[i]
  912. })
  913. )
  914. }
  915. export default [
  916. // 列表接口
  917. {
  918. url: '/role/list',
  919. method: 'get',
  920. timeout,
  921. response: () => {
  922. return {
  923. data: {
  924. code: code,
  925. data: adminList
  926. }
  927. }
  928. }
  929. },
  930. {
  931. url: '/role/table',
  932. method: 'get',
  933. timeout,
  934. response: () => {
  935. return {
  936. data: {
  937. code: code,
  938. data: {
  939. list: List,
  940. total: 4
  941. }
  942. }
  943. }
  944. }
  945. },
  946. // 列表接口
  947. {
  948. url: '/role/list2',
  949. method: 'get',
  950. timeout,
  951. response: () => {
  952. return {
  953. data: {
  954. code: code,
  955. data: testList
  956. }
  957. }
  958. }
  959. },
  960. {
  961. url: '/role/table',
  962. method: 'get',
  963. timeout,
  964. response: () => {
  965. return {
  966. data: {
  967. code: code,
  968. data: {
  969. list: List,
  970. total: 4
  971. }
  972. }
  973. }
  974. }
  975. }
  976. ] as MockMethod[]