/**
 * @Description:request 封装
 * @Version: 1.0.0
 * @author:苏园园
 * @Date: 2024-3-29 15:42:41
 */
import config from './config.js'
class Request {
	http(param) {
		let url = param.url,
			header = param.header,
			method = param.method,
			data = param.data,
			dataType = 'json',
			responseType = param.responseType || 'text'
		if (header) {
			header = param.header
		} else {
			header = {
				'Content-type': "application/x-www-form-urlencoded",
			};
		}
		const token = uni.getStorageSync('token');
		header['Authorization'] = header['Authorization'] ? header['Authorization'] : token;
		// 返回promise
		return new Promise((resolve, reject) => {
			// 请求
			uni.request({
				url: config.baseUrl + url,
				data: data,
				method: method,
				dataType: dataType,
				responseType: responseType,
				header: header,
				success: (res) => {
					if (res.statusCode && res.statusCode != 200) {
						uni.$u.toast("api错误" + res.data.error)
						return;
					}
					if (res.data.code !== 200) {
						// code判断:200成功,不等于200错误
						if (res.data.code == 501) {
							webUni.webView.reLaunch({
								url: "/pages/index/login/login",
							});
						} else if (res.data.code == 400 || res.data.code == 501) {
							uni.$u.toast('请登录小程序~');
							setTimeout(() => {
								webUni.webView.reLaunch({
									url: "/pages/index/login/login",
								});
							}, 500)
						} else {
							uni.$u.toast(res.data.msg)
						}
					}
					// 将结果抛出
					resolve(res.data)
				},
				//请求失败
				fail: (e) => {
					uni.$u.toast('网络异常, 请检查网络连接')
					resolve(e.data);
				},
				//请求完成
				complete() {
					resolve();
					return;
				},

			})
		})

	}
}
export default new Request()