134 lines
3.3 KiB
JavaScript
134 lines
3.3 KiB
JavaScript
let baseUrl = '';
|
|
if (process.env.NODE_ENV === 'development') {
|
|
baseUrl = 'http://192.168.0.239:8080'; // 开发环境
|
|
} else {
|
|
baseUrl = 'http://192.168.0.224:8080'; // 生产环境
|
|
}
|
|
|
|
export default function request(url, data = {}, method = "GET") {
|
|
return new Promise((resolve, reject) => {
|
|
uni.showLoading({
|
|
title: '请求中...',
|
|
mask: true
|
|
});
|
|
|
|
uni.request({
|
|
url: baseUrl + url,
|
|
data: data,
|
|
method: method,
|
|
header: {
|
|
"Authorization": "Bearer " + (uni.getStorageSync("token") || ''),
|
|
"clientid": "butler",
|
|
'content-type': 'application/json'
|
|
},
|
|
success: (res) => {
|
|
uni.hideLoading();
|
|
|
|
// HTTP 失败
|
|
if (res.statusCode !== 200) {
|
|
reject({
|
|
msg: `请求异常 ${res.statusCode}`,
|
|
code: res.statusCode
|
|
});
|
|
return;
|
|
}
|
|
|
|
const resData = res.data || {};
|
|
|
|
// token 过期
|
|
if (resData.code === 401) {
|
|
uni.showToast({
|
|
title: '登录过期,请重新登录',
|
|
icon: 'none'
|
|
});
|
|
uni.clearStorageSync('token');
|
|
setTimeout(() => {
|
|
uni.reLaunch({
|
|
url: '/pageSubPack/loginSub/pwd-login'
|
|
});
|
|
}, 1500);
|
|
reject({
|
|
msg: '登录过期',
|
|
code: 401
|
|
});
|
|
return;
|
|
}
|
|
|
|
// 成功
|
|
if (resData.code === 200) {
|
|
resolve(resData);
|
|
}
|
|
// 业务失败
|
|
else {
|
|
reject({
|
|
msg: resData.msg || '请求失败',
|
|
code: resData.code,
|
|
data: resData
|
|
});
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
uni.hideLoading();
|
|
reject({
|
|
msg: '网络异常',
|
|
code: -1,
|
|
raw: err
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
export const get = (url, data) => request(url, data, 'GET');
|
|
export const post = (url, data) => request(url, data, 'POST');
|
|
export const put = (url, data) => request(url, data, 'PUT');
|
|
// export const deleteMethod = (url, data) => request(url, data, 'DELETE');
|
|
// export const putMethod = (url, data) => request(url, data, 'PUT');
|
|
|
|
// 上传
|
|
export const upload = (filePath, url) => {
|
|
return new Promise((resolve, reject) => {
|
|
uni.uploadFile({
|
|
url: baseUrl + url,
|
|
filePath: filePath,
|
|
name: 'file',
|
|
header: {
|
|
"Authorization": "Bearer " + (uni.getStorageSync("token") || ''),
|
|
"clientid": "resident"
|
|
},
|
|
success: (res) => {
|
|
try {
|
|
const data = JSON.parse(res.data);
|
|
resolve(data.data || ''); // 直接返回图片地址
|
|
} catch (e) {
|
|
resolve('');
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
reject(err);
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* 过滤请求参数:移除值为 null / undefined / 空字符串 的字段
|
|
* 用于避免将空参数拼接到 URL 或请求体中
|
|
* @param {Object|null|undefined} params - 原始请求参数
|
|
* @returns {Object} 过滤后的干净参数对象,只保留有效值
|
|
*/
|
|
export function filterParams(params) {
|
|
if (!params) return {}
|
|
return Object.keys(params).reduce((acc, key) => {
|
|
const value = params[key]
|
|
if (value !== null && value !== undefined && value !== '') {
|
|
acc[key] = value
|
|
}
|
|
return acc
|
|
}, {})
|
|
}
|