Files
property-manager-side/wuye-manager-uniapp/api/request.js

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
}, {})
}