mock.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. import axios from 'axios';
  2. import MockAdapter from 'axios-mock-adapter';
  3. import { LoginUsers, Users } from './data/user';
  4. let _Users = Users;
  5. export default {
  6. /**
  7. * mock bootstrap
  8. */
  9. bootstrap() {
  10. let mock = new MockAdapter(axios);
  11. // mock success request
  12. mock.onGet('/success').reply(200, {
  13. msg: 'success'
  14. });
  15. // mock error request
  16. mock.onGet('/error').reply(500, {
  17. msg: 'failure'
  18. });
  19. //登录
  20. mock.onPost('/login').reply(config => {
  21. let {username, password} = JSON.parse(config.data);
  22. return new Promise((resolve, reject) => {
  23. let user = null;
  24. setTimeout(() => {
  25. let hasUser = LoginUsers.some(u => {
  26. if (u.username === username && u.password === password) {
  27. user = JSON.parse(JSON.stringify(u));
  28. user.password = undefined;
  29. return true;
  30. }
  31. });
  32. if (hasUser) {
  33. resolve([200, { code: 200, msg: '请求成功', user }]);
  34. } else {
  35. resolve([200, { code: 500, msg: '账号或密码错误' }]);
  36. }
  37. }, 1000);
  38. });
  39. });
  40. //获取用户列表
  41. mock.onGet('/user/list').reply(config => {
  42. let {name} = config.params;
  43. let mockUsers = _Users.filter(user => {
  44. if (name && user.name.indexOf(name) == -1) return false;
  45. return true;
  46. });
  47. return new Promise((resolve, reject) => {
  48. setTimeout(() => {
  49. resolve([200, {
  50. users: mockUsers
  51. }]);
  52. }, 1000);
  53. });
  54. });
  55. //获取用户列表(分页)
  56. mock.onGet('/user/listpage').reply(config => {
  57. let {page, name} = config.params;
  58. let mockUsers = _Users.filter(user => {
  59. if (name && user.name.indexOf(name) == -1) return false;
  60. return true;
  61. });
  62. let total = mockUsers.length;
  63. mockUsers = mockUsers.filter((u, index) => index < 20 * page && index >= 20 * (page - 1));
  64. return new Promise((resolve, reject) => {
  65. setTimeout(() => {
  66. resolve([200, {
  67. total: total,
  68. users: mockUsers
  69. }]);
  70. }, 1000);
  71. });
  72. });
  73. //删除用户
  74. mock.onGet('/user/remove').reply(config => {
  75. let { id } = config.params;
  76. _Users = _Users.filter(u => u.id !== id);
  77. return new Promise((resolve, reject) => {
  78. setTimeout(() => {
  79. resolve([200, {
  80. code: 200,
  81. msg: '删除成功'
  82. }]);
  83. }, 500);
  84. });
  85. });
  86. //批量删除用户
  87. mock.onGet('/user/batchremove').reply(config => {
  88. let { ids } = config.params;
  89. ids = ids.split(',');
  90. _Users = _Users.filter(u => !ids.includes(u.id));
  91. return new Promise((resolve, reject) => {
  92. setTimeout(() => {
  93. resolve([200, {
  94. code: 200,
  95. msg: '删除成功'
  96. }]);
  97. }, 500);
  98. });
  99. });
  100. //编辑用户
  101. mock.onGet('/user/edit').reply(config => {
  102. let { id, name, addr, age, birth, sex } = config.params;
  103. _Users.some(u => {
  104. if (u.id === id) {
  105. u.name = name;
  106. u.addr = addr;
  107. u.age = age;
  108. u.birth = birth;
  109. u.sex = sex;
  110. return true;
  111. }
  112. });
  113. return new Promise((resolve, reject) => {
  114. setTimeout(() => {
  115. resolve([200, {
  116. code: 200,
  117. msg: '编辑成功'
  118. }]);
  119. }, 500);
  120. });
  121. });
  122. //新增用户
  123. mock.onGet('/user/add').reply(config => {
  124. let { name, addr, age, birth, sex } = config.params;
  125. _Users.push({
  126. name: name,
  127. addr: addr,
  128. age: age,
  129. birth: birth,
  130. sex: sex
  131. });
  132. return new Promise((resolve, reject) => {
  133. setTimeout(() => {
  134. resolve([200, {
  135. code: 200,
  136. msg: '新增成功'
  137. }]);
  138. }, 500);
  139. });
  140. });
  141. }
  142. };