import * as qs from "qs"
import axios from "axios"
import { ElLoading } from 'element-plus'


let loading = null;
const service = axios.create({
    baseURL:"http://localhost:8001",
    timeout: 500000
})

service.interceptors.request.use(config => {
    loading = ElLoading.service({
        customClass: 'loading',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0)'
    })
    return config;
}, error => {
    Promise.reject(error)
})

service.interceptors.response.use(response => {
        loading.close()
        return response.data;
    }, error => {
        loading.close()
        return Promise.reject(error)
    }
)

export function post(url: any, params = {}, contentType = "application/x-www-form-urlencoded") {
    return new Promise((resolve, reject) => {
        if ('application/x-www-form-urlencoded' === contentType){
            params = qs.stringify(params);
        }
        service({ url, method: 'post', data: params, headers: { 'Content-Type': contentType }}).then(response => {
            resolve(response);
        }).catch(error => {
            reject(error);
        })
    })
}

export function get(url, params = {}, baseUrl = '') {
    return new Promise((resolve, reject) => {
        service({ url, baseURL: baseUrl, method: 'get', params: params }).then(response => {
            resolve(response);
        }).catch(error => {
            reject(error);
        })
    })
}