/**
 * axios请求封装
 * https://rudon.blog.csdn.net/
 */
import axios from 'axios'
import { getToken, getUser } from '@/utils/storage'
import { useRouter } from 'vue-router';
import { ElMessage } from 'element-plus';

const router = useRouter();

// 请求地址前缀
let baseURL = ''
console.log(process.env.NODE_ENV)
if (process.env.NODE_ENV === 'development') {
    // 生产环境
    baseURL = "http://120.26.251.180:8085/api/"
    // baseURL = "http://192.168.0.100:8085/api/"
} else {
    // 开发环境
    baseURL = ""
}

// 请求拦截器
axios.interceptors.request.use((config) => {
    // if (getToken()) {
    //     config.headers['token'] = getToken();
    // }

    // 请求超时时间 - 毫秒
    config.timeout = 60000
    config.baseURL = baseURL
    // 自定义Content-type
    config.headers['Content-type'] = 'application/json'
    return config;
}, (error) => {
    return Promise.reject(error)
})

// 响应拦截器
axios.interceptors.response.use((response) => {
    /**
     * 可添加请求响应的处理逻辑, 例如接口自定义的response.data.code不是200代表失败。
     * 错误的话 return Promise.reject(response)
     * 正确的话 return response
     */
    return response
}, (error) => {
    // 可添加请求失败后的处理逻辑
    return Promise.reject(error)
})



// axios的get请求
// 导出一个函数，用于发送GET请求
// 返回一个Promise对象
export function getAxios({ url, params }) {
    // 使用axios发送GET请求
    return new Promise((resolve, reject) => {
        axios.get(url, {
            params
            // 请求成功，将返回的数据传递给resolve函数
        }).then(res => {
            resolve(res.data)
            // 请求失败，将错误信息传递给reject函数
        }).catch(err => {
            console.log(err)
            reject(err)
        })
    })
}

// axios的post请求
export function postAxios({ url, data }) {
    if (url != 'account/login') {

        axios.post('account/cheekalive', {
            userId: getUser().userId,
            currcode: getToken(),
        },
            {
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            }
        ).then(res => {
            console.log(res)
        }).catch(err => {
            if (err.message == "Network Error") {
                // alert("网络错误，请检查网络连接")
                ElMessage.error('网络连接错误');
            } else {
                ElMessage.error(err.message);
            }
            // console.log(err)
            // reject(err)

        })

    }


    return new Promise((resolve, reject) => {
        axios.post(
            url,
            data,
            {
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            }
        ).then(res => {
            resolve(res.data)
        }).catch(err => {
            if (err.message == "Network Error") {
                // alert("网络错误，请检查网络连接")
                ElMessage.error('网络连接错误');
                reject('网络连接错误')

            } else {
                ElMessage.error(err.message);
                reject(err.message)

            }
            // console.log(err)
            // reject(err)
        })
    })
}

export default axios