import Vue from 'vue'
import axios from 'axios'
import { Promise } from "core-js"
import adapter from 'axios-miniprogram-adapter'
// import {Toast} from '../wxcomponents/dist/toast/toast'
// 设置基地址
const request = axios.create({
    // 运行到浏览器时,把这一行注释回来,VUE_APP_BASE_API是在vue.config.js中配置的,官网有
    // baseURL: process.env.VUE_APP_BASE_API,
    // 运行到浏览器时下面一行注释掉
    baseURL: 'http://shop-api.edu.koobietech.com',
    // 在微信开发者工具环境中,axios,http是发不出去的,没有跨域,vue.config.js文件也是无效的
    // 基于axios-miniprogram-adapter包给axios中添加一个适配器
    // 运行到浏览器时,下面一行注释掉,axios时可以在浏览器中正常使用的,不需要适配器
    adapter: adapter,
})
axios.defaults.adapter = function(config) {
    return new Promise((resolve, reject) => {
        console.log(config)
        var settle = require('axios/lib/core/settle');
        var buildURL = require('axios/lib/helpers/buildURL');
        uni.request({
            method: config.method.toUpperCase(),
            url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer),
            header: config.headers,
            data: config.data,
            dataType: config.dataType,
            responseType: config.responseType,
            sslVerify: config.sslVerify,
            complete: function complete(response) {
                response = {
                    data: response.data,
                    status: response.statusCode,
                    errMsg: response.errMsg,
                    header: response.header,
                    config: config
                }
                settle(resolve, reject, response);
            }
        })
    })
}


// request拦截器,在请求之前做一些处理
request.interceptors.request.use(
	config => {
		const token = uni.setStorageSync("token");
		console.log(config, '请求拦截成功')
		return config;
	},
	error => {
		return Promise.reject(error);
	}
);

//配置成功后的拦截器
request.interceptors.response.use(res => {
	const data = res.data;
	if (data.code == "00000") {
		return data.data
	}
	if(data.code == "A00001") {
		uni.showToast({
			title:"帐户密码不正确"
		})
			// Toast.fail('帐户密码不正确')
	}
	if (data.code === "A00004") {
		// Toast.fail('请登录后操作!')
		uni.showToast({
			title:"请登录后操作"
		})
		uni.navigateTo({
			url:"/pages/login/login"
		})
		return Promise.reject("当前页面需要登录!")
	}
	// Toast(data.msg)
	uni.showToast({
			title:data.msg
		})
	return Promise.reject(data.msg)
}, error => {

	return Promise.reject(error)
})




export default request;