123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- import { message } from 'ant-design-vue'
- import axios from 'axios'
- import qs from 'qs'
- // import { useTokenStore } from './token'
- // const { token } = useTokenStore()
- localStorage.getItem('__prescription_client__token')
- export type ResponseData = Record<string | number | symbol, unknown>
- export type RequestParams = Record<string | number, unknown>
- export interface ApiResponse<T> {
- Code: Number
- Data: T
- Msg: string | null
- }
- // 定义 API 响应的类型
- const http = axios.create({
- // baseURL: , // 域名配置
- headers: {
- 'Content-Type': 'application/json;charset=UTF-8'
- },
- withCredentials: true, // 跨域携带cookie
- timeout: 5 * 60 * 1000,
- paramsSerializer: function (params) {
- return qs.stringify(params, { arrayFormat: 'repeat' })
- }
- })
- // 请求拦截器
- http.interceptors.request.use(
- (config) => {
- if (localStorage.getItem('__token__')) {
- config.headers.Authorization = `Bearer ${localStorage.getItem('__token__')}`
- }
- return config
- },
- (error) => {
- return Promise.reject(error)
- }
- )
- // 响应拦截器
- http.interceptors.response.use(
- (response): any => {
- const { status, data } = response
- if (status >= 200 && status < 300) {
- if (data.Code !== 200) {
- return Promise.reject(data.Msg)
- }
- return Promise.resolve(data)
- } else {
- errorHandle(status)
- Promise.reject(data.Msg)
- }
- },
- (error) => {
- errorHandle(error.status)
- return Promise.reject(error)
- }
- )
- function errorHandle(status: number) {
- switch (status) {
- case 400:
- // 处理错误信息,例如抛出错误信息提示,或者跳转页面等处理方式。
- // return Promise.resolve(error)
- break
- case 401:
- //
- break
- case 403:
- // $post(`/api/update/token`, {
- // RefreshToken: token!.RefreshToken
- // })
- // .then(el => )
- localStorage.getItem('__prescription_client__token')
- break
- case 404:
- //
- break
- // ...
- default:
- throw new Error('未知错误')
- }
- }
- /**
- * @name get请求
- * @param url
- * @param param
- * @param config
- * @returns
- */
- export const $get = <T>(url: string, data: RequestParams = {}, config = {}): Promise<ApiResponse<T>> => {
- return new Promise((resolve) => {
- http
- .get<Promise<ApiResponse<T>>>(url, { params: data, ...config })
- .then((res: any) => {
- resolve(res)
- })
- .catch((error) => message.error(error))
- })
- }
- /**
- * @name post请求
- * @param url
- * @param param
- * @param config
- * @returns
- */
- export const $post = <T>(url: string, data: RequestParams = {}, config = {}): Promise<ApiResponse<T>> => {
- return new Promise((resolve) => {
- http
- .post<Promise<ApiResponse<T>>>(url, data, config)
- .then((res: any) => {
- resolve(res)
- })
- .catch((error) => message.error(error))
- })
- }
- /**
- * @name put请求
- * @param url
- * @param param
- * @param config
- * @returns
- */
- export const $put = <T>(url: string, data: RequestParams = {}, config = {}): Promise<ApiResponse<T>> => {
- return new Promise((resolve) => {
- http
- .put<Promise<ApiResponse<T>>>(url, data, config)
- .then((res: any) => {
- resolve(res)
- })
- .catch((error) => message.error(error))
- })
- }
- /**
- * @name delete请求
- * @param url
- * @param param
- * @param config
- * @returns
- */
- export const $delete = <T>(url: string, data: RequestParams = {}, config = {}): Promise<ApiResponse<T>> => {
- return new Promise((resolve) => {
- http
- .delete<Promise<ApiResponse<T>>>(url, { params: data, ...config })
- .then((res: any) => {
- resolve(res)
- })
- .catch((error) => message.error(error))
- })
- }
|