123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- import api from './request';
- import { message, Spin } from 'antd'
- import ReactDOM from 'react-dom';
- import '../common/common.less'
- const axios=require('axios');
- //axios.defaults.baseURL = 'http://192.168.3.184:8871';//'http://192.168.2.237:8871/';
- // 当前正在请求的数量
- let requestCount = 0
- // 显示loading
- function showLoading () {
- if (requestCount === 0) {
- var dom = document.createElement('div')
- dom.setAttribute('id', 'loading')
- document.body.appendChild(dom)
- ReactDOM.render(<Spin tip="加载中..." size="large"/>, dom)
- }
- requestCount++
- }
- // 隐藏loading
- function hideLoading () {
- requestCount--
- if (requestCount === 0) {
- document.body.removeChild(document.getElementById('loading'))
- }
- }
- const post=(url,data)=>{
- return axios({
- method:'post',
- url:url,
- data
- });
- };
- // 表单 form封装接口
- const xPost=(url,data)=>{
- let param = new URLSearchParams();
- for(let i in data){
- param.append(i,data[i]);
- }
- return axios({
- method:'post',
- contentType:'application/x-www-form-urlencoded',
- url:url,
- data:param
- });
- };
- // 导出
- const expJson = (url,data) =>{
- return axios({
- method:'post',
- url,
- data,
- contentType: "application/vnd.ms-excel;charset=UTF-8" ,
- responseType: 'blob' //必须添加,否则会乱码
- });
- }
- const get=(url,data)=>{
- return axios({
- method:'get',
- url:url,
- data
- });
- };
- function interceptors(){
- //拦截所有请求添加token
- axios.interceptors.request.use(function (req) {
- const tokenStr = localStorage.getItem('token');
- const sysId = localStorage.getItem('systemId');
- const hisId = localStorage.getItem('hospitalId');
- if (tokenStr && req.headers.isLoading !== false) {
- (req.headers.Authorization = `Bearer ${tokenStr}`);
- sysId&&(req.headers.softwareId=sysId);
- hisId&&(req.headers.hospitalId=hisId);
- showLoading()
- return req;
- } else {
- showLoading()
- return req;
- }
- }, function (error) {
- if(error.config.headers.isLoading !== false){
- hideLoading()
- }
- return Promise.reject(error);
- });
- //拦截响应
- axios.interceptors.response.use(function (res) {
- const code = res.data.code;
- if (code===401 || code === 403 && res.config.headers.isLoading !== false) { //401/403返回登录
- localStorage.removeItem("token");
- localStorage.removeItem("systemId");
- localStorage.removeItem("hospitalId");
- message.error("登录信息失效,请重新登录");
- window.location = '/';
- hideLoading()
- }else{
- hideLoading()
- return res;
- }
- }, function (error) {
- if(error.config.headers.isLoading !== false){
- hideLoading()
- }
- return Promise.reject(error);
- });
- }
- const obj = {
- post,
- xPost,
- get,
- api,
- interceptors
- };
- export default obj;
|