2025-07-29 11:07:32 +08:00
|
|
|
|
// 统一请求工具
|
|
|
|
|
|
import { getTempToken, shouldUseTempToken } from '@/config/dev.js'
|
|
|
|
|
|
|
2025-08-01 18:33:52 +08:00
|
|
|
|
// const BASE_URL = 'http://192.168.2.7:4501'
|
|
|
|
|
|
const BASE_URL = 'https://testlu.chuangtewl.com/prod-api'
|
2025-07-29 11:07:32 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 统一请求方法
|
|
|
|
|
|
* @param {Object} options - 请求配置
|
|
|
|
|
|
* @param {string} options.url - 请求地址
|
|
|
|
|
|
* @param {string} options.method - 请求方法
|
|
|
|
|
|
* @param {Object} options.params - 查询参数
|
|
|
|
|
|
* @param {Object} options.data - 请求体数据
|
|
|
|
|
|
* @param {Object} options.header - 请求头
|
|
|
|
|
|
* @returns {Promise} 返回请求结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function request(options = {}) {
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
|
// 获取token,优先使用本地存储的token,如果没有则使用临时token
|
|
|
|
|
|
const localToken = uni.getStorageSync('token')
|
|
|
|
|
|
let token = localToken
|
|
|
|
|
|
|
|
|
|
|
|
// 如果本地没有token且启用了临时token,则使用临时token
|
|
|
|
|
|
if (!token && shouldUseTempToken()) {
|
|
|
|
|
|
token = getTempToken()
|
|
|
|
|
|
console.log('使用临时token进行开发测试')
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 构建请求配置
|
|
|
|
|
|
const requestOptions = {
|
|
|
|
|
|
url: BASE_URL + options.url,
|
|
|
|
|
|
method: options.method || 'GET',
|
|
|
|
|
|
header: {
|
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
|
...options.header
|
|
|
|
|
|
},
|
2025-08-01 17:53:56 +08:00
|
|
|
|
timeout: options.timeout || 60000, // 默认60秒超时
|
2025-07-29 11:07:32 +08:00
|
|
|
|
success: (res) => {
|
|
|
|
|
|
// 请求成功处理
|
|
|
|
|
|
if (res.statusCode === 200) {
|
|
|
|
|
|
resolve(res.data)
|
|
|
|
|
|
} else if (res.statusCode === 401) {
|
|
|
|
|
|
// 认证失败
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: '登录已过期,请重新登录',
|
|
|
|
|
|
icon: 'none'
|
|
|
|
|
|
})
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/login/login'
|
|
|
|
|
|
})
|
|
|
|
|
|
}, 1500)
|
|
|
|
|
|
reject(new Error('认证失败'))
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 其他错误
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: res.data?.msg || '请求失败',
|
|
|
|
|
|
icon: 'none'
|
|
|
|
|
|
})
|
|
|
|
|
|
reject(new Error(res.data?.msg || '请求失败'))
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: (err) => {
|
|
|
|
|
|
// 请求失败处理
|
|
|
|
|
|
console.error('请求失败:', err)
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: '网络错误',
|
|
|
|
|
|
icon: 'none'
|
|
|
|
|
|
})
|
|
|
|
|
|
reject(err)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 添加token到请求头
|
|
|
|
|
|
if (token) {
|
|
|
|
|
|
requestOptions.header.Authorization = token
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 添加参数
|
|
|
|
|
|
if (options.params) {
|
|
|
|
|
|
requestOptions.data = options.params
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (options.data) {
|
|
|
|
|
|
requestOptions.data = options.data
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 发起请求
|
|
|
|
|
|
uni.request(requestOptions)
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* GET请求
|
|
|
|
|
|
* @param {string} url - 请求地址
|
|
|
|
|
|
* @param {Object} params - 查询参数
|
|
|
|
|
|
* @param {Object} header - 请求头
|
|
|
|
|
|
* @returns {Promise} 返回请求结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function get(url, params = {}, header = {}) {
|
|
|
|
|
|
return request({
|
|
|
|
|
|
url,
|
|
|
|
|
|
method: 'GET',
|
|
|
|
|
|
params,
|
|
|
|
|
|
header
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* POST请求
|
|
|
|
|
|
* @param {string} url - 请求地址
|
|
|
|
|
|
* @param {Object} data - 请求体数据
|
|
|
|
|
|
* @param {Object} header - 请求头
|
|
|
|
|
|
* @returns {Promise} 返回请求结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function post(url, data = {}, header = {}) {
|
|
|
|
|
|
return request({
|
|
|
|
|
|
url,
|
|
|
|
|
|
method: 'POST',
|
|
|
|
|
|
data,
|
|
|
|
|
|
header
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* PUT请求
|
|
|
|
|
|
* @param {string} url - 请求地址
|
|
|
|
|
|
* @param {Object} data - 请求体数据
|
|
|
|
|
|
* @param {Object} header - 请求头
|
|
|
|
|
|
* @returns {Promise} 返回请求结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function put(url, data = {}, header = {}) {
|
|
|
|
|
|
return request({
|
|
|
|
|
|
url,
|
|
|
|
|
|
method: 'PUT',
|
|
|
|
|
|
data,
|
|
|
|
|
|
header
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* DELETE请求
|
|
|
|
|
|
* @param {string} url - 请求地址
|
|
|
|
|
|
* @param {Object} header - 请求头
|
|
|
|
|
|
* @returns {Promise} 返回请求结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function del(url, header = {}) {
|
|
|
|
|
|
return request({
|
|
|
|
|
|
url,
|
|
|
|
|
|
method: 'DELETE',
|
|
|
|
|
|
header
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|