import {
	clientId,
	clientSecret,
	userType
} from '@/common/setting'
import {
	options
} from '@/http/config.js';
import {
	Base64
} from '@/utils/base64.js';
import Request from '@/utils/luch-request/index.js';
const http = new Request(options);
http.interceptors.request.use((config) => { // 可使用async await 做异步操作
	// 假设有token值需要在头部需要携带
	let accessToken = uni.getStorageSync('accessToken');
	if (accessToken) {
		config.header['Blade-Auth'] = 'bearer ' + accessToken;
	}
	// 客户端认证参数
	config.header['Authorization'] = 'Basic ' + Base64.encode(clientId + ':' + clientSecret);
	config.header['User-Type']=userType;


	// 额外参数
	// config.data = config.data || {};
	// config.data.pf = uni.getSystemInfoSync().platform;
	// config.data.sys = uni.getSystemInfoSync().system;

	// 演示custom 用处
	// if (config.custom.auth) {
	//   config.header.token = 'token'
	// }
	// if (config.custom.loading) {
	//  uni.showLoading()
	// }
	/**
	 /* 演示
	 if (!token) { // 如果token不存在，return Promise.reject(config) 会取消本次请求
	    return Promise.reject(config)
	  }
	 **/
	return config
}, config => { // 可使用async await 做异步操作
	return Promise.reject(config)
})
http.interceptors.response.use((response) => {
	// 若有数据返回则通过
	if (response.data.access_token || response.data.key) {
		return response.data
	}
	// 服务端返回的状态码不等于200，则reject()
	if (response.data.code !== 200) {
		return Promise.reject(response);
	}
	return response.data;
}, (response) => {

	/*  对响应错误做点什么 （statusCode !== 200）*/
	if (response.data.code == 401) {
		// uni.reLaunch({
		// 	url: '/pages/login/login-account'
		// })
		
		uni.navigateTo({
			url: '/pages/login/login-account'
		})
		
	} 
	else {
		uni.showToast({
			title: response.data.msg+" code:"+response.data.code,
			icon: 'none'
		});
	}

	return Promise.reject(response)
})
export default http;
