{"remainingRequest":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xypm-web\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\xypm-web\\src\\request.js","dependencies":[{"path":"D:\\jenkins\\workspace\\xypm-web\\src\\request.js","mtime":1723543352497},{"path":"D:\\jenkins\\workspace\\xypm-web\\babel.config.js","mtime":1675214572901},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.starts-with\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.split\";\nimport axios from 'axios';\nimport { Message } from 'element-ui';\nimport $store from \"@/store\";\nimport store from '@/store/login';\nimport router from \"@/router.js\";\nimport NProgress from 'nprogress';\nimport 'nprogress/nprogress.css';\nimport { saveAs } from 'file-saver';\naxios.defaults.timeout = 100000;\nvar pending = []; //声明一个数组用于存储每个ajax请求的取消函数和ajax标识\nvar cancelToken = axios.CancelToken;\nvar removePending = function removePending(ever) {\n  for (var p in pending) {\n    if (pending[p].u === ever.url + '&' + ever.method && pending[p].data === eval.data) {\n      //当当前请求在数组中存在时执行函数体\n      pending[p].f(); //执行取消操作\n      pending.splice(p, 1); //把这条记录从数组中移除\n    }\n  }\n};\n\n// 请求拦截（配置发送请求的信息）\naxios.interceptors.request.use(function (config) {\n  // 处理请求之前的配置\n  /* 单独处理下载接口请求超时问题导致报错无法下载问题 */\n  // 下载地址：\"http://122.9.167.145:8096/biz/universal/accessory/v1/minIoAllDownFile\"\n  var url = config.url; // 获取下载地址url\n  // 拆分url地址\n  if (url) {\n    var urls = url.split('/');\n    var length = urls.length;\n    if (urls[length - 1] == 'minIoAllDownFile') {\n      // 重新设置超时时间\n      config.timeout = 10000000;\n    }\n  }\n  NProgress.start(); //开始\n  store.state.loadding = true; //在请求发出之前进行一些操作\n  config.headers = config.headers || {};\n  if (config.headers && config.headers.constructor == String) {\n    try {\n      config.headers = JSON.parse(config.headers);\n    } catch (e) {\n      Message.error(\"\\u8BF7\\u6C42\\u5934\\u90E8\\u4E0D\\u662F\\u6709\\u6548\\u7684JSON\\u683C\\u5F0F:\".concat(config.headers));\n      throw e;\n    }\n  }\n  config.headers['Accept-Language'] = localStorage.getItem(\"lang\") || \"zh-CN\";\n  if (store.state.loginAccount) {\n    config.headers['Tenant-Code'] = localStorage.getItem(store.state.loginAccount + \"loginRoutePath\").replace(\"/login/\", \"\") || \"\";\n  }\n  var currentUser = store.state.currentUser;\n  currentUser && currentUser.token && !config.headers.Authorization && (config.headers.Authorization = \"Bearer \".concat(currentUser.token));\n  //如果是请求auth接口，则不带token\n  if (config.url.indexOf('/auth?') != -1) {\n    delete config.headers.Authorization;\n  }\n  removePending(config); //在一个ajax发送前执行一下取消操作\n  config.cancelToken = new cancelToken(function (c) {\n    // 将请求的地址和请求的方式构建为一个字符串存放到请求数组中\n    pending.push({\n      u: config.url + '&' + config.method,\n      f: c,\n      data: config.data\n    });\n  });\n\n  // 判断是否需要刷新token\n  var currentTime = new Date().getTime();\n  if (currentUser && currentUser.loginTime && currentTime - currentUser.loginTime >= currentUser.expiration / 5 * 1000 && config.url.indexOf('/refresh') == -1) {\n    $store.dispatch(\"login/refreshAndGetAuthenticationToken\");\n  }\n  return config;\n}, function (error) {\n  // 请求失败的处理\n  NProgress.done(); // 结束\n  return Promise.reject(error);\n});\n\n// 响应拦截（配置请求回来的信息）\naxios.interceptors.response.use(function (res) {\n  // 处理响应数据\n  //是否显示错误信息，默认为显示\n  var isShowMessage = res.config.isShowMessage !== undefined ? res.config.isShowMessage : true;\n  removePending(res.config); //在一个ajax响应后再执行一下取消操作，把已经完成的请求从pending中移除\n  if (res.data && res.data.state != undefined && res.data.state === false && isShowMessage) {\n    Message.errorLog(res.data.message, res.data.logId);\n  }\n  store.state.loadding = false; //在这里对返回的数据进行处理\n  NProgress.done(); // 结束\n  // 附件下载\n  if (res && res.status == 200 && res.headers && res.headers[\"content-disposition\"] && res.headers[\"content-disposition\"].startsWith(\"attachment;\")) {\n    var blob = new Blob([res.data]);\n    var fileName = decodeURIComponent(res.headers[\"content-disposition\"].split(\";\")[1].split(\"filename=\")[1]);\n    saveAs(blob, fileName);\n  }\n  return res;\n}, function (error) {\n  // 处理响应失败\n  var errorMessage = error && error.response && error.response.data && error.response.data.message ? error.response.data.message : error.message;\n  if (error && error.response && error.response.status === 401) {\n    sessionStorage.clear();\n    if (window.ssoConfig.mode != 'cas' && window.ssoConfig.mode != 'oauth') {\n      router.push({\n        path: \"/login\"\n      });\n    }\n  } else if (error && error.response && error.response.status === 403) {\n    if (error && error.response && error.response.data && error.response.data.logId) {\n      Message.errorLog(errorMessage, error.response.data.logId);\n    } else {\n      Message.error(errorMessage);\n    }\n  } else if (error && error.response && error.response.status === 500) {\n    if (error.response.data && error.response.data.message) {\n      Message.errorLog(error.response.data.message, error.response.data.logId);\n    } else {\n      Message.error(error.message);\n    }\n  } else if (errorMessage && typeof errorMessage != 'undefined') {\n    Message.error(errorMessage);\n  }\n  NProgress.done(); // 结束\n  return Promise.resolve(error.response);\n});\nMessage.errorLog = function (obj, logId) {\n  if (typeof obj == \"string\" && logId) {\n    var msg = obj;\n    var log = \"\\u3010\\u65E5\\u5FD7ID\\uFF1A\".concat(logId, \"\\u3011\");\n    Message({\n      type: \"error\",\n      message: msg + \"<div tooltip position='right' class='tooltip-wrapper'><i class='icon-question msg-log-icon'></i><p class='msg-log-content'>\" + log + \"</p> </div>\",\n      dangerouslyUseHTMLString: true\n    });\n  } else {\n    Message.error(obj);\n  }\n};\nexport default {\n  request: function request(data) {\n    var reqData = data.data || {};\n    //支持表达式作为域名解析\n    data.url = this.parseUrl(data.url);\n    //统一拼接域名接口\n    var zsDoorIndex = data.url.indexOf('/zsdoor');\n    if (data.url.indexOf('http') == -1) {\n      // 监听招商跳转接口去掉fvue\n      if (zsDoorIndex !== -1) {\n        var base = context.front.slice(0, context.front.indexOf('/fvue'));\n        console.log(base, context.front.indexOf('/fvue'), \"context.front.indexOf('/fvue')\");\n        data.url = base + data.url;\n      } else {\n        data.url = context.front + data.url;\n      }\n    }\n    if (window.agentLeaderId && window.agentLeaderId != '0' && data.url.indexOf('leaderId=') < 0 && window.location.href.indexOf('/task/') > 1) {\n      var mark = \"&\";\n      if (data.url.indexOf('?') < 0) {\n        mark = \"?\";\n      }\n      data.url += mark + \"leaderId=\" + window.agentLeaderId;\n    }\n    var requestData = {\n      url: data.url,\n      data: reqData,\n      method: data.method || 'GET',\n      params: data.params || {},\n      onUploadProgress: data.onUploadProgress || null,\n      headers: data.headers || '',\n      responseType: data.responseType || 'json',\n      isShowMessage: data.isShowMessage\n    };\n    return axios(requestData);\n  },\n  put: function put(url, data, responseType) {\n    return this.request({\n      url: url,\n      data: data,\n      method: 'PUT',\n      responseType: responseType\n    });\n  },\n  download: function download(url) {\n    return this.request({\n      url: url,\n      method: \"POST\",\n      responseType: \"arraybuffer\"\n    });\n  },\n  downloadGet: function downloadGet(url) {\n    return this.request({\n      url: url,\n      method: \"GET\",\n      responseType: \"arraybuffer\"\n    });\n  },\n  downloadPostCopy: function downloadPostCopy(url, data) {\n    return this.request({\n      url: url,\n      method: \"post\",\n      data: data,\n      responseType: \"arraybuffer\"\n    });\n  },\n  downloadGetCopy: function downloadGetCopy(url, data) {\n    return this.request({\n      url: url,\n      method: \"get\",\n      data: data,\n      responseType: \"arraybuffer\"\n    });\n  },\n  get: function get(url, type, isShowMessage) {\n    return this.request({\n      url: url,\n      responseType: type,\n      isShowMessage: isShowMessage\n    });\n  },\n  post: function post(url, data, responseType) {\n    return this.request({\n      url: url,\n      data: data,\n      method: \"POST\",\n      responseType: responseType\n    });\n  },\n  remove: function remove(url) {\n    return this.request({\n      url: url,\n      method: \"DELETE\"\n    });\n  },\n  getContext: function getContext() {\n    return context;\n  },\n  parseUrl: function parseUrl(url) {\n    if (url === \"\") return;\n    var ctx = this.getContext(),\n      reg = /^(\\$\\{(\\w+)\\})\\/.*$/;\n    var match = reg.exec(url);\n    if (match != null) {\n      var name = match[2],\n        mc = match[1],\n        val = ctx[name];\n      if (!val) {\n        throw new Error(\"The '\" + name + \"' in url:\" + url + \" does not defined in context provider.\");\n      }\n      return url.replace(mc, val);\n    } else {\n      return url;\n    }\n  }\n};",null]}