diff --git a/.history/wuye-manager-uniapp/api/request_20260515181356.js b/.history/wuye-manager-uniapp/api/request_20260515181356.js new file mode 100644 index 0000000..aea6064 --- /dev/null +++ b/.history/wuye-manager-uniapp/api/request_20260515181356.js @@ -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 + }, {}) +} diff --git a/.history/wuye-manager-uniapp/api/request_20260515181432.js b/.history/wuye-manager-uniapp/api/request_20260515181432.js new file mode 100644 index 0000000..7ae9447 --- /dev/null +++ b/.history/wuye-manager-uniapp/api/request_20260515181432.js @@ -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 + }, {}) +}