
// 'http://192.168.1.222:8088','https://file-dev.xyyxt.net/'线下
// 'https://api.xyyxt.net' 'https://file.xyyxt.net/'线上
import store from '@/store/index.js'
import api from './api.js'
var num = 1
export const BASE_URL = 'https://api.xyyxt.net'//接口api
export const BASE_IMG_URL = 'https://file.xyyxt.net/'//图片上传api
export const tenantId = '1423178689245376513'
export const myRequest = (options) => {
	if(store.state.allowLoading){
		uni.showLoading({
			title:'拼命加载中...'
		}) 
	}

	return new Promise((resolve, reject) => {
		uni.request({
			url: BASE_URL + options.url,
			method: options.method || 'GET',
			data: options.data,
			header: options.noToken ? {
				TenantId: tenantId
			} : {
				AuthorizationToken: 'WX ' + uni.getStorageSync('token'),
				TenantId: tenantId
			},
			success: async (res) => {
				if (res.data.code == 401) {
					if (num <= 3) {
						if (!uni.getStorageSync('union_id')) {
							uni.navigateTo({
								url: '/pages/login/login'
							});
						} else {
							num++
							res = await doRequest(options)
						}

					};
				}
				resolve(res)
			},
			fail: (err) => {
				uni.showToast({
					title: "请求接口失败",
					icon: 'none'
				})
				reject(JSON.stringify(err))
			},
			complete:()=>{
				uni.hideLoading()
		//		uni.hideToast()
			}
		})
	})
	async function doRequest(response) {
		var datas = {
			url: '/refreshToken/' + uni.getStorageSync('union_id'),
			method: 'get',
			noToken: true
		}
		const res = await myRequest(datas)
		if (res.data.code === 200) {
			uni.setStorageSync('token', res.data.data.token)

			var userInfo = {
				url: '/getInfo',
				method: 'get',
			}
			const resUser = await myRequest(userInfo)
			if (resUser.data.code === 200) {
				store.state.userInfo = resUser.data.data
			}
			let onset = await myRequest(response)
			return onset
		} else {
			uni.navigateTo({
				url: '/pages/login/login'
			});
		}
	}
}
