zhgdyunapp_vue3/utils/request.js
2025-02-07 17:10:27 +08:00

155 lines
4.5 KiB
JavaScript

import stringify from "@/utils/querystring";
import {
toLogin
} from "@/utils/page.js";
// import { createApp } from "../main.js";
// import {
// API
// } from "@/utils/api.js"
//获取token
function getToken() {
var token = uni.getStorageSync('token');
if (!token) {
return '';
}
return '';
}
// 请求完成时处理结果
function result(res, resolve, reject, isToast) {
if (res && res != "") {
let statusCode = res.statusCode;
if (statusCode == 401) {
uni.removeStorageSync('userInfo');
uni.removeStorageSync('token');
return toLogin()
}
if (statusCode == 500) {
isToast && uni.showToast({
title: "服务器出错",
icon: "none"
})
reject("服务器错误")
} else {
let result; //请求结果
let code = res.data.code; //请求结果中的status
if (typeof(res.data) == 'string') {
//返回的结果为string,转换为对象
result = JSON.parse(res.data);
} else {
result = res.data;
}
if (result.status != undefined) {
code = result.status;
}
if (code != 401) {
//接口返回的code == 1 则为成功
resolve(result)
uni.hideLoading();
} else {
isToast && uni.showToast({
title: result.msg,
icon: "none"
})
if (code == 401) {
uni.removeStorageSync('userInfo');
uni.removeStorageSync('token');
toLogin()
}
reject(result)
}
}
}
}
//发送请求
function baseRequest(url, params, method, options, isToast = false) {
return new Promise((resolve, reject) => {
//判断参数不存在或为空则设置为空对象
if (params == undefined || params == "") {
params = {};
}
let header;
//请求头
if (!options.header) {
if (method == "POST") {
header = {
'content-type': 'application/json',
}
} else {
header = {
'content-type': 'application/x-www-form-urlencoded',
}
}
} else {
header = options.header
}
let Authorization = getToken();
if (Authorization && Authorization != "") {
header["Token"] = Authorization;
}
isToast && uni.showLoading({
title: '加载中'
});
// let BaseUrl = uni.getStorageSync("ipPort") || app.config.globalProperties.url_config
// let BaseUrl = createApp().app.config.globalProperties.url_config
// let BaseUrl = process.env.NODE_ENV === 'development' ? 'http://192.168.34.221:9111/' : 'http://jxj.zhgdyun.com:18000/'
let BaseUrl = process.env.NODE_ENV === 'development' ? 'http://192.168.34.221:9111/' : "http://219.147.96.219:9809/" // 包头线上地址(正式)
console.log(BaseUrl, 777888)
uni.request({
url: BaseUrl + url,
data: params,
method: method,
header: header,
dataType: 'json',
timeout: 8000,
// sslVerify:false,
success: (res) => {
result(res, resolve, reject, isToast)
},
fail: (err) => {
let errMsg = "";
if (err != undefined && err.errMsg != undefined) {
errMsg = err.errMsg;
}
isToast && uni.showToast({
title: "服务器出错",
icon: "none"
})
reject(errMsg);
}
});
}).catch((e) => {
console.log(e);
})
}
const request = {
get(options) {
return baseRequest(options.url, options.params, 'GET', options, options.isToast)
},
post(options) {
if (options.params) {
options.url += '?' + stringify(options.params)
}
return baseRequest(options.url, options.data, 'POST', options, options.isToast)
},
put(options) {
return baseRequest(options.url, options.params, 'PUT', options, options.isToast)
},
delete(options) {
return baseRequest(options.url, options.params, 'DELETE', options, options.isToast)
}
}
export default request