// 1.引入axios
import axios from 'axios';
// 引入 element ui
import { Message } from 'element-ui';
//引入路由实例
import router from '@/router';
let path = ''
const server = axios.create({
    // 设置端口前缀
    baseURL: 'https://9miao.fun:6838/prod-api/api/',
    // 设置超时时间
    timeout: 5000,
    // 设置请求头 全局
    headers: {
        "Content-Type": "application/json",
        "saToken" : localStorage.getItem('token')
    }
})

// 请求拦截器 发送请求的路上干点什么
server.interceptors.request.use(config => {
    // 排除登录或者注册接口 当不是登录或者注册接口的时候必须要传递token
    if (config.url != '/login' && config.url != '/register') {
        config.headers.token = localStorage.getItem('token');
    }
    // 每次请求都会把路径存起来
    path = config.url
    return config;
})

// // 响应拦截器
// server.interceptors.response.use(res => {
//     // 判断请求是否成功
//     if (res.data.token.code == 200) {
//         return res.data.token
//     } else if (res.data.token.code == 401) {
//         // 将后端的失败提示消息弹出去
//         Message({
//             message: res.data.token.msg,
//             type: 'error'
//         });

//         // 判断请求的接口路径
//         if (path == '/register' || path == '/login') {
//             return;
//         } else {
//             router.push('/')
//         }
//     } else {
//         Message({
//             message: res.data.token.msg,
//             type: 'error'
//         })
//     }
// });


// 封装post
export function postData(url, method, data) {
    return new Promise(resolve => {
        // 调用自定义的axios
        server({
            method,
            url,
            data
        })
        .then(res => {
            resolve(res);
        })
        .catch(() => {
            Message({
                message: '系统错误',
                type: 'error'
            })
        })
    })
}

// 封装get
export function getData(url, method, data) {
    return new Promise(resolve => {
        // 调用自定义的axios
        server({
            method,
            url,
            params: data 
        })
        .then(res => {
            resolve(res);
        })
        .catch(() => {
            Message({
                message: '系统错误',
                type: 'error'
            })
        })
    })
}

// 封装get 通过id 详情
export function getIdData(url, method, id) {
    return new Promise(resolve => {
        // 调用自定义的axios
        server({
            method,
            url: `${url}?id=${id}`,
            // params: data 
        })
        .then(res => {
            resolve(res);
        })
        .catch(() => {
            Message({
                message: '系统错误',
                type: 'error'
            })
        })
    })
}
// 封装get 通过id 详情
export function getIddData(url, method, id) {
    return new Promise(resolve => {
        // 调用自定义的axios
        server({
            method,
            url: `${url}?questionId=${id}`,
            // params: data 
        })
        .then(res => {
            resolve(res);
        })
        .catch(() => {
            Message({
                message: '系统错误',
                type: 'error'
            })
        })
    })
}
// 封装get 通过id 详情
export function getcIdData(url, method, id) {
    return new Promise(resolve => {
        // 调用自定义的axios
        server({
            method,
            url: `${url}?cid=${id}`,
            // params: data 
        })
        .then(res => {
            resolve(res);
        })
        .catch(() => {
            Message({
                message: '系统错误',
                type: 'error'
            })
        })
    })
}
export function deleteData(url, method, id) {
    return new Promise(resolve => {
        // 调用自定义的axios
        server({
            method,
            url: `${url}/${id}`,
            // params: data 
        })
        .then(res => {
            resolve(res);
        })
        .catch(() => {
            Message({
                message: '系统错误',
                type: 'error'
            })
        })
    })
}