import axios from 'axios';
import { Message } from 'element-ui'
// import { ElMessage, ElMessageBox } from 'element-plus';
// import { Session } from '/@/utils/storage';
// import qs from 'qs';
 
// 閰嶇疆鏂板缓涓€涓� axios 瀹炰緥
const service = axios.create({
	baseURL: window.location.origin,
	timeout: 50000,
	headers: { 
        "Content-Type": "application/json"
    },
});
 
// 娣诲姞璇锋眰鎷︽埅鍣�
service.interceptors.request.use(
	(config) => {
		// console.log("馃殌 ~ config:", config.data)
		if(!config.url.includes('/api/v2/recogInvoive.do')){
			const accessToken = localStorage.getItem("accessToken");
			if (accessToken) {
				config.headers.accessToken = accessToken;
			}
		}
		return config;
	},
	(error) => {
		// 瀵硅姹傞敊璇仛浜涗粈涔�
		return Promise.reject(error);
	}
);
 
// 娣诲姞鍝嶅簲鎷︽埅鍣�
service.interceptors.response.use(
	(response) => {
        let res = response.data;
		// 瀵瑰搷搴旀暟鎹仛鐐逛粈涔�
        if(response.headers["x-subject-token"]){
            res = {...response.data, "x-subject-token": response.headers["x-subject-token"]};
        }
		if (res.code && res.code !== 0) {
			// `token` 杩囨湡鎴栬€呰处鍙峰凡鍦ㄥ埆澶勭櫥褰�
			if (res.code === 401) {
				window.location.href = '/'; // 鍘荤櫥褰曢〉
				// ElMessageBox.alert('浣犲凡琚櫥鍑猴紝璇烽噸鏂扮櫥褰�', '鎻愮ず', {})
				// 	.then(() => { })
				// 	.catch(() => { });
				// console.log("馃殌 ~ service.interceptors.response:", service.interceptors.response)
				// return Promise.reject(service.interceptors.response);
			} else {
				return res;
			}
		} else {
			return res;
		}
	},
	(error) => {
		// console.log("馃殌 ~ error:", error)
		// 瀵瑰搷搴旈敊璇仛鐐逛粈涔�
		if (error.message.indexOf('timeout') != -1) {
            Message.error('缃戠粶瓒呮椂');
		} else if (error.message == 'Network Error') {
            Message.error('缃戠粶杩炴帴閿欒');
		} else {
			if (error.response.data) {
				Message.error(error.response.data.message || error.response.statusText);
			}else Message.error('鎺ュ彛璺緞鎵句笉鍒�');
		}
		return Promise.reject(error);
	}
);
 
// 瀵煎嚭 axios 瀹炰緥
export default service;