user.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import Mock from 'mockjs';
  2. import setupMock, {
  3. successResponseWrap,
  4. failResponseWrap,
  5. } from '@/utils/setup-mock';
  6. import { MockParams } from '@/types/mock';
  7. import { isLogin } from '@/utils/auth';
  8. setupMock({
  9. setup() {
  10. // Mock.XHR.prototype.withCredentials = true;
  11. // 用户信息
  12. Mock.mock(new RegExp('/api/user/info'), () => {
  13. if (isLogin()) {
  14. const role = window.localStorage.getItem('userRole') || 'admin';
  15. return successResponseWrap({
  16. name: 'admin',
  17. avatar:
  18. '//lf1-xgcdn-tos.pstatp.com/obj/vcloud/vadmin/start.8e0e4855ee346a46ccff8ff3e24db27b.png',
  19. email: 'wangliqun@email.com',
  20. job: 'frontend',
  21. jobName: '前端艺术家',
  22. organization: 'Frontend',
  23. organizationName: '前端',
  24. location: 'beijing',
  25. locationName: '北京',
  26. introduction: '人潇洒,性温存',
  27. personalWebsite: 'https://www.arco.design',
  28. phone: '150****0000',
  29. registrationDate: '2013-05-10 12:10:00',
  30. accountId: '15012312300',
  31. certification: 1,
  32. role,
  33. });
  34. }
  35. return failResponseWrap(null, '未登录', 50008);
  36. });
  37. // 登录
  38. Mock.mock(new RegExp('/api/user/login'), (params: MockParams) => {
  39. const { username, password } = JSON.parse(params.body);
  40. if (!username) {
  41. return failResponseWrap(null, '用户名不能为空', 50000);
  42. }
  43. if (!password) {
  44. return failResponseWrap(null, '密码不能为空', 50000);
  45. }
  46. if (username === 'admin' && password === 'admin') {
  47. window.localStorage.setItem('userRole', 'admin');
  48. return successResponseWrap({
  49. token: '12345',
  50. });
  51. }
  52. if (username === 'user' && password === 'user') {
  53. window.localStorage.setItem('userRole', 'user');
  54. return successResponseWrap({
  55. token: '54321',
  56. });
  57. }
  58. return failResponseWrap(null, '账号或者密码错误', 50000);
  59. });
  60. // 登出
  61. Mock.mock(new RegExp('/api/user/logout'), () => {
  62. return successResponseWrap(null);
  63. });
  64. // 用户的服务端菜单
  65. Mock.mock(new RegExp('/api/user/menu'), () => {
  66. const menuList = [
  67. {
  68. path: '/dashboard',
  69. name: 'dashboard',
  70. meta: {
  71. locale: 'menu.server.dashboard',
  72. requiresAuth: true,
  73. icon: 'icon-dashboard',
  74. order: 1,
  75. },
  76. children: [
  77. {
  78. path: 'workplace',
  79. name: 'Workplace',
  80. meta: {
  81. locale: 'menu.server.workplace',
  82. requiresAuth: true,
  83. },
  84. },
  85. {
  86. path: 'https://arco.design',
  87. name: 'arcoWebsite',
  88. meta: {
  89. locale: 'menu.arcoWebsite',
  90. requiresAuth: true,
  91. },
  92. },
  93. ],
  94. },
  95. ];
  96. return successResponseWrap(menuList);
  97. });
  98. },
  99. });