/* * @Description: * @Author: 王旭 * @Date: 2022-03-03 15:10:54 * @LastEditTime: 2022-04-13 15:19:08 * @LastEditors: 王旭 */ import axios from "axios"; import { ElMessage, ElLoading } from "element-plus"; import { useRouter } from "vue-router"; import { getToken } from "@/utils/auth"; const router = useRouter(); // create an axios instance const service = axios.create({ baseURL: BASE_URL, // api的base_url timeout: 35000, // 请求超时时间 // headers: { // "content-type": "application/json;charset=UTF-8", // }, // withCredentials: true, }); // console.log(store); // request interceptor service.interceptors.request.use( (config) => { //请求携带token var token = getToken(); if (token) { config.headers["token"] = getToken(); } //加载loading // store.commit("UPDATE_API_COUNT", "add"); return config; }, (error) => { //减去loading // store.commit("UPDATE_API_COUNT", "sub"); console.log(error); // for debug return Promise.reject(error); } ); service.interceptors.response.use( (response) => { // store.commit("UPDATE_API_COUNT", "sub"); // 报错提示 if (response.data.code !== 200) { ElMessage.error(response.data.msg); } else if ( response.data.code !== 200 && response.data.result == "用户未登录" ) { router.push({ path: "/login" }); } return response.data; }, (error) => { // store.commit("UPDATE_API_COUNT", "sub"); ElMessage({ message: error.message, type: "error", duration: 5 * 1000, }); return Promise.reject(error); } ); export default service;