index.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import Mock from 'mockjs'
  2. import { baseUrl } from '@/config/global'
  3. import * as login from './modules/login'
  4. import * as user from './modules/user'
  5. import * as role from './modules/role'
  6. import * as dept from './modules/dept'
  7. import * as menu from './modules/menu'
  8. import * as dict from './modules/dict'
  9. import * as log from './modules/log'
  10. // 1. 开启/关闭[所有模块]拦截, 通过调[openMock参数]设置.
  11. // 2. 开启/关闭[业务模块]拦截, 通过调用fnCreate方法[isOpen参数]设置.
  12. // 3. 开启/关闭[业务模块中某个请求]拦截, 通过函数返回对象中的[isOpen属性]设置.
  13. // let openMock = true
  14. let openMock = false
  15. fnCreate(login, openMock)
  16. fnCreate(user, openMock)
  17. fnCreate(role, openMock)
  18. fnCreate(dept, openMock)
  19. fnCreate(menu, openMock)
  20. fnCreate(dict, openMock)
  21. fnCreate(log, openMock)
  22. /**
  23. * 创建mock模拟数据
  24. * @param {*} mod 模块
  25. * @param {*} isOpen 是否开启?
  26. */
  27. function fnCreate (mod, isOpen = true) {
  28. if (isOpen) {
  29. for (var key in mod) {
  30. ((res) => {
  31. if (res.isOpen !== false) {
  32. let url = baseUrl
  33. if(!url.endsWith("/")) {
  34. url = url + "/"
  35. }
  36. url = url + res.url
  37. console.log(url)
  38. Mock.mock(new RegExp(url), res.type, (opts) => {
  39. opts['data'] = opts.body ? JSON.parse(opts.body) : null
  40. delete opts.body
  41. console.log('\n')
  42. console.log('%cmock拦截, 请求: ', 'color:blue', opts)
  43. console.log('%cmock拦截, 响应: ', 'color:blue', res.data)
  44. return res.data
  45. })
  46. }
  47. })(mod[key]() || {})
  48. }
  49. }
  50. }