menu.ts 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. import { resultSuccess, resultError, getRequestToken, requestParams,baseUrl} from '../_util';
  2. import { MockMethod } from 'vite-plugin-mock';
  3. import { createFakeUserList } from './user';
  4. import { PageEnum } from '/@/enums/pageEnum';
  5. // single
  6. const dashboardRoute = {
  7. path: '/dashboard',
  8. name: 'Dashboard',
  9. component: 'LAYOUT',
  10. redirect: PageEnum.BASE_HOME,
  11. meta: {
  12. title: 'routes.dashboard.dashboard',
  13. hideChildrenInMenu: true,
  14. icon: 'bx:bx-home',
  15. },
  16. children: [
  17. {
  18. path: 'analysis',
  19. name: 'Analysis',
  20. component: '/dashboard/Analysis/index',
  21. meta: {
  22. hideMenu: true,
  23. hideBreadcrumb: true,
  24. title: 'routes.dashboard.analysis',
  25. currentActiveMenu: '/dashboard',
  26. icon: 'bx:bx-home',
  27. },
  28. },
  29. {
  30. path: 'workbench',
  31. name: 'Workbench',
  32. component: '/dashboard/workbench/index',
  33. meta: {
  34. hideMenu: true,
  35. hideBreadcrumb: true,
  36. title: 'routes.dashboard.workbench',
  37. currentActiveMenu: '/dashboard',
  38. icon: 'bx:bx-home',
  39. },
  40. },
  41. ],
  42. };
  43. const backRoute = {
  44. path: 'back',
  45. name: 'PermissionBackDemo',
  46. meta: {
  47. title: 'routes.demo.permission.back',
  48. },
  49. children: [
  50. {
  51. path: 'page',
  52. name: 'BackAuthPage',
  53. component: '/demo/permission/back/index',
  54. meta: {
  55. title: 'routes.demo.permission.backPage',
  56. },
  57. },
  58. {
  59. path: 'btn',
  60. name: 'BackAuthBtn',
  61. component: '/demo/permission/back/Btn',
  62. meta: {
  63. title: 'routes.demo.permission.backBtn',
  64. },
  65. },
  66. ],
  67. };
  68. const authRoute = {
  69. path: '/permission',
  70. name: 'Permission',
  71. component: 'LAYOUT',
  72. redirect: '/permission/front/page',
  73. meta: {
  74. icon: 'carbon:user-role',
  75. title: 'routes.demo.permission.permission',
  76. },
  77. children: [backRoute],
  78. };
  79. const levelRoute = {
  80. path: '/level',
  81. name: 'Level',
  82. component: 'LAYOUT',
  83. redirect: '/level/menu1/menu1-1',
  84. meta: {
  85. icon: 'carbon:user-role',
  86. title: 'routes.demo.level.level',
  87. },
  88. children: [
  89. {
  90. path: 'menu1',
  91. name: 'Menu1Demo',
  92. meta: {
  93. title: 'Menu1',
  94. },
  95. children: [
  96. {
  97. path: 'menu1-1',
  98. name: 'Menu11Demo',
  99. meta: {
  100. title: 'Menu1-1',
  101. },
  102. children: [
  103. {
  104. path: 'menu1-1-1',
  105. name: 'Menu111Demo',
  106. component: '/demo/level/Menu111',
  107. meta: {
  108. title: 'Menu111',
  109. },
  110. },
  111. ],
  112. },
  113. {
  114. path: 'menu1-2',
  115. name: 'Menu12Demo',
  116. component: '/demo/level/Menu12',
  117. meta: {
  118. title: 'Menu1-2',
  119. },
  120. },
  121. ],
  122. },
  123. {
  124. path: 'menu2',
  125. name: 'Menu2Demo',
  126. component: '/demo/level/Menu2',
  127. meta: {
  128. title: 'Menu2',
  129. },
  130. },
  131. ],
  132. };
  133. const sysRoute = {
  134. path: '/system',
  135. name: 'System',
  136. component: 'LAYOUT',
  137. redirect: '/system/account',
  138. meta: {
  139. icon: 'ion:settings-outline',
  140. title: 'routes.demo.system.moduleName',
  141. },
  142. children: [
  143. {
  144. path: 'account',
  145. name: 'AccountManagement',
  146. meta: {
  147. title: 'routes.demo.system.account',
  148. ignoreKeepAlive: true,
  149. },
  150. component: '/demo/system/account/index',
  151. },
  152. {
  153. path: 'account_detail/:id',
  154. name: 'AccountDetail',
  155. meta: {
  156. hideMenu: true,
  157. title: 'routes.demo.system.account_detail',
  158. ignoreKeepAlive: true,
  159. showMenu: false,
  160. currentActiveMenu: '/system/account',
  161. },
  162. component: '/demo/system/account/AccountDetail',
  163. },
  164. {
  165. path: 'role',
  166. name: 'RoleManagement',
  167. meta: {
  168. title: 'routes.demo.system.role',
  169. ignoreKeepAlive: true,
  170. },
  171. component: '/demo/system/role/index',
  172. },
  173. {
  174. path: 'menu',
  175. name: 'MenuManagement',
  176. meta: {
  177. title: 'routes.demo.system.menu',
  178. ignoreKeepAlive: true,
  179. },
  180. component: '/demo/system/menu/index',
  181. },
  182. {
  183. path: 'dept',
  184. name: 'DeptManagement',
  185. meta: {
  186. title: 'routes.demo.system.dept',
  187. ignoreKeepAlive: true,
  188. },
  189. component: '/demo/system/dept/index',
  190. },
  191. {
  192. path: 'changePassword',
  193. name: 'ChangePassword',
  194. meta: {
  195. title: 'routes.demo.system.password',
  196. ignoreKeepAlive: true,
  197. },
  198. component: '/demo/system/password/index',
  199. },
  200. ],
  201. };
  202. const linkRoute = {
  203. path: '/link',
  204. name: 'Link',
  205. component: 'LAYOUT',
  206. meta: {
  207. icon: 'ion:tv-outline',
  208. title: 'routes.demo.iframe.frame',
  209. },
  210. children: [
  211. {
  212. path: 'doc',
  213. name: 'Doc',
  214. meta: {
  215. title: 'routes.demo.iframe.doc',
  216. frameSrc: 'https://vvbin.cn/doc-next/',
  217. },
  218. },
  219. {
  220. path: 'https://vvbin.cn/doc-next/',
  221. name: 'DocExternal',
  222. component: 'LAYOUT',
  223. meta: {
  224. title: 'routes.demo.iframe.docExternal',
  225. },
  226. },
  227. ],
  228. };
  229. export default [
  230. {
  231. url: `${baseUrl}/sys/permission/getUserPermissionByToken`,
  232. timeout: 1000,
  233. method: 'get',
  234. response: (request: requestParams) => {
  235. const token = getRequestToken(request);
  236. if (!token) {
  237. return resultError('Invalid token!');
  238. }
  239. const checkUser = createFakeUserList().find((item) => item.token === token);
  240. if (!checkUser) {
  241. return resultError('Invalid user token!');
  242. }
  243. const id = checkUser.userId;
  244. let menu: Object[];
  245. switch (id) {
  246. case '1':
  247. dashboardRoute.redirect = dashboardRoute.path + '/' + dashboardRoute.children[0].path;
  248. menu = [dashboardRoute, authRoute, levelRoute, sysRoute, linkRoute];
  249. break;
  250. case '2':
  251. dashboardRoute.redirect = dashboardRoute.path + '/' + dashboardRoute.children[1].path;
  252. menu = [dashboardRoute, authRoute, levelRoute, linkRoute];
  253. break;
  254. default:
  255. menu = [];
  256. }
  257. return resultSuccess(menu);
  258. },
  259. },
  260. ] as MockMethod[];