menu.ts 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. import { resultSuccess } from '../_util';
  2. import { MockMethod } from 'vite-plugin-mock';
  3. // single
  4. const homeRoute = {
  5. path: '/home',
  6. name: 'Home',
  7. component: '/dashboard/welcome/index',
  8. meta: {
  9. title: 'routes.dashboard.welcome',
  10. affix: true,
  11. icon: 'bx:bx-home',
  12. },
  13. };
  14. const dashboardRoute = {
  15. path: '/dashboard',
  16. name: 'Dashboard',
  17. component: 'LAYOUT',
  18. redirect: '/dashboard/workbench',
  19. meta: {
  20. icon: 'bx:bx-home',
  21. title: 'routes.dashboard.dashboard',
  22. },
  23. children: [
  24. {
  25. path: 'workbench',
  26. name: 'Workbench',
  27. component: '/dashboard/workbench/index.vue',
  28. meta: {
  29. title: 'routes.dashboard.workbench',
  30. },
  31. },
  32. {
  33. path: 'analysis',
  34. name: 'Analysis',
  35. component: '/dashboard/analysis/index.vue',
  36. meta: {
  37. title: 'routes.dashboard.analysis',
  38. },
  39. },
  40. ],
  41. };
  42. const tableRoute = {
  43. path: '/table',
  44. name: 'Table',
  45. component: 'LAYOUT',
  46. redirect: '/table/index',
  47. meta: {
  48. icon: 'bx:bx-table',
  49. title: 'routes.table.table',
  50. },
  51. children: [
  52. {
  53. path: 'table',
  54. name: 'Table',
  55. component: '/table/table/index.vue',
  56. meta: {
  57. title: 'routes.table.table',
  58. icon: 'ant-design:table-outlined',
  59. },
  60. },
  61. {
  62. path: 'edit',
  63. name: 'Edit',
  64. component: '/table/editTable/index.vue',
  65. meta: {
  66. title: 'routes.table.edit',
  67. icon: 'ant-design:table-outlined',
  68. },
  69. },
  70. ],
  71. };
  72. const testRoute = {
  73. path: '/test',
  74. name: 'TestDemo',
  75. component: 'LAYOUT',
  76. redirect: '/table/basic',
  77. meta: {
  78. icon: 'ant-design:table-outlined',
  79. title: '测试',
  80. },
  81. children: [
  82. {
  83. path: 'basic',
  84. name: 'testBasic',
  85. component: '/test/index',
  86. meta: {
  87. title: '测试功能',
  88. icon: 'bx:bx-home',
  89. },
  90. },
  91. ],
  92. };
  93. const frontRoute = {
  94. path: 'front',
  95. name: 'PermissionFrontDemo',
  96. meta: {
  97. title: 'routes.demo.permission.front',
  98. },
  99. children: [
  100. {
  101. path: 'page',
  102. name: 'FrontPageAuth',
  103. component: '/demo/permission/front/index',
  104. meta: {
  105. title: 'routes.demo.permission.frontPage',
  106. },
  107. },
  108. {
  109. path: 'btn',
  110. name: 'FrontBtnAuth',
  111. component: '/demo/permission/front/Btn',
  112. meta: {
  113. title: 'routes.demo.permission.frontBtn',
  114. },
  115. },
  116. {
  117. path: 'auth-pageA',
  118. name: 'FrontAuthPageA',
  119. component: '/demo/permission/front/AuthPageA',
  120. meta: {
  121. title: 'routes.demo.permission.frontTestA',
  122. },
  123. },
  124. {
  125. path: 'auth-pageB',
  126. name: 'FrontAuthPageB',
  127. component: '/demo/permission/front/AuthPageB',
  128. meta: {
  129. title: 'routes.demo.permission.frontTestB',
  130. },
  131. },
  132. ],
  133. };
  134. const backRoute = {
  135. path: 'back',
  136. name: 'PermissionBackDemo',
  137. meta: {
  138. title: 'routes.demo.permission.back',
  139. },
  140. children: [
  141. {
  142. path: 'page',
  143. name: 'BackAuthPage',
  144. component: '/demo/permission/back/index',
  145. meta: {
  146. title: 'routes.demo.permission.backPage',
  147. },
  148. },
  149. {
  150. path: 'btn',
  151. name: 'BackAuthBtn',
  152. component: '/demo/permission/back/Btn',
  153. meta: {
  154. title: 'routes.demo.permission.backBtn',
  155. },
  156. },
  157. ],
  158. };
  159. const authRoute = {
  160. path: '/permission',
  161. name: 'Permission',
  162. component: 'LAYOUT',
  163. redirect: '/permission/front/page',
  164. meta: {
  165. icon: 'carbon:user-role',
  166. title: 'routes.demo.permission.permission',
  167. },
  168. children: [frontRoute, backRoute],
  169. };
  170. const authRoute1 = {
  171. path: '/permission',
  172. name: 'Permission',
  173. component: 'LAYOUT',
  174. redirect: '/permission/front/page',
  175. meta: {
  176. icon: 'carbon:user-role',
  177. title: 'routes.demo.permission.permission',
  178. },
  179. children: [backRoute],
  180. };
  181. const levelRoute = {
  182. path: '/level',
  183. name: 'Level',
  184. component: 'LAYOUT',
  185. redirect: '/level/menu1/menu1-1',
  186. meta: {
  187. icon: 'carbon:user-role',
  188. title: 'routes.demo.level.level',
  189. },
  190. children: [
  191. {
  192. path: 'menu1',
  193. name: 'Menu1Demo',
  194. meta: {
  195. title: 'Menu1',
  196. },
  197. children: [
  198. {
  199. path: 'menu1-1',
  200. name: 'Menu11Demo',
  201. meta: {
  202. title: 'Menu1-1',
  203. },
  204. children: [
  205. {
  206. path: 'menu1-1-1',
  207. name: 'Menu111Demo',
  208. component: '/demo/level/Menu111',
  209. meta: {
  210. title: 'Menu111',
  211. },
  212. },
  213. ],
  214. },
  215. {
  216. path: 'menu1-2',
  217. name: 'Menu12Demo',
  218. component: '/demo/level/Menu12',
  219. meta: {
  220. title: 'Menu1-2',
  221. },
  222. },
  223. ],
  224. },
  225. {
  226. path: 'menu2',
  227. name: 'Menu2Demo',
  228. component: '/demo/level/Menu2',
  229. meta: {
  230. title: 'Menu2',
  231. },
  232. },
  233. ],
  234. };
  235. export default [
  236. {
  237. url: '/api/getMenuListById',
  238. timeout: 1000,
  239. method: 'get',
  240. response: ({ query }) => {
  241. const { id } = query;
  242. if (!id || id === '1') {
  243. return resultSuccess([homeRoute, dashboardRoute, tableRoute, testRoute]);
  244. }
  245. if (id === '2') {
  246. return resultSuccess([dashboardRoute, authRoute1, levelRoute]);
  247. }
  248. },
  249. },
  250. ] as MockMethod[];