10.10综合交易所原始源码-管理后台
1
admin
2026-01-06 089bf5d2378b3c4a61d795b2a92bede2c193b771
src/utils/http.js
New file
@@ -0,0 +1,172 @@
import axios from "axios";
// import  URL  from "../config/index";
import { Message } from "element-ui";
import allTits from "../assets/lan/tits.js";
import { signatureGenerate } from '@/utils/crypto'
// import router from "../router.js";
axios.defaults.timeout = 15000;
axios.defaults.baseURL = URL.BASE_URL;
//http request 拦截器
axios.interceptors.request.use(
  (config) => {
    const token = localStorage.getItem("spToken");
    // config.data = JSON.stringify(config.data);
    // config.headers = {
    //   'Content-Type':'application/x-www-form-urlencoded'
    // }
    if (token) {
      if (config.method == "get") {
        config.params.token = token;
      } else if (config.data == "post") {
        config.params.token = token;
      }
    }
    const signature = signatureGenerate();
    config.headers["Sign"] = signature.signature;
    config.headers["Systemrandom"] = signature.systemRandom;
    config.headers["Tissuepaper"] = signature.timestamp;
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);
//http response 拦截器
axios.interceptors.response.use(
  (response) => {
    if (response.data.code != 0) {
      var localLan = "",
        lanTits = "";
        //判断语言
      if (localStorage.getItem("localLan")) {
        localLan = localStorage.getItem("localLan");
        if (localLan == "en") {
          lanTits = "tits_en";
        } else if (localLan == "zh-CN") {
          lanTits = "tits_zh-CN";
        } else if (localLan == "cht") {
          lanTits = "tits_CN";
        } else if (localLan == "ko") {
          lanTits = "tits_Korean";
        } else if (localLan == "fr") {
          lanTits = "tits_fr";
        } else if (localLan == "de") {
          lanTits = "tits_de";
        } else if (localLan == "it") {
          lanTits = "tits_it";
        }
      }
      //403
      if (response.data.code == "403") {
        console.log('routerrouterrouterrouterrouterrouterrouterrouterrouterrouterrouter',router)
        let lang = localStorage.getItem('localLan')
        localStorage.clear()
        localStorage.removeItem("username");
        localStorage.removeItem("spToken");
        localStorage.removeItem("vuex");
        localStorage.setItem('localLan', lang)
      //   router.beforeEach((to, from, next) => {
      //     //会在任意路由跳转前执行,next一定要记着执行,不然路由不能跳转了
      //   console.log('beforeEach')
      //   console.log(to,from)
      //   //
      //   next()
      // })
      //  router.push("/login");
       location.reload()
      }
      if (allTits[lanTits][response.data.msg]) {
        Message(allTits[lanTits][response.data.msg]);
      } else {
        Message(response.data.msg);
      }
    }
    return response;
  },
  (error) => {
    return Promise.reject(error);
  }
);
/**
 * 封装get方法
 * @param url
 * @param data
 * @returns {Promise}
 */
export function fetch(url, params = {}) {
  return new Promise((resolve, reject) => {
    axios
      .get(url, {
        params: params,
      })
      .then((response) => {
        resolve(response.data);
      })
      .catch((err) => {
        reject(err);
      });
  });
}
/**
 * 封装post请求
 * @param url
 * @param data
 * @returns {Promise}
 */
export function post(url, data = {}) {
  return new Promise((resolve, reject) => {
    axios.post(url, data).then(
      (response) => {
        resolve(response.data);
      },
      (err) => {
        reject(err);
      }
    );
  });
}
/**
 * 封装patch请求
 * @param url
 * @param data
 * @returns {Promise}
 */
export function patch(url, data = {}) {
  return new Promise((resolve, reject) => {
    axios.patch(url, data).then(
      (response) => {
        resolve(response.data);
      },
      (err) => {
        reject(err);
      }
    );
  });
}
/**
 * 封装put请求
 * @param url
 * @param data
 * @returns {Promise}
 */
export function put(url, data = {}) {
  return new Promise((resolve, reject) => {
    axios.put(url, data).then(
      (response) => {
        resolve(response.data);
      },
      (err) => {
        reject(err);
      }
    );
  });
}
export default { fetch, patch, put, post };