From b10f81d2261435ea2159126725ee72b0b46f6810 Mon Sep 17 00:00:00 2001 From: dai <851733175@qq.com> Date: Fri, 25 Feb 2022 09:58:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=A5=E9=83=BD=E6=B2=A1=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/js/ajax.js | 472 ++++++++++++++++++++++++------------------------- 1 file changed, 229 insertions(+), 243 deletions(-) diff --git a/src/js/ajax.js b/src/js/ajax.js index d147c4d8..3c19cb31 100644 --- a/src/js/ajax.js +++ b/src/js/ajax.js @@ -1,42 +1,40 @@ /* eslint-disable */ -import axios from 'axios' -import Cookies from 'js-cookie' -import router from '@/router' -import qs from 'qs' -import { clearLoginInfo } from '@/utils' -import isPlainObject from 'lodash/isPlainObject' - -import Vue from 'vue' - -import { Loading } from 'element-ui' //引入Loading服务 +import axios from "axios"; +import Cookies from "js-cookie"; +import router from "@/router"; +import qs from "qs"; +import { clearLoginInfo } from "@/utils"; +import isPlainObject from "lodash/isPlainObject"; +import Vue from "vue"; +import { Loading } from "element-ui"; //引入Loading服务 // 默认超时时间60s -axios.defaults.timeout = 60000 +axios.defaults.timeout = 60000; -let timer -let loading +let timer; +let loading; //请求时间超过300ms 提示加载 -function startLoading () { - if (timer) return +function startLoading() { + if (timer) return; timer = setTimeout(() => { loading = Loading.service({ lock: true, //是否锁定 - text: '正在加载……', //加载中需要显示的文字 - background: 'rgba(0,0,0,.7)', //背景颜色 - }) - }, 300) + text: "正在加载……", //加载中需要显示的文字 + background: "rgba(0,0,0,.7)", //背景颜色 + }); + }, 300); } //结束加载动画 -function endLoading () { +function endLoading() { if (timer) { - clearTimeout(timer) + clearTimeout(timer); } if (loading) { - loading.close() + loading.close(); } } @@ -45,71 +43,65 @@ function endLoading () { */ axios.interceptors.request.use( (config) => { - config.headers['Accept-Language'] = localStorage.getItem('language') || 'zh-CN' - config.headers['token'] = localStorage.getItem('token') || '' - config.headers['Authorization'] = localStorage.getItem('token') || '' + config.headers["Accept-Language"] = + localStorage.getItem("language") || "zh-CN"; + config.headers["token"] = localStorage.getItem("token") || ""; + config.headers["Authorization"] = localStorage.getItem("token") || ""; // 默认参数 - var defaults = {} + var defaults = {}; // 防止缓存,GET请求默认带_t参数 - if (config.method === 'get') { + if (config.method === "get") { config.params = { ...config.params, ...{ _t: new Date().getTime() }, - } + }; } if (isPlainObject(config.params)) { config.params = { ...defaults, ...config.params, - } + }; } if (isPlainObject(config.data)) { config.data = { ...defaults, ...config.data, - } + }; if ( /^application\/x-www-form-urlencoded/.test( - config.headers['content-type'] + config.headers["content-type"] ) ) { - config.data = qs.stringify(config.data) + config.data = qs.stringify(config.data); } } - return config + return config; }, (error) => { - return Promise.reject(error) + return Promise.reject(error); } -) +); /** * 响应拦截 */ axios.interceptors.response.use( (response) => { - const code = [10007, 401, 10001, 10005] - if (code.includes(response.data.code) ) { + const code = [10007, 401, 10001, 10005]; + if (code.includes(response.data.code)) { // debugger; - clearLoginInfo() - // localStorage.setItem('userType', 'work') - // let userType = localStorage.getItem("userType"); - // if (userType === 'work'){ - // router.replace({ name: 'loginWork' }) - // }else { - // router.replace({ name: 'login' }) - // } - router.replace({ name: 'login' }) + clearLoginInfo(); + router.replace({ name: "login" }); - return Promise.reject(response.data.msg) + return Promise.reject(response.data.msg); } - return response + return response; }, (error) => { - console.error(error) - return Promise.reject(error) + console.error(error); + return Promise.reject(error); } -) +); const post = (url, params, headers) => { return new Promise((reslove, reject) => { @@ -119,14 +111,14 @@ const post = (url, params, headers) => { resolve(res); }) .catch((err) => { - reject(err) - }) - }) -} + reject(err); + }); + }); +}; -export const requestPost = async (url = '', params = {}, headers = {}) => { - const ret = await post(url, params, headers) - console.log(url, ret) +export const requestPost = async (url = "", params = {}, headers = {}) => { + const ret = await post(url, params, headers); + console.log(url, ret); // if (ret.status === 200) { // var data = res.data // if (data.code == 0) { @@ -141,7 +133,7 @@ export const requestPost = async (url = '', params = {}, headers = {}) => { // } else { // if (typeof cb_err === 'function') cb_err(res) // } -} +}; /* * 1、后台请求成功均返回(业务上的异常也属于请求成功) res.status=200的响应码 @@ -153,140 +145,137 @@ export const requestPost = async (url = '', params = {}, headers = {}) => { */ export default { // 并发请求 - all (gets, cb) { + all(gets, cb) { if (gets && gets.length > 0) { let functions = gets.map((get) => { return axios.get(processUrl(get.url), { params: get.params, - }) - }) + }); + }); axios.all(functions).then( axios.spread((..._results) => { let results = _results.map((_result) => { - return _result.data.data - }) - cb(results) + return _result.data.data; + }); + cb(results); }) - ) + ); } }, - get (url, params, cb_su, cb_err, headers) { + get(url, params, cb_su, cb_err, headers) { var p = { params: params, - } - if (headers && JSON.stringify(headers) != '{}') { + }; + if (headers && JSON.stringify(headers) != "{}") { var h = { headers: headers, - } + }; p = { ...p, ...h, - } + }; } - url = url + '?r=' + new Date().getTime() //时间戳作为随机码,防止IE从缓存获取数据 + url = url + "?r=" + new Date().getTime(); //时间戳作为随机码,防止IE从缓存获取数据 axios .get(processUrl(url), p) .then((res) => { if (res) { if (res.status === 200) { - - var data = res.data + var data = res.data; if (data.code == 0) { //业务成功 - if (typeof cb_su === 'function') { - cb_su(data.data, data.msg ) + if (typeof cb_su === "function") { + cb_su(data.data, data.msg); } } else { //业务失败 - if (typeof cb_err === 'function') cb_err(data.msg , data.data) + if (typeof cb_err === "function") cb_err(data.msg, data.data); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } }) .catch((err) => { - if (typeof (cb_err === 'function')) { - cb_err(err) + if (typeof (cb_err === "function")) { + cb_err(err); } - }) + }); }, - put (url, data, cb_su, cb_err) { + put(url, data, cb_su, cb_err) { axios .put(processUrl(url), data) .then((res) => { if (res) { if (res.status === 200) { - var data = res.data - if (data.sysresultcode === 'success') { + var data = res.data; + if (data.sysresultcode === "success") { //业务成功 - if (typeof cb_su === 'function') { - cb_su(data.data, data.rspMsg) + if (typeof cb_su === "function") { + cb_su(data.data, data.rspMsg); } - } else if (data.sysresultcode === 'fail') { + } else if (data.sysresultcode === "fail") { //业务失败 - if (typeof cb_err === 'function') cb_err(data.rspMsg, data.data) + if (typeof cb_err === "function") cb_err(data.rspMsg, data.data); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } }) .catch((err) => { - if (typeof cb_err === 'function') { - cb_err(err) + if (typeof cb_err === "function") { + cb_err(err); } - }) + }); }, - post (url, data, cb_su, cb_err, headers) { - var h = {} - if (headers && JSON.stringify(headers) != '{}') { + post(url, data, cb_su, cb_err, headers) { + var h = {}; + if (headers && JSON.stringify(headers) != "{}") { h = { headers, - } + }; } //var data = qs.stringify(paramas); axios .post(processUrl(url), data, h) .then((res) => { - if (res) { if (res.status === 200) { - - var data = res.data + var data = res.data; if (data.code == 0) { //业务成功 - if (typeof cb_su === 'function') { - cb_su(data.data, data.msg ) + if (typeof cb_su === "function") { + cb_su(data.data, data.msg); } } else { //业务失败 - if (typeof cb_err === 'function') cb_err(data.msg , data.data) + if (typeof cb_err === "function") cb_err(data.msg, data.data); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } }) .catch((err) => { - if (typeof cb_err === 'function') { - cb_err(err) + if (typeof cb_err === "function") { + cb_err(err); } - }) + }); }, - post2 (url, data, cb_su, cb_err, headers) { - var h = {} - if (headers && JSON.stringify(headers) != '{}') { + post2(url, data, cb_su, cb_err, headers) { + var h = {}; + if (headers && JSON.stringify(headers) != "{}") { h = { headers, - } + }; } //var data = qs.stringify(paramas); axios @@ -294,22 +283,22 @@ export default { .then((res) => { if (res) { if (res.status === 200) { - var data = res.data - cb_su(data, data.msg ) + var data = res.data; + cb_su(data, data.msg); } else { - if (typeof cb_err === 'function') cb_err(data.msg , data) + if (typeof cb_err === "function") cb_err(data.msg, data); } } else { - if (typeof cb_err === 'function') cb_err(data.msg , data) + if (typeof cb_err === "function") cb_err(data.msg, data); } }) .catch((err) => { - if (typeof cb_err === 'function') { - cb_err(err) + if (typeof cb_err === "function") { + cb_err(err); } - }) + }); }, - delete (url, params, cb_su, cb_err) { + delete(url, params, cb_su, cb_err) { axios .delete(processUrl(url), { params: params, @@ -317,219 +306,217 @@ export default { .then((res) => { if (res) { if (res.status === 200) { - var data = res.data - if (data.sysresultcode === 'success') { + var data = res.data; + if (data.sysresultcode === "success") { //业务成功 - if (typeof cb_su === 'function') { - cb_su(data.data, data.rspMsg) + if (typeof cb_su === "function") { + cb_su(data.data, data.rspMsg); } - } else if (data.sysresultcode === 'fail') { + } else if (data.sysresultcode === "fail") { //业务失败 - if (typeof cb_err === 'function') cb_err(data.rspMsg, data.data) + if (typeof cb_err === "function") cb_err(data.rspMsg, data.data); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } }) .catch((err) => { - if (typeof cb_err === 'function') { - cb_err(err) + if (typeof cb_err === "function") { + cb_err(err); } - }) + }); }, //导出文件,包括excel,word等 - exportFile (url, params, cb_su, cb_err, headers) { - var h = {} - if (headers && JSON.stringify(headers) != '{}') { - h = headers + exportFile(url, params, cb_su, cb_err, headers) { + var h = {}; + if (headers && JSON.stringify(headers) != "{}") { + h = headers; } - var errorMsg = '操作失败' - url = url + '?r=' + new Date().getTime() //时间戳作为随机码,防止IE从缓存获取数据 + var errorMsg = "操作失败"; + url = url + "?r=" + new Date().getTime(); //时间戳作为随机码,防止IE从缓存获取数据 axios({ - method: 'get', + method: "get", url: processUrl(url), params: params, headers: h, //{ tenantCode: "GDYXB" }, - responseType: 'blob', + responseType: "blob", }) .then((res) => { if (res) { if (res.status === 200) { - var data = res.data //直接返回blob + var data = res.data; //直接返回blob if (data) { //业务成功 - if (typeof cb_su === 'function') { - cb_su(data, '操作成功') + if (typeof cb_su === "function") { + cb_su(data, "操作成功"); } } else { //业务失败 - if (typeof cb_err === 'function') cb_err(errorMsg) + if (typeof cb_err === "function") cb_err(errorMsg); } } else { - if (typeof cb_err === 'function') cb_err(errorMsg) + if (typeof cb_err === "function") cb_err(errorMsg); } } else { - if (typeof cb_err === 'function') cb_err(errorMsg) + if (typeof cb_err === "function") cb_err(errorMsg); } }) .catch((err) => { - if (typeof (cb_err === 'function')) { - cb_err(errorMsg) + if (typeof (cb_err === "function")) { + cb_err(errorMsg); } - }) + }); }, //导出文件,包括excel,word等 - exportFilePost (url, params, cb_su, cb_err) { + exportFilePost(url, params, cb_su, cb_err) { //var data = qs.stringify(paramas); // axios // .post(processUrl(url), data) axios({ - method: 'post', + method: "post", url: processUrl(url), data: params, - responseType: 'blob', + responseType: "blob", }) .then((res) => { - if (res) { if (res.status === 200) { - var data = res.data //直接返回blob + var data = res.data; //直接返回blob // if (data.code == 0) { - //业务成功 - if (typeof cb_su === 'function') { - cb_su(data) - } - else { + //业务成功 + if (typeof cb_su === "function") { + cb_su(data); + } else { //业务失败 - if (typeof cb_err === 'function') cb_err(errorMsg) - } - // } else { + if (typeof cb_err === "function") cb_err(errorMsg); + } + // } else { // if (typeof cb_err === 'function') cb_err(errorMsg) } } else { - if (typeof cb_err === 'function') cb_err(errorMsg) + if (typeof cb_err === "function") cb_err(errorMsg); } }) .catch((err) => { - if (typeof cb_err === 'function') { - cb_err(err) + if (typeof cb_err === "function") { + cb_err(err); } - }) + }); }, //上传文件 - importFilePut (url, fileFormData, cb_su, cb_err) { - var errorMsg = '操作失败' + importFilePut(url, fileFormData, cb_su, cb_err) { + var errorMsg = "操作失败"; let requestConfig = { headers: { - 'Content-Type': 'multipart/form-data', + "Content-Type": "multipart/form-data", // Authorization: auth.loadTokenType() + ' ' + auth.loadAccessToken(), }, - } + }; Vue.http .put(processUrl(url), fileFormData, requestConfig) .then((res) => { if (res && res.status === 200) { - var data = res.body //直接返回blob + var data = res.body; //直接返回blob - if (data.sysresultcode === 'fail') { + if (data.sysresultcode === "fail") { //业务失败 - if (typeof cb_err === 'function') cb_err(data.rspMsg) - } else if (data.sysresultcode === 'success') { + if (typeof cb_err === "function") cb_err(data.rspMsg); + } else if (data.sysresultcode === "success") { //业务成功 - if (typeof cb_su === 'function') { - cb_su(data, '操作成功') + if (typeof cb_su === "function") { + cb_su(data, "操作成功"); } } else { - if (typeof cb_err === 'function') cb_err(errorMsg) + if (typeof cb_err === "function") cb_err(errorMsg); } } else { - if (typeof cb_err === 'function') cb_err(errorMsg) + if (typeof cb_err === "function") cb_err(errorMsg); } }) .catch((err) => { - if (typeof (cb_err === 'function')) { - cb_err(errorMsg) + if (typeof (cb_err === "function")) { + cb_err(errorMsg); } - }) + }); }, //上传文件 - importFilePost (url, fileFormData, cb_su, cb_err) { - var errorMsg = '操作失败' + importFilePost(url, fileFormData, cb_su, cb_err) { + var errorMsg = "操作失败"; let requestConfig = { headers: { - 'Content-Type': 'multipart/form-data' + "Content-Type": "multipart/form-data", // Authorization: auth.loadTokenType() + ' ' + auth.loadAccessToken(), - } - } + }, + }; Vue.http .post(processUrl(url), fileFormData, requestConfig) .then((res) => { if (res && res.status === 200) { - var data = res.body //直接返回blob + var data = res.body; //直接返回blob - if (data.sysresultcode === 'fail') { + if (data.sysresultcode === "fail") { //业务失败 - if (typeof cb_err === 'function') cb_err(data.rspMsg) - } else if (data.sysresultcode === 'success') { + if (typeof cb_err === "function") cb_err(data.rspMsg); + } else if (data.sysresultcode === "success") { //业务成功 - if (typeof cb_su === 'function') { - cb_su(data, '操作成功') + if (typeof cb_su === "function") { + cb_su(data, "操作成功"); } } else { - if (typeof cb_err === 'function') cb_err(errorMsg) + if (typeof cb_err === "function") cb_err(errorMsg); } } else { - if (typeof cb_err === 'function') cb_err(errorMsg) + if (typeof cb_err === "function") cb_err(errorMsg); } }) .catch((err) => { - if (typeof (cb_err === 'function')) { - cb_err(errorMsg) + if (typeof (cb_err === "function")) { + cb_err(errorMsg); } - }) + }); }, //登录获取token/刷新token - tokenPost (url, paramas, cb_su, cb_err) { - var data = qs.stringify(paramas) + tokenPost(url, paramas, cb_su, cb_err) { + var data = qs.stringify(paramas); axios .post(processUrl(url), data) .then((res) => { if (res) { if (res.status === 200) { - var data = res.data + var data = res.data; if (data) { - if (typeof cb_su === 'function') { - cb_su(data) + if (typeof cb_su === "function") { + cb_su(data); } } else { - if (typeof cb_err === 'function') cb_err('登录验证失败') + if (typeof cb_err === "function") cb_err("登录验证失败"); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } } else { - if (typeof cb_err === 'function') cb_err(res) + if (typeof cb_err === "function") cb_err(res); } }) .catch((err) => { - var rspMsg = '登录失败,请重试!' + var rspMsg = "登录失败,请重试!"; if ( err && err.response && err.response.status === 401 && err.response.data && - err.response.data.error === 'unauthorized' + err.response.data.error === "unauthorized" ) { // 用户名不存在时: 状态码401 // Response Body: @@ -537,92 +524,91 @@ export default { // "error": "unauthorized", // "error_description": null // } - rspMsg = err.response.data.error_description || '用户名不存在' + rspMsg = err.response.data.error_description || "用户名不存在"; } else if ( err && err.response && err.response.status === 400 && err.response.data && - err.response.data.error === 'invalid_grant' + err.response.data.error === "invalid_grant" ) { // 用户名存在,密码错误时:状态码400 // { // "error": "invalid_grant", // "error_description": "Bad credentials" // } - rspMsg = '用户名或密码输入错误' + rspMsg = "用户名或密码输入错误"; } - if (typeof cb_err === 'function') { - cb_err(rspMsg) + if (typeof cb_err === "function") { + cb_err(rspMsg); } - }) + }); }, //通过接口传递的token进行验证登录 lyx 20191210 - async interfacetokenPost (url, paramas, cb_su, cb_err) { - var data = qs.stringify(paramas) + async interfacetokenPost(url, paramas, cb_su, cb_err) { + var data = qs.stringify(paramas); await axios .post(processUrl(url), data) .then((res) => { if (res) { if (res.status === 200) { - var data = res.data + var data = res.data; if (data) { - if (typeof cb_su === 'function') { - cb_su(data) - return true + if (typeof cb_su === "function") { + cb_su(data); + return true; } } else { - if (typeof cb_err === 'function') { - cb_err('接口验证失败') - return false + if (typeof cb_err === "function") { + cb_err("接口验证失败"); + return false; } } } else { - if (typeof cb_err === 'function') { - cb_err(res) - return false + if (typeof cb_err === "function") { + cb_err(res); + return false; } } } else { - if (typeof cb_err === 'function') { - cb_err(res) - return false + if (typeof cb_err === "function") { + cb_err(res); + return false; } } }) .catch((err) => { - var rspMsg = '接口验证失败,请重试!' + var rspMsg = "接口验证失败,请重试!"; if ( err && err.response && err.response.status === 401 && err.response.data && - err.response.data.error === 'unauthorized' + err.response.data.error === "unauthorized" ) { - rspMsg = '用户名不存在' + rspMsg = "用户名不存在"; } else if ( err && err.response && err.response.status === 400 && err.response.data && - err.response.data.error === 'invalid_grant' + err.response.data.error === "invalid_grant" ) { - rspMsg = '用户名或密码输入错误' + rspMsg = "用户名或密码输入错误"; } - if (typeof cb_err === 'function') { - cb_err(rspMsg) - return false + if (typeof cb_err === "function") { + cb_err(rspMsg); + return false; } - }) + }); }, -} +}; // 添加服务器端URL -function processUrl (url) { - - if (url.indexOf('http://') > -1 || url.indexOf('https://') > -1) { - return url +function processUrl(url) { + if (url.indexOf("http://") > -1 || url.indexOf("https://") > -1) { + return url; } - return process.env.VUE_APP_API_SERVER + url + return process.env.VUE_APP_API_SERVER + url; }