yitisheng-mini-app/common/request.js

206 lines
6.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*网络请求*/
import ENV_CONFIG from '@/config/env.js';
import ApiConstant from "@/common/ApiConstant";
// vuex 的使用 详情参考官网 https://uniapp.dcloud.io/vue-vuex
export default class Request {
http(param) {
// 请求参数
var url = param.url,
method = param.method,
header = {
'X-Access-Token':param.token || "",
},
data = param.data || {},
showLoading = true;
if (param.showLoad===false) {
showLoading = false;
}
//拼接完整请求地址
var requestUrl = ENV_CONFIG[process.env.NAME].requestBaseUrl + url;
//拼接完整请求地址(根据环境切换)
//请求方式:GET或POST(POST需配置
if (method) {
if(process.env.NAME){
if(process.env.NAME === 'dy_tiyu_prod'){
data['programType'] = '体育志愿宝'
}else{
data['programType'] = '艺体志愿宝'
}
}
method = method.toUpperCase(); //小写改为大写
if (method === "POST") {
header = {"content-type":'application/json',...header}
} else {
header = {"content-type":'application/x-www-form-urlencoded',...header}
}
}
//加载圈
if (showLoading) {
uni.showLoading({
title: '加载中...'
});
}
// 返回promise
return new Promise((resolve, reject) => {
// 请求
uni.request({
url: requestUrl,
data: data,
method: method,
header: header,
success: (res) => {
console.log('执行http请求')
let jsons= JSON.stringify(res)
//如果 nginx启动了后端服务没有启动
if (jsons.includes('502 Bad Gateway')) {
//跳转到维护页面
wx.reLaunch({
url: '/pages/error/serviceDown',
})
return;
}
if (res.data && res.data.code === 401) {
try {
uni.clearStorageSync();
} catch (e) {}
// 先显示提示框
uni.showModal({
title: '提示',
content: '该功能需要登录后使用喔~',
confirmText: '去登录',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
// 用户点击去登录
wx.reLaunch({
url: '/pages/zyb/login',
})
}else{
uni.navigateBack();
}
}
});
return;
}
// 将结果抛出
resolve(res.data)
},
//请求失败
fail: (e) => {
console.log('e:')
console.log(e)
if (e && e.errMsg === 'request:fail ') {
//服务未启动
//跳转到维护页面
wx.reLaunch({
url: '/pages/error/serviceDown',
})
return;
}else{
uni.showToast({
title: "" + e.data.msg,
icon: 'none'
});
}
resolve(e.data);
},
//请求完成
complete() {
//隐藏加载
if (showLoading) {
uni.hideLoading();
}
resolve();
return;
},
})
})
}
get(url,data,options={},header={}){
options.method='get';
options.data=data;
options.url=url;
options.token=uni.getStorageSync('token');
return this.http(options);
}
get2(url,data,headers={},options={}){
options.method='get';
options.data=data;
options.url=url;
options.token=uni.getStorageSync('token');
return this.http(options);
}
post(url,data,options={}){
options.method='post';
options.data=data;
options.url=url;
options.token=uni.getStorageSync('token');
return this.http(options);
}
post(url,data,showLoad,options={}){
options.method='post';
options.data=data;
options.url=url;
options.showLoad = showLoad;
options.token=uni.getStorageSync('token');
return this.http(options);
}
post(url,data,headers={},options={}){
options.method='post';
options.data=data;
options.url=url;
options.token=uni.getStorageSync('token');
return this.http(options);
}
delete(url,data,options={}){
options.method='delete';
options.data=data;
options.url=url;
options.token=uni.getStorageSync('token');
return this.http(options);
}
getUserScore(){
this.get(ApiConstant.Score.getScore, {},{showLoad:false}).then(res => {
if (res.success && res.result) {
let scoreInfo = res.result.scoreInfo
uni.removeStorageSync('scoreInfo')
uni.removeStorageSync('fillVolunteer')//清除可报志愿数量
uni.removeStorageSync('volunteer')//清除志愿单
if(scoreInfo){
uni.setStorageSync('scoreInfo', scoreInfo)
}
if(res.result.fillVolunteer){
uni.setStorageSync('fillVolunteer',res.result.fillVolunteer)
}
if(res.result.volunteer){
uni.setStorageSync('volunteer',res.result.volunteer)
}
}
}).catch(err => {
}).finally(() => {
});
}
goto(e){
uni.navigateTo({
url :e
})
}
}