{"remainingRequest":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\reform-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\reform-fvue\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\reform-fvue\\src\\request.js","dependencies":[{"path":"D:\\jenkins\\workspace\\reform-fvue\\src\\request.js","mtime":1719808949374},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.string.starts-with\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport axios from 'axios';\nimport { Message, MessageBox } 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标识\n\nvar num = 1;\nvar cancelToken = axios.CancelToken;\n\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\n pending.splice(p, 1); //把这条记录从数组中移除\n }\n }\n}; // 请求拦截(配置发送请求的信息)\n\n\naxios.interceptors.request.use(function (config) {\n // 处理请求之前的配置\n NProgress.start(); //开始\n\n store.state.loadding = true; //在请求发出之前进行一些操作\n\n config.headers = config.headers || {};\n\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\n config.headers['Cross-Origin-Embedder-Policy'] = \"require-corp\";\n config.headers['Cross-Origin-Opener-Policy'] = \"same-origin\";\n config.headers['Accept-Language'] = localStorage.getItem(\"lang\") || \"zh-CN\";\n\n if (store.state.loginAccount) {\n config.headers['Tenant-Code'] = localStorage.getItem(store.state.loginAccount + \"loginRoutePath\").replace(\"/login/\", \"\") || \"\";\n }\n\n var currentUser = store.state.currentUser;\n currentUser && currentUser.token && !config.headers.Authorization && (config.headers.Authorization = \"Bearer \".concat(currentUser.token)); //如果是请求auth接口,则不带token\n\n if (config.url.indexOf('/auth?') != -1) {\n delete config.headers.Authorization;\n }\n\n removePending(config); //在一个ajax发送前执行一下取消操作\n\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 }); // 判断是否需要刷新token\n\n var currentTime = new Date().getTime();\n\n if (currentUser && currentUser.loginTime && currentTime - currentUser.loginTime >= currentUser.expiration / 5 * 1000 && config.url.indexOf('/refresh') == -1) {\n $store.dispatch(\"login/refreshAndGetAuthenticationToken\");\n }\n\n return config;\n}, function (error) {\n // 请求失败的处理\n NProgress.done(); // 结束\n\n return Promise.reject(error);\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\n if (res.data && res.data.state != undefined && res.data.state === false && isShowMessage) {\n Message.errorLog(res.data.message, res.data.logId);\n }\n\n store.state.loadding = false; //在这里对返回的数据进行处理\n\n NProgress.done(); // 结束\n // 附件下载\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\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\n if (error && error.response && error.response.status === 401) {\n var isJump = JSON.parse(sessionStorage.getItem('isJUmp'));\n sessionStorage.clear(); // debugger;\n\n if (error.response.data.message === '当前登录状态已过期!' || error.response.data.message === '未登陆') {\n if (num === 1) {\n var name = router.app._route.name;\n var className = name === 'DetailComponent' || name === 'DistrictReformView' || name === 'MajorProjectsView' ? 'bigName' : '';\n\n if (name !== 'login' && error.response.data.message === '当前登录状态已过期!') {\n num++;\n MessageBox.confirm('登录信息已过期,请重新登录。', '提示', {\n confirmButtonText: '去登陆',\n customClass: className,\n showClose: false,\n showCancelButton: false,\n closeOnClickModal: false,\n type: 'success'\n }).then(function () {\n router.push({\n path: '/login'\n });\n window.location.reload();\n num = 1;\n });\n }\n }\n }\n\n if (window.ssoConfig.mode != 'cas' && window.ssoConfig.mode != 'oauth' && isJump) {\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\n NProgress.done(); // 结束\n\n return Promise.resolve(error.response);\n});\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 + \"

\" + log + \"

\",\n dangerouslyUseHTMLString: true\n });\n } else {\n Message.error(obj);\n }\n};\n\nexport default {\n request: function request(data) {\n var reqData = data.data || {}; //支持表达式作为域名解析\n\n data.url = this.parseUrl(data.url); //统一拼接域名接口\n\n if (data.url.indexOf('http') == -1 && data.url.indexOf('/v3/weather/weatherInfo') == -1) {\n data.url = context.front + data.url;\n } else if (data.url.indexOf('/v3/weather/weatherInfo') !== -1) {\n var pureFront = context.front.slice(0, context.front.indexOf('/fvue'));\n data.url = pureFront + 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\n if (data.url.indexOf('?') < 0) {\n mark = \"?\";\n }\n\n data.url += mark + \"leaderId=\" + window.agentLeaderId;\n }\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 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 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 remove: function remove(url) {\n return this.request({\n url: url,\n method: \"DELETE\"\n });\n },\n postAduit: function postAduit(url, data, headers) {\n return this.request({\n url: url,\n data: data,\n method: \"POST\",\n headers: headers\n });\n },\n getDown: function getDown(url, type, isShowMessage) {\n console.log(url);\n console.log(type);\n return this.request({\n url: url,\n responseType: type,\n isShowMessage: isShowMessage\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\n if (match != null) {\n var name = match[2],\n mc = match[1],\n val = ctx[name];\n\n if (!val) {\n throw new Error(\"The '\" + name + \"' in url:\" + url + \" does not defined in context provider.\");\n }\n\n return url.replace(mc, val);\n } else {\n return url;\n }\n }\n};",null]}