This commit is contained in:
Zy
2026-05-15 18:15:33 +08:00
parent 19698a48c3
commit 636e6b7712
2 changed files with 258 additions and 0 deletions

View File

@@ -0,0 +1,129 @@
let baseUrl = ''
if (process.env.NODE_ENV === 'development') {
baseUrl = 'http://192.168.0.239:8080' // 开发环境
} else {
baseUrl = 'http://192.168.0.239: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
}, {})
}

View File

@@ -0,0 +1,129 @@
let baseUrl = ''
if (process.env.NODE_ENV === 'development') {
baseUrl = 'http://192.168.0.239:8080' // 开发环境
} else {
baseUrl = 'http://192.168.0.239: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
}, {})
}