You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
4.1 KiB
133 lines
4.1 KiB
// api.js
|
|
|
|
// 导入qs库
|
|
import qs from "qs";
|
|
|
|
// 基础URL,可以根据环境来设置
|
|
// uEnvDev
|
|
const accountInfo = wx.getAccountInfoSync();
|
|
// env类型 develop:开发版、trial:体验版、release:正式版
|
|
export const env = accountInfo.miniProgram.envVersion;
|
|
if (!env) {
|
|
console.error("获取运行环境失败!");
|
|
}
|
|
const baseApi = {
|
|
// 开发版
|
|
develop: "http://110.40.156.216:30005/api",
|
|
// 体验版
|
|
trial: "http://110.40.156.216:30005/api",
|
|
// 正式版
|
|
release: "http://110.40.156.216:30005/api",
|
|
};
|
|
console.log(env, "env");
|
|
// request请求baseURL
|
|
const BASE_URL = baseApi[env] || "http://110.40.156.216:30005/api";
|
|
|
|
function request(url, method, data = {}) {
|
|
const loginRes = uni.getStorageSync("loginRes") || {};
|
|
const UTCOffset = new Date().getTimezoneOffset();
|
|
return new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url: BASE_URL + url, // 完整的URL
|
|
method: method,
|
|
data: data,
|
|
header: {
|
|
AccessToken: loginRes.accessToken || "-1", // 请求头,可根据需要调整
|
|
UserId: loginRes.appUserId || "-1", // 请求头,可根据需要调整
|
|
LanguageType: 0,
|
|
},
|
|
success: (res) => {
|
|
if (res.statusCode === 200) {
|
|
console.log(res);
|
|
if ((res.data.code === 200) | (res.data.code === 0)) {
|
|
resolve(res.data);
|
|
} else {
|
|
reject(res.data);
|
|
}
|
|
} else {
|
|
reject(res);
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
uni.showToast({
|
|
title: "请求错误", // 提示的文本内容
|
|
icon: "none", // 提示的图标,可选值:'success' | 'loading' | 'none'
|
|
duration: 2000, // 提示框的显示时间,单位为毫秒,默认1500ms
|
|
});
|
|
reject(err); // 请求失败
|
|
},
|
|
});
|
|
});
|
|
}
|
|
|
|
// 使用uni.addInterceptor拦截请求,处理GET请求中的数组参数
|
|
uni.addInterceptor("request", {
|
|
invoke(args) {
|
|
// request 触发前拼接 url
|
|
const { data, method } = args;
|
|
if (method === "GET") {
|
|
// 如果是get请求,且params是数组类型如arr=[1,2],则转换成arr=1&arr=2
|
|
const newData = qs.stringify(data, {
|
|
arrayFormat: "repeat",
|
|
});
|
|
delete args.data;
|
|
args.url = `${args.url}?${newData}`;
|
|
}
|
|
},
|
|
success(args) {},
|
|
fail(err) {},
|
|
complete(res) {},
|
|
});
|
|
|
|
// GET 请求
|
|
export function get(url, params = {}) {
|
|
return request(url, "GET", params);
|
|
}
|
|
|
|
// POST 请求
|
|
export function post(url, data = {}) {
|
|
return request(url, "POST", data);
|
|
}
|
|
|
|
export function uploadFile(url, filePath = "", data = {}) {
|
|
const loginRes = uni.getStorageSync("loginRes") || {};
|
|
return new Promise((resolve, reject) => {
|
|
uni.uploadFile({
|
|
url: BASE_URL + url, // 完整的URL
|
|
filePath: filePath,
|
|
name: "image",
|
|
header: {
|
|
AccessToken: loginRes.accessToken || "-1", // 请求头,可根据需要调整
|
|
UserId: loginRes.appUserId || "-1", // 请求头,可根据需要调整
|
|
LanguageType: 0,
|
|
// 其他需要的请求头信息(如Token)
|
|
},
|
|
formData: data,
|
|
success: (res) => {
|
|
if (res.statusCode === 200) {
|
|
if (res.data.code === 500) {
|
|
uni.showToast({
|
|
title: "系统错误", // 提示的文本内容
|
|
icon: "none", // 提示的图标,可选值:'success' | 'loading' | 'none'
|
|
duration: 2000, // 提示框的显示时间,单位为毫秒,默认1500ms
|
|
});
|
|
}
|
|
if (res.data.code === 20001) {
|
|
reject(res.data);
|
|
}
|
|
resolve(res.data); // 返回数据
|
|
} else {
|
|
reject(res.data); // 返回错误信息
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
uni.showToast({
|
|
title: "请求错误", // 提示的文本内容
|
|
icon: "none", // 提示的图标,可选值:'success' | 'loading' | 'none'
|
|
duration: 2000, // 提示框的显示时间,单位为毫秒,默认1500ms
|
|
});
|
|
reject(err); // 请求失败
|
|
},
|
|
});
|
|
});
|
|
}
|
|
|