import { useMemberStore } from '@/stores' import { encrypt, decrypt } from './encrypt' // 引入加解密方法 import { cloneDeep } from 'lodash-es' // 引入深拷贝函数 /** * 添加拦截器 * 拦截 request 请求 * baseURL 设置请求ip地址和端口 */ // const ENV = process.env.NODE_ENV // const baseURL = ENV === 'development' ? '/api' : 'http://192.168.0.133:11997' const baseURL = import.meta.env.VITE_API_BASE_URL /** * httpInterceptor 分别拦截 request 和 uploadFile 请求 */ // 添加请求拦截 const httpInterceptor = { invoke(options) { // 1. 先判断请求 url 是否为完整的 http 请求路径 如果不是则拼接 baseURL if (!options.url.startsWith('http')) { options.url = baseURL + options.url } // 2. 设置请求超时时间,默认为60s,设置为 10s options.timeout = 10000 // 3. 增加小程序端请求头标识 options.header = { // 'source-client': 'mini', ...options.header, } // 4. 增加 token 请求头标识 const memberStore = useMemberStore() const token = memberStore.token if (token) { options.header.Authorization = token options.header.Token = token } }, } uni.addInterceptor('request', httpInterceptor) uni.addInterceptor('uploadFile', httpInterceptor) // 设置http请求 export const http = (options) => { return new Promise((resolve, reject) => { uni.request({ ...options, success(res) { console.log(res, 'res--') // 1. 判断是否请求成功 if (res.statusCode >= 200 && res.statusCode < 300) { if (res.data.code >= 200 && res.data.code < 300) { resolve(res.data) } else if (res.data.code === 401) { // 2. 401 表示token过期 去往登录页重新登录 uni.showToast({ icon: 'none', title: `${res.data.msg}`, }) const memberStore = useMemberStore() memberStore.clearUserInfo() memberStore.clearToken() uni.navigateTo({ url: '/pages/login/index', }) reject(res) } else if (res.data.code === 500) { uni.showToast({ icon: 'none', title: res?.data?.msg, }) reject(res) } } else if (res.statusCode === 401) { // 2. 401 表示token过期 去往登录页重新登录 // const memberStore = useMemberStore() // memberStore.clearUserInfo() // memberStore.clearToken() // uni.navigateTo({ // url: '/pages/login/index', // }) uni.$u.toast(res.data.message) reject(res) } else { // 3. 其他错误 uni.showToast({ icon: 'none', title: res?.data?.message || '请求失败,请切换网络后尝试', }) reject(res) } // console.log(res) }, fail(err) { uni.showToast({ icon: 'none', title: err?.message || '请求失败,请切换网络后尝试', }) console.log(err, '请求失败') reject(err) }, }) }) }