Files
property-manager-side/wuye-manager-uniapp/api/request.js
2026-05-19 09:23:23 +08:00

125 lines
3.1 KiB
JavaScript

import baseUrl from './BaseUrl.js'
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
}, {})
}