http.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. import axios from "axios";
  2. // import { Toast } from 'vant';
  3. import { Message } from "element-ui";
  4. import { Decrypt, Encrypt } from "./utils";
  5. import { oSessionStorage } from "./utils";
  6. import { router } from "@/router";
  7. // axios.defaults.baseURL = baseUrl;
  8. // axios.defaults.baseURL = 'http://10.113.248.4:8060';
  9. // axios.defaults.baseURL = 'http://49.232.26.44:8060';
  10. // axios.defaults.baseURL = 'https://child.jue-ming.com:8060/';
  11. // axios.defaults.baseURL = 'http://10.113.248.5:8070/';
  12. // axios.defaults.baseURL = 'http://cognitive.wistcm.com:8070/';
  13. // axios.defaults.baseURL = 'https://gengnao.cn:8070/';
  14. // axios.defaults.baseURL = 'http://152.136.24.101:8071';
  15. // axios.defaults.baseURL = 'https://81.70.207.4:8070';
  16. // axios.defaults.baseURL = 'https://child.hhnao.com:8070';
  17. // axios.defaults.baseURL = 'https://child.hhnao.com:8070';
  18. //https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx01d1a44906973cf2&redirect_uri=http%3A%2F%2F192.168.18.51%3A8085&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
  19. // 少锋本地
  20. // export const basePath = "http://10.113.248.4:8089";
  21. //少锋本地 wifi
  22. // export const basePath = "http://172.28.50.2:8089";
  23. //30
  24. // export const basePath = "http://43.143.198.30:8089";
  25. //红朵服务器
  26. // export const basePath = "http://129.211.221.44:8089";
  27. //锦泓税务服务器
  28. //新服务器李靖
  29. export const basePath = "http://123.57.18.29:8089";
  30. // export const basePath = "http://146.56.226.174:8089";
  31. // const base_url = 'http://43.143.198.30:8089/'
  32. // const base_url = 'http://10.113.248.4:8090/'
  33. // export const basePath='http://43.143.198.30:8086'
  34. axios.defaults.baseURL = basePath;
  35. // axios.defaults.baseURL = "http://43.143.198.30:8086";
  36. //设置端口
  37. // var urlCode ='http://152.136.24.101:8997';
  38. // var urlCode ='http://43.143.198.30:8085';
  39. // var urlCode ='https://child.hhnao.com';
  40. var urlCode = "";
  41. let time;
  42. //接口白名单
  43. var whiteList = ["/user/blogin", "/user/getCode"];
  44. //数据是否要加密
  45. var isMI = false;
  46. // axios.defaults.baseURL = 'http://cognitive.wistcm.com:8060/';
  47. // axios.defaults.baseURL = process.env.VUE_APP_BASE_URL;
  48. sessionStorage.setItem("codeImage", urlCode);
  49. axios.defaults.timeout = 30000000; // 超时时间
  50. axios.defaults.headers.common["Content-Type"] =
  51. "application/JSON;charset=UTF-8";
  52. axios.defaults.withCredentials = true;
  53. // let loadingInstance
  54. var noTime = false;
  55. axios.interceptors.request.use(
  56. function (config) {
  57. for (let i = 0; i < whiteList.length; i++) {
  58. if (whiteList[i] !== config.url) {
  59. ////不在白名单内,需要判断用户是否在,不在的话存储到登录页
  60. if (oSessionStorage.getItem("userInfo") == "") {
  61. router.replace({
  62. path: "/",
  63. // query: {redirect: router.currentRoute.fullPath}
  64. });
  65. }
  66. //在此判断需要 判断用户缓存是否存在
  67. // break
  68. }
  69. }
  70. //发送请求前判断token是存在
  71. // 在发送请求之前做些什么
  72. // loadingInstance = Loading.service({
  73. // lock: true,
  74. // text: '加载中',
  75. // spinner: 'el-icon-loading',
  76. // background: 'rgba(0, 0, 0, 0.7)'
  77. // });
  78. // eslint-disable-next-line
  79. // const userId = sessionStorage.getItem("userId");
  80. // config.headers['type'] = process.env.VUE_APP_VERSION;
  81. // if (userId) {
  82. // if (sessionStorage.getItem(`${userId}token`)) {
  83. // config.headers.Authorization = `Bearer ${sessionStorage.getItem(`${userId}token`)}`;
  84. // }
  85. // }
  86. config.headers.Authorization = oSessionStorage.getItem("token")
  87. ? `Bearer ${oSessionStorage.getItem("token")}`
  88. : "";
  89. // console.log(config.headers.Authorization)
  90. config.url=encodeURI(config.url)
  91. return config;
  92. },
  93. function (error) {
  94. // 对请求错误做些什么
  95. return Promise.reject(error);
  96. }
  97. );
  98. // 添加响应拦截器
  99. axios.interceptors.response.use(
  100. function (response) {
  101. // 对响应数据做点什么
  102. // loadingInstance.close();
  103. //返回code若为401,则表示token有问题
  104. if (response.data.code === 401) {
  105. //当401时清除缓存信息
  106. if (oSessionStorage.getItem("userInfo") !== "") {
  107. oSessionStorage.removeItem("userInfo");
  108. // Message.error(response.data.msg);
  109. //搞个节流函数
  110. let flagT = false;
  111. clearTimeout(time);
  112. time = setTimeout(() => {
  113. flagT = true;
  114. if (flagT) {
  115. Message.error(response.data.msg);
  116. }
  117. }, 500);
  118. // alert('1111')
  119. }
  120. // 重定向到登录页
  121. router.replace({
  122. path: "/",
  123. // query: {redirect: router.currentRoute.fullPath}
  124. });
  125. return;
  126. // Toast.fail(response.data.msg);
  127. // if(){
  128. // }
  129. }
  130. return response;
  131. },
  132. function (error) {
  133. // 对响应错误做点什么
  134. // loadingInstance.close();
  135. return Promise.reject(error);
  136. }
  137. );
  138. const http = {
  139. get: (url, data, sCallBack) => {
  140. if (data) {
  141. if (isMI) {
  142. data = Encrypt(JSON.stringify(data));
  143. } else {
  144. data = JSON.stringify(data);
  145. }
  146. }
  147. axios.get(url, { params: data }).then((res) => {
  148. // res.data = JSON.parse(Decrypt(res.data));
  149. if (isMI) {
  150. res.data = JSON.parse(Decrypt(res.data));
  151. } else {
  152. // res.data = JSON.parse(res.data);
  153. }
  154. if (sCallBack) {
  155. sCallBack(res.data);
  156. }
  157. });
  158. },
  159. getImg: (url, data, sCallBack) => {
  160. if (data) {
  161. data = Encrypt(JSON.stringify(data));
  162. }
  163. axios(
  164. {
  165. method: "get",
  166. url: url,
  167. responseType: "blob",
  168. params: data,
  169. headers: {
  170. Accept: "application/octet-stream",
  171. // "Content-Disposition":"attachment"
  172. },
  173. },
  174. {
  175. responseType: "arraybuffer",
  176. }
  177. ).then((res) => {
  178. sCallBack(res);
  179. });
  180. },
  181. getDown: (url, data, sCallBack) => {
  182. if (data) {
  183. data = Encrypt(JSON.stringify(data));
  184. }
  185. axios({
  186. method: "get",
  187. url: url,
  188. responseType: "blob",
  189. params: data,
  190. headers: {
  191. // Accept: "application/octet-stream",
  192. "Content-Disposition": "attachment",
  193. },
  194. }).then((res) => {
  195. sCallBack(res);
  196. });
  197. },
  198. postDown: (url, data, sCallBack) => {
  199. if (data) {
  200. if (isMI) {
  201. data = Encrypt(JSON.stringify(data));
  202. } else {
  203. // data = JSON.stringify(data);
  204. // data = data;
  205. }
  206. }
  207. axios({
  208. method: "post",
  209. url: url,
  210. responseType: "blob",
  211. params: data,
  212. headers: {
  213. // Accept: "application/octet-stream",
  214. "Content-Disposition": "attachment",
  215. },
  216. }).then((res) => {
  217. sCallBack(res);
  218. });
  219. },
  220. post: (url, data, sucessCallBack, errCallBack) => {
  221. if (data) {
  222. if (isMI) {
  223. data = Encrypt(JSON.stringify(data));
  224. } else {
  225. // data = JSON.stringify(data);
  226. // data = data;
  227. }
  228. }
  229. axios.post(url, data).then((res) => {
  230. // res.status
  231. if (res) {
  232. if (isMI) {
  233. res.data = JSON.parse(Decrypt(res.data));
  234. } else {
  235. // res.data = JSON.parse(res.data);
  236. }
  237. }
  238. if (res.status >= 200 && res.status < 300) {
  239. if (sucessCallBack) {
  240. sucessCallBack(res.data);
  241. }
  242. } else if (res.status === 401) {
  243. //token过期了
  244. } else {
  245. if (errCallBack) {
  246. errCallBack(res.data);
  247. } else {
  248. // Toast(res.data.msg);
  249. Message.error(res.data.msg);
  250. }
  251. }
  252. });
  253. },
  254. delete: (url, data, sucessCallBack, errCallBack) => {
  255. if (data) {
  256. if (isMI) {
  257. data = Encrypt(JSON.stringify(data));
  258. } else {
  259. data = JSON.stringify(data);
  260. }
  261. }
  262. axios.delete(url, { data: data }).then((res) => {
  263. // res.status
  264. if (res) {
  265. if (isMI) {
  266. res.data = JSON.parse(Decrypt(res.data));
  267. } else {
  268. res.data = JSON.parse(res.data);
  269. }
  270. }
  271. if (res.status >= 200 && res.status < 300) {
  272. if (sucessCallBack) {
  273. sucessCallBack(res.data);
  274. }
  275. } else if (res.status === 401) {
  276. //token过期了
  277. } else {
  278. if (errCallBack) {
  279. errCallBack(res.data);
  280. } else {
  281. // Toast(res.data.msg);
  282. Message.error(res.data.msg);
  283. }
  284. }
  285. // if (res.data.code == 200) {
  286. // if (sucessCallBack) {
  287. // sucessCallBack(res.data);
  288. // }
  289. // } else if(res.data.code == 2001){
  290. // if (sucessCallBack) {
  291. // sucessCallBack(res.data);
  292. // }
  293. // }else {
  294. // if (errCallBack) {
  295. // errCallBack(res.data);
  296. // } else {
  297. // // Toast(res.data.msg);
  298. // Message.error(res.data.msg);
  299. // }
  300. // }
  301. });
  302. },
  303. };
  304. export default http;