| New file |
| | |
| | | import Request from "uview-plus/libs/luch-request/index" |
| | | import configEnv from "@/config/env.js"; |
| | | import {getEnvObj} from "@/utils/index.js"; |
| | | |
| | | const http = new Request() |
| | | |
| | | export function request (config) { |
| | | return new Promise((resolve, reject) => { |
| | | http |
| | | .request(config) |
| | | .then(res => { |
| | | resolve(res) |
| | | }) |
| | | .catch(err => { |
| | | reject(err) |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | |
| | | // 请求拦截器 |
| | | function requestInterceptors(http) { |
| | | |
| | | http.interceptors.request.use((config) => { |
| | | const {detail} = useUserStore().$state?.userInfo || {} |
| | | // 假设有token值需要在头部需要携带 |
| | | let accessToken = useUserStore()?.$state?.userInfo?.access_token; |
| | | if (accessToken) { |
| | | // config.header['Blade-Auth'] = 'bearer ' + accessToken; |
| | | config.header['authorization'] = accessToken; |
| | | } |
| | | // if (detail?.areaCode) { |
| | | // config.header['areaCode'] = detail.areaCode |
| | | // } |
| | | // 安全请求header |
| | | // config.header['Blade-Requested-With'] = 'BladeHttpRequest'; |
| | | // 客户端认证参数 |
| | | // config.header['Authorization'] = 'Basic ' + Base64.encode(website.clientId + ':' + website.clientSecret); |
| | | return config |
| | | }, config => { // 可使用async await 做异步操作 |
| | | return Promise.reject(config) |
| | | }) |
| | | } |
| | | |
| | | function responseInterceptors(http) { |
| | | http.interceptors.response.use((response) => { |
| | | let res = response |
| | | const status = res.data.error_code || res.data.code || res.statusCode |
| | | const message = res?.data?.msg || res?.data?.error_description || res?.data?.message || '系统错误' |
| | | if (status !== 200) { |
| | | uni.showToast({title: message, icon: 'none'}); |
| | | return Promise.reject(response); |
| | | } |
| | | return response; |
| | | }, (response) => { |
| | | let res = response |
| | | const message = res?.data?.msg || res?.data?.error_description || res?.data?.message || '系统错误' |
| | | /* 对响应错误做点什么 (statusCode !== 200)*/ |
| | | uni.showToast({title: message, icon: 'none'}); |
| | | if (response.statusCode === 401) { |
| | | const pages = getCurrentPages() |
| | | const currentPage = pages[pages.length - 1] |
| | | uni.reLaunch({ |
| | | url: `/pages/login/index?redirect=/${currentPage.route}` |
| | | }) |
| | | } |
| | | return Promise.reject(response) |
| | | }) |
| | | } |
| | | |
| | | // 引入拦截器配置 |
| | | export function setupRequest () { |
| | | http.setConfig(defaultConfig => { |
| | | /* defaultConfig 为默认全局配置 */ |
| | | defaultConfig.baseURL = getEnvObj().VITE_API_BASE_URL |
| | | // #ifdef H5 |
| | | if (import.meta.env.VITE_APP_PROXY === "true") { |
| | | defaultConfig.baseURL = import.meta.env.VITE_API_PREFIX |
| | | } |
| | | // #endif |
| | | return defaultConfig |
| | | }) |
| | | requestInterceptors(http) |
| | | responseInterceptors(http) |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | export function get (url, config) { |
| | | return request({ ...config, url, method: "GET" }) |
| | | } |
| | | |
| | | export function post (url, config) { |
| | | return request({ ...config, url, method: "POST" }) |
| | | } |
| | | |
| | | export function upload (url, config) { |
| | | return request({ ...config, url, method: "UPLOAD" }) |
| | | } |
| | | |
| | | export function download (url, config) { |
| | | return request({ ...config, url, method: "DOWNLOAD" }) |
| | | } |
| | | |
| | | export default setupRequest |