menu.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. import { resultSuccess, resultError, getRequestToken, requestParams } from '../_util';
  2. import { MockMethod } from 'vite-plugin-mock';
  3. import { createFakeUserList } from './user';
  4. // single
  5. const dashboardRoute = {
  6. path: '/dashboard',
  7. name: 'Welcome',
  8. component: '/dashboard/analysis/index',
  9. meta: {
  10. title: 'routes.dashboard.analysis',
  11. affix: true,
  12. icon: 'bx:bx-home',
  13. },
  14. };
  15. const backRoute = {
  16. path: 'back',
  17. name: 'PermissionBackDemo',
  18. meta: {
  19. title: 'routes.demo.permission.back',
  20. },
  21. children: [
  22. {
  23. path: 'page',
  24. name: 'BackAuthPage',
  25. component: '/demo/permission/back/index',
  26. meta: {
  27. title: 'routes.demo.permission.backPage',
  28. },
  29. },
  30. {
  31. path: 'btn',
  32. name: 'BackAuthBtn',
  33. component: '/demo/permission/back/Btn',
  34. meta: {
  35. title: 'routes.demo.permission.backBtn',
  36. },
  37. },
  38. ],
  39. };
  40. const authRoute = {
  41. path: '/permission',
  42. name: 'Permission',
  43. component: 'LAYOUT',
  44. redirect: '/permission/front/page',
  45. meta: {
  46. icon: 'carbon:user-role',
  47. title: 'routes.demo.permission.permission',
  48. },
  49. children: [backRoute],
  50. };
  51. const levelRoute = {
  52. path: '/level',
  53. name: 'Level',
  54. component: 'LAYOUT',
  55. redirect: '/level/menu1/menu1-1',
  56. meta: {
  57. icon: 'carbon:user-role',
  58. title: 'routes.demo.level.level',
  59. },
  60. children: [
  61. {
  62. path: 'menu1',
  63. name: 'Menu1Demo',
  64. meta: {
  65. title: 'Menu1',
  66. },
  67. children: [
  68. {
  69. path: 'menu1-1',
  70. name: 'Menu11Demo',
  71. meta: {
  72. title: 'Menu1-1',
  73. },
  74. children: [
  75. {
  76. path: 'menu1-1-1',
  77. name: 'Menu111Demo',
  78. component: '/demo/level/Menu111',
  79. meta: {
  80. title: 'Menu111',
  81. },
  82. },
  83. ],
  84. },
  85. {
  86. path: 'menu1-2',
  87. name: 'Menu12Demo',
  88. component: '/demo/level/Menu12',
  89. meta: {
  90. title: 'Menu1-2',
  91. },
  92. },
  93. ],
  94. },
  95. {
  96. path: 'menu2',
  97. name: 'Menu2Demo',
  98. component: '/demo/level/Menu2',
  99. meta: {
  100. title: 'Menu2',
  101. },
  102. },
  103. ],
  104. };
  105. const sysRoute = {
  106. path: '/system',
  107. name: 'System',
  108. component: 'LAYOUT',
  109. redirect: '/system/account',
  110. meta: {
  111. icon: 'ion:settings-outline',
  112. title: 'routes.demo.system.moduleName',
  113. },
  114. children: [
  115. {
  116. path: 'account',
  117. name: 'AccountManagement',
  118. meta: {
  119. title: 'routes.demo.system.account',
  120. ignoreKeepAlive: true,
  121. },
  122. component: '/demo/system/account/index',
  123. },
  124. {
  125. path: 'role',
  126. name: 'RoleManagement',
  127. meta: {
  128. title: 'routes.demo.system.role',
  129. ignoreKeepAlive: true,
  130. },
  131. component: '/demo/system/role/index',
  132. },
  133. {
  134. path: 'menu',
  135. name: 'MenuManagement',
  136. meta: {
  137. title: 'routes.demo.system.menu',
  138. ignoreKeepAlive: true,
  139. },
  140. component: '/demo/system/menu/index',
  141. },
  142. {
  143. path: 'dept',
  144. name: 'DeptManagement',
  145. meta: {
  146. title: 'routes.demo.system.dept',
  147. ignoreKeepAlive: true,
  148. },
  149. component: '/demo/system/dept/index',
  150. },
  151. {
  152. path: 'changePassword',
  153. name: 'ChangePassword',
  154. meta: {
  155. title: 'routes.demo.system.password',
  156. ignoreKeepAlive: true,
  157. },
  158. component: '/demo/system/password/index',
  159. },
  160. ],
  161. };
  162. export default [
  163. {
  164. url: '/basic-api/getMenuList',
  165. timeout: 1000,
  166. method: 'get',
  167. response: (request: requestParams) => {
  168. const token = getRequestToken(request);
  169. if (!token) {
  170. return resultError('Invalid token!');
  171. }
  172. const checkUser = createFakeUserList().find((item) => item.token === token);
  173. if (!checkUser) {
  174. return resultError('Invalid user token!');
  175. }
  176. const id = checkUser.userId;
  177. if (!id || id === '1') {
  178. return resultSuccess([dashboardRoute, authRoute, levelRoute, sysRoute]);
  179. }
  180. if (id === '2') {
  181. return resultSuccess([dashboardRoute, authRoute, levelRoute]);
  182. }
  183. },
  184. },
  185. ] as MockMethod[];