/*
 * @Author: donghao donghao@supervision.ltd
 * @Date: 2025-03-12 15:12:58
 * @LastEditors: donghao donghao@supervision.ltd
 * @LastEditTime: 2025-03-13 13:42:24
 * @FilePath: \5G-Loading-Bay-Web\src\utils\request\instance.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import Request from './index'
import { config } from '@/config'
import { ElLoading } from "element-plus";

// 根据环境显示不同提示
const envTagMap = {
  development: '【开发环境】',
  // staging: '【测试环境】',
  production: '【生产环境】'
}

const request = new Request({
  baseURL: config.baseURL,
  timeout: config.timeout,
  interceptors: {
    requestInterceptor: config => {
      // 开发环境显示环境标识
      if (import.meta.env.DEV) {
        console.log(`${envTagMap[config.env]} 请求路径: ${config.url}`)
      }

      // 全局 loading 配置
      if (config.showLoading) {
        const loading = ElLoading.service({
          lock: true,
          text: '加载中...',
          background: 'rgba(0, 0, 0, 0.7)'
        })
        config.loadingInstance = loading
      }
      return config
    },
    
    responseInterceptor: res => {
      // 关闭 loading
      res.config.loadingInstance?.close()
      
      // 测试环境记录详细日志
      // if (config.env === 'staging') {
      //   console.groupCollapsed(`[${res.config.method}] ${res.config.url}`)
      //   console.log('请求参数:', res.config.data)
      //   console.log('响应数据:', res.data)
      //   console.groupEnd()
      // }
      return res
    }
  }
})

export default request