import store from '@/store'
// import config from '@/config'
import errorCode from '@/common/utils/errorCode'
import { toast, showConfirm, tansParams } from '@/common/utils/common'
import storage from '@/common/utils/storage'

let timeout = 10000
// const baseUrl = config.baseUrl + config.baseApi;

const request = config => {
	let requestUrl="";
	if(getApp()!=undefined){
		requestUrl = getApp().globalData.request_url
	}
  // 是否需要设置 token
  const isToken = (config.headers || {}).isToken === false
  config.header = config.header || {}
  if (storage.getStorage(storage.constant.token) && !isToken) {
    config.header['Authorization'] = 'Bearer ' + storage.getStorage(storage.constant.token)
  }
  // 设置租户 TODO 芋艿:强制 1 先
  // config.header['tenant-id'] = storage.getStorage(storage.constant.tenantId);
  config.header['tenant-id'] = getApp().globalData.tenantId
  // 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) => {
    uni.request({
        method: config.method || 'get',
        timeout: config.timeout ||  timeout,
        // url: config.baseUrl || baseUrl + config.url,
		url:requestUrl+ config.url,
        data: config.data,
        header: config.header,
        dataType: 'json'
      }).then(response => {
		const res=response
		var statusCode =response.statusCode
		//请求成功
		if(statusCode==200){
			if(res.data.code==401||res.data.code==500){
				reject(res.data.msg)
			}else {
				resolve(res.data)
			}
			 
		}else if(statusCode==404){
			//请求失败
			if(res.data.error){
				reject(res.data.error)
			}else {
				reject(res.errMsg)
			}
		}
		
  //       const code = res.data.code || 200
  //       const msg = errorCode[code] || res.data.msg || errorCode['default']
	   
	   // if(code==200){
		  //  if(res.data.status==404){
		  //  	// toast(msg)
		  //  	reject("404")
		  //  }else {}
	   // }
	   
		// if (code === 401) {
          // showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {
          //   if (res.confirm) {
          //     store.dispatch('LogOut').then(res => {
          //       uni.reLaunch({ url: '/pages/login' })
          //     })
          //   }
          // })
          // reject('无效的会话,或者会话已过期,请重新登录。')
  //       } else if (code === 500) {
  //         toast(msg)
  //         reject('500')
  //       } else if (code !== 200) {
  //         toast(msg)
  //         reject(code)
  //       }else if(code == 200){
		// 	if(res.data.status==404){
		// 		// toast(msg)
		// 		reject("404")
		// 		return;
		// 	}
		// 	 resolve(res.data)
		// }
      })
      .catch(error => {
        var message = error.errMsg
        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