import store from '@/store'
import errorCode from '@/config/errorCode'
import axios from 'axios'
import mpAdapter from 'axios-miniprogram-adapter'
axios.defaults.adapter = mpAdapter

import mock from './mock'

const baseUrl = 'https://zzjs.zzxcx.net/prod-api';

// 创建axios实例
const service = axios.create({
	// axios中请求配置有baseURL选项，表示请求URL公共部分
	//#ifdef MP-WEIXIN
	//baseURL: process.env.NODE_ENV === 'development' ? 'https://jpcj-admin1.zzxcx.net/stage-api' : 'https://jpcj-admin.zzxcx.net/prod-api',
	baseURL: process.env.NODE_ENV === 'development' ? 'https://nbjk1.zzxcx.net/nbjk-admin' : 'https://nbjk.zzxcx.net/nbjk-admin',
	
	//#endif
	//#ifdef MP-TOUTIAO
	baseURL: process.env.NODE_ENV === 'development' ? 'https://sdjk-admin1.zzxcx.net/stage-api' : 'https://sdjk-admin.zzxcx.net/prod-api',
	//#endif
})
mock.init(service)

// request拦截器
service.interceptors.request.use(

	async config => {
		
		// 是否需要设置 token
		if (config.headers.isLogin) {
			return config
		}
		if (await store.dispatch("getToken")) {
			console.log(store.state)
			config.headers['Authorization'] = 'Bearer ' + store.state.user.tokenObj.token // 让每个请求携带自定义token 请根据实际情况自行修改
		}
		else {

		}

		return config
	},
	error => {
		Promise.reject(error)
	}
)

// 响应拦截器
service.interceptors.response.use(
	res => {
		// 未设置状态码则默认成功状态
		const code = res.data.code || 200;
		// 获取错误信息
		const msg = errorCode[code] || res.data.msg || errorCode['default']
		//重置Authorization时间
		if (code !== 401) store.commit('REFRESH_TOKEN')

		if (code !== 200) {
			if (code == 500) {
				console.log('code' + code + ':' + msg)
				wx.showToast({
					title: 'code' + code + ':系统错误',
					icon: 'none'
				})
			} else if(code!==502){
				console.log('code' + code + ':' + msg)
				wx.showToast({
					title: msg,
					icon: 'none'
				})
			}
		}

		return res.data
	},
	error => {
		let {
			message
		} = error;
		console.log(error, 'error')
		if (!message) {
			message = "未知错误"
			wx.showToast({
				title: message,
				icon: 'none'
			})
			return Promise.reject(error)
		}
		if (message == "Network Error") {
			message = "后端接口连接异常";
		} else if (message.includes("timeout")) {
			message = "系统接口请求超时";
		} else if (message.includes("Request failed with status code")) {
			message = "系统接口" + message.substr(message.length - 3) + "异常";
		}
		wx.showToast({
			title: message,
			icon: 'none'
		})
		return Promise.reject(error)
	}
)

export default service
