import store from '@/store'
import config, {
	baseUrl,foreignUrl
} from '@/config'
import {
	getToken,
	getServerUrl
} from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import {
	toast,
	showConfirm,
	tansParams
} from '@/utils/common'

let timeout = 200000

console.log(baseUrl)
const request = config => {

	// 是否需要设置 token
	const isToken = (config.headers || {}).isToken === false
	config.header = config.header || {}
	if (getToken() && !isToken) {
		// config.header['Authorization'] = 'Bearer ' + getToken()
		config.header['UserKey'] = getToken()
		config.header['ServerUrl'] = getServerUrl()
	} else {
		//去除token校验
		// uni.reLaunch({
		// 	url: '/pages/login/index'
		// })
	}
	// get请求映射params参数
	if (config.params) {
		let url = config.url + '?' + tansParams(config.params)
		url = url.slice(0, -1)
		config.url = url
	}
	return new Promise((resolve, reject) => {
		let requestUrl = uni.getStorageSync("Url")+"/K3Cloud/Kingdee.BOS.WebApi.ServicesStub."
		// if (Yycbm == "LT" || Yycbm == "LF" || Yycbm == "LL") {
		// 	 requestUrl = baseUrl
		// } else {
		// 	 requestUrl = foreignUrl
		// }
		console.log(requestUrl)

		uni.request({
				method: config.method || 'get',
				timeout: config.timeout || timeout,
				url: requestUrl + config.url,
				data: config.data,
				header: config.header,
				// dataType: 'json'
			}).then(response => {
				console.log(response)
				let [error, res] = response
				// if (error) {
				// 	toast('后端接口连接异常')
				// 	reject('后端接口连接异常')
				// 	return
				// }
				console.log(res)
				// const code = res.data.Code || 200
				// const msg = errorCode[code] || res.data.Msg || errorCode['default']
				// console.log(code)
				if(error !=null){
					reject(error.errMsg)
				}
				console.log(res.data.statusCode)
				if(res.statusCode !== 200){
					reject("后端接口连接异常")
				}
				if (typeof res.data === 'object' && res.data !== null && res.data.Result) {
				  console.log('数据是一个对象');
				  let responseStatus = res.data.Result.ResponseStatus;
				  if (responseStatus && responseStatus.MsgCode === 1) {
				    console.log('会话信息已丢失，请重新登录');
					showConfirm(responseStatus.Errors[0].Message).then(res => {
						console.log(res)
						if (res) {
							console.log("aaa")
							uni.reLaunch({
								url: '/pages/login/index'
							})
						}
					})
					// reject(responseStatus.Errors[0].Message)
				  }
				}
				// if (msg == 'UNLOGIN') {
				// 	showConfirm('登录状态已过期，您可以继续留在该页面，或者重新登录?').then(res => {
				// 		if (res.confirm) {
				// 			console.log(getToken())
				// 			if (getToken()) {
				// 				store.dispatch('LogOut').then(res => {
				// 					uni.reLaunch({
				// 						url: '/pages/login/index'
				// 					})
				// 				})
				// 			} else {
				// 				uni.reLaunch({
				// 					url: '/pages/login/index'
				// 				})
				// 			}

				// 		}
				// 	})
				// 	reject('无效的会话，或者会话已过期，请重新登录。')
				// }
				resolve(res.data)
			})
			.catch(error => {
				let {
					message
				} = 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) + '异常'
				}
				toast(message)
				reject(error)
			})
	})
}

export default request