import axios from 'axios';


//设置基地址


// 线下环境
// export const baseIMGUrl = "https://sit-ningguobwg.4dage.com/";

// 线上环境
export const baseIMGUrl = "";




export const baseUrl =
  // 线下的图片地址需要加上/api/
  // process.env.NODE_ENV === "development"
  //   ? "http://192.168.20.61:8067/api/"
  //   : "";
  process.env.NODE_ENV === "development"
    ? "https://sit-ningguobwg.4dage.com"
    : "";


const instance = axios.create({
  // 线下环境
  // baseURL: baseUrl, // 使用环境变量设置API的基础URL
  // 线上环境
  baseURL: baseUrl + "/api/",
  timeout: 5000, // 可选，设置请求超时时间
  headers: {
    'Content-Type': 'application/json',
  },
});

// 请求拦截器
instance.interceptors.request.use(
  async (config) => {
    // 在这里执行请求发送前的预处理操作

    // 示例：添加全局请求头（如API版本、认证令牌等）(需要登录)
    const accessToken = localStorage.getItem('token')

    if (accessToken) {
      config.headers.Authorization = `Bearer ${accessToken}`;
    }

    // 可以在此处添加其他通用请求逻辑，如：
    // - 统一处理请求参数序列化
    // - 显示全局加载指示器
    // - ...

    return config;
  },
  (error) => {
    // 对请求错误进行处理，如：
    // - 清除过期的认证信息
    // - 提示用户网络问题
    // - ...

    return Promise.reject(error);
  },
);

instance.interceptors.response.use(
  (response) => {
    // 对正常响应进行处理，如：
    // - 解析并标准化返回数据结构
    // - 隐藏全局加载指示器
    // - 更新全局状态（如刷新用户信息、更新接口调用次数等）

    return response.data; // 返回响应数据
  },
  (error) => {
   // 对HTTP错误进行处理，如：
   // - 根据状态码显示相应的错误提示
   // - 处理token过期，触发重新登录流程
   // - 将错误信息标准化以便在组件中统一处理

   if (error.response.status === 401) {
     // 处理未授权情况，如清除token并跳转到登录页面
   }

   return Promise.reject(error); // 将错误对象传递给后续的catch语句
  },
);



export default instance;