You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
2.7 KiB
JavaScript
141 lines
2.7 KiB
JavaScript
import _env from "../env";
|
|
import {
|
|
getOrigin
|
|
} from "./app";
|
|
import utils from "./utils";
|
|
|
|
let extConfig = {};
|
|
|
|
const env = {
|
|
..._env,
|
|
...extConfig
|
|
}
|
|
|
|
/**
|
|
* 请求基类
|
|
* @param {Object} options 请求参数 { url: String 路径, [data: Object 请求携带的数据], [method: String 请求方式] }
|
|
*/
|
|
export function request(options) {
|
|
|
|
options.header = {
|
|
Authorization: `Bearer ${uni.getStorageSync("token")}`,
|
|
}
|
|
|
|
if (options.externalRequest) {
|
|
|
|
} else {
|
|
options.noclient ? (options.url = env.host + options.url) : (options.url = env.host + "" + options.url);
|
|
}
|
|
|
|
return new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url: options.url,
|
|
timeout: env.NETWORK_TIME_OUT,
|
|
// data: { ...options.data, store_id: env.store_id, mini_id: env.mini_id, origin: getOrigin() },
|
|
data: { ...options.data, ...env, origin: getOrigin() },
|
|
header: options.header,
|
|
method: options.method,
|
|
success: (res) => {
|
|
uni.hideLoading();
|
|
let { statusCode } = res;
|
|
switch (statusCode) {
|
|
case 200:
|
|
resolve(res.data);
|
|
break;
|
|
|
|
case 401:
|
|
// 401 过期
|
|
setTimeout(() => {
|
|
utils.loginOut();
|
|
}, 300)
|
|
break;
|
|
|
|
default:
|
|
console.log("请求失败(" + statusCode + ")")
|
|
reject(res)
|
|
uni.$u.toast(res?.data?.message || "出错了");
|
|
break;
|
|
}
|
|
},
|
|
|
|
fail: (res) => {
|
|
console.log(res, 'reslogin')
|
|
// #ifdef MP-ALIPAY
|
|
if (res.statusCode == 401) {
|
|
setTimeout(() => {
|
|
utils.loginOut();
|
|
}, 300)
|
|
}
|
|
// #endif
|
|
reject(res.data.data);
|
|
},
|
|
});
|
|
});
|
|
}
|
|
|
|
export function uploadFile({
|
|
filePath,
|
|
name,
|
|
formData
|
|
}) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
// #ifdef MP-ALIPAY
|
|
let fileType = ""
|
|
let contentType = '';
|
|
if (filePath.endsWith('.image')) {
|
|
contentType = 'image/png';
|
|
fileType = 'image';
|
|
} else if (filePath.endsWith('.video')) {
|
|
contentType = 'video/mp4';
|
|
fileType = 'video';
|
|
}
|
|
// #endif
|
|
|
|
uni.uploadFile({
|
|
url: env.host + '/client/common/upload',
|
|
name: "file",
|
|
filePath: filePath,
|
|
|
|
fileName: "file",
|
|
// #ifdef MP-ALIPAY
|
|
fileType: fileType,
|
|
// #endif
|
|
|
|
headers: {
|
|
// #ifdef MP-ALIPAY
|
|
"Content-Type": "application/x-www-form-urlencoded"
|
|
// #endif
|
|
},
|
|
formData: {
|
|
...formData,
|
|
store_id: env.store_id,
|
|
origin: getOrigin()
|
|
},
|
|
timeout: 10000,
|
|
success: (res) => {
|
|
switch (res.statusCode) {
|
|
case 200:
|
|
resolve(JSON.parse(res.data))
|
|
break;
|
|
|
|
case 401:
|
|
// 401 过期
|
|
utils.loginOut();
|
|
break;
|
|
|
|
default:
|
|
uni.$u.toast(console.log("请求失败(" + statusCode + ")"));
|
|
break;
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
my.alert({
|
|
title: '上传失败',
|
|
content: JSON.stringify(err)
|
|
});
|
|
},
|
|
});
|
|
})
|
|
} |