| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | import Mock from 'mockjs'import { param2Obj } from '../src/utils'import user from './user'import table from './table'const mocks = [  ...user,  ...table]// 请谨慎使用,它会重写浏览器的XMLHttpRequest, 这将导致许多第三方库失效(如进度事件)。export function mockXHR() {  Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send  Mock.XHR.prototype.send = function () {    if (this.custom.xhr) {      this.custom.xhr.withCredentials = this.withCredentials || false      if (this.responseType) {        this.custom.xhr.responseType = this.responseType      }    }    this.proxy_send(...arguments)  }  function XHR2ExpressReqWrap(respond) {    return function (options) {      let result = null      if (respond instanceof Function) {        const { body, type, url } = options        result = respond({          method: type,          body: JSON.parse(body),          query: param2Obj(url)        })      } else {        result = respond      }      return Mock.mock(result)    }  }  for (const i of mocks) {    Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))  }}// mock serverconst responseFake = (url, type, respond) => {  return {    url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),    type: type || 'get',    response(req, res) {      console.log('request invoke:' + req.path)      res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))    }  }}export default mocks.map(route => {  return responseFake(route.url, route.type, route.response)})
 |