Browse Source

Merge branch 'prod' into shibei_master

shibei_master
dai 4 years ago
parent
commit
b2d270abbb
  1. 472
      src/js/ajax.js
  2. 2
      src/views/main.vue

472
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;
}

2
src/views/main.vue

@ -7,7 +7,7 @@
{ 'aui-sidebar--fold': $store.state.sidebarFold },
{
'aui-sidebar--noside':
$store.state.sidebarActiveSubMenuList.length == 0,
$store.state.sidebarActiveSubMenuList.length == 0 || $store.state.inIframe,
},
{ 'z-iframe': $store.state.inIframe },
]"

Loading…
Cancel
Save