| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /**
- * 请求封装
- */
- // 基础配置
- const BASE_URL = 'https://api.example.com' // TODO: 替换为实际接口地址
- const TIMEOUT = 10000
- /**
- * 统一请求方法
- */
- export const request = (options) => {
- return new Promise((resolve, reject) => {
- // 获取 token
- const token = uni.getStorageSync('token') || ''
-
- uni.request({
- url: BASE_URL + options.url,
- method: options.method || 'GET',
- data: options.data || {},
- header: {
- 'Content-Type': 'application/json',
- 'Authorization': token ? `Bearer ${token}` : ''
- },
- timeout: TIMEOUT,
- success: (res) => {
- const { statusCode, data } = res
-
- // HTTP 状态码判断
- if (statusCode === 200) {
- // 业务状态码判断
- if (data.code === 0 || data.code === 200 || data.success) {
- resolve(data)
- } else {
- // 业务错误
- uni.showToast({
- title: data.message || data.msg || '请求失败',
- icon: 'none',
- duration: 2000
- })
- reject(data)
- }
- } else if (statusCode === 401) {
- // 未授权,清除缓存并跳转登录页
- uni.removeStorageSync('userInfo')
- uni.removeStorageSync('token')
- uni.reLaunch({
- url: '/pages/login/login'
- })
- reject({ message: '未授权,请重新登录' })
- } else {
- // 其他错误
- uni.showToast({
- title: '网络请求失败',
- icon: 'none',
- duration: 2000
- })
- reject(res)
- }
- },
- fail: (err) => {
- uni.showToast({
- title: '网络连接失败',
- icon: 'none',
- duration: 2000
- })
- reject(err)
- }
- })
- })
- }
- /**
- * 快捷请求方法
- */
- export const get = (url, data) => {
- return request({ url, method: 'GET', data })
- }
- export const post = (url, data) => {
- return request({ url, method: 'POST', data })
- }
- export const put = (url, data) => {
- return request({ url, method: 'PUT', data })
- }
- export const del = (url, data) => {
- return request({ url, method: 'DELETE', data })
- }
- export default request
|