| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- import useUserStore from '@/store/modules/user'
- import { ApiInstance } from './type'
- import axios from 'axios'
- // import qs from 'qs'
- import Message from 'vue-m-message'
- // 导入 API 模块
- import appApi from './modules/app'
- import userApi from './modules/user'
- import roleApi from './modules/role'
- import institutionApi from './modules/institution'
- import areaApi from "./modules/area"
- import operationApi from './modules/operation.ts'
- import menuApi from './modules/menu.ts'
- import commonApi from "./modules/common.ts";
- import teamApi from "@/api/modules/team.ts";
- import representativeApi from "@/api/modules/representative.ts";
- import contentApi from "@/api/modules/content.ts";
- // import { useRouter } from 'vue-router'
- // const router = useRouter()
- import router from "@/router"
- import lotteryApi from '@/api/modules/lottery.ts';
- const axiosInstance:ApiInstance = axios.create({
- baseURL: (import.meta.env.DEV && import.meta.env.VITE_OPEN_PROXY === 'true') ? '/proxy/' : import.meta.env.VITE_APP_API_BASEURL,
- timeout: 1000 * 60,
- responseType: 'json',
- })
- axiosInstance.interceptors.request.use(
- (request) => {
- // 全局拦截请求发送前提交的参数
- const userStore = useUserStore()
- // 设置请求头
- if (request.headers) {
- if (userStore.isLogin) {
- request.headers.Authorization = userStore.token
- }
- }
- // 是否将 POST 请求参数进行字符串化处理
- if (request.method === 'post') {
- // request.data = qs.stringify(request.data, {
- // arrayFormat: 'brackets',
- // })
- }
- return request
- },
- )
- axiosInstance.interceptors.response.use(
- (response) => {
- /**
- * 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示
- * 假设返回数据格式为:{ status: 1, error: '', data: '' }
- * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录
- * 请求出错时 error 会返回错误信息
- */
- if (response.data.code === 500) {
- if (response.data.msg !== '') {
- // 错误提示
- Message.error(response.data.msg, {
- zIndex: 2000,
- })
- return Promise.resolve(response.data)
- }
- }
- else {
- if (response.data.code === 401) {
- // console.log(router)
- localStorage.setItem("token",'')
- // router.push({
- // path:"/login"
- // })
- // console.log(localStorage.getItem('token'))
- Message({
- message: '登录信息已过期,请重新登录!!!',
- type: 'error',
- duration: 2000,
- })
- // useUserStore().logout()
- }
- // useUserStore().logout()
- }
- return Promise.resolve(response.data)
- },
- (error) => {
- let message = error.message
- if (message === 'Network Error') {
- message = '后端网络故障'
- }
- else if (message.includes('timeout')) {
- message = '接口请求超时'
- }
- else if (message.includes('Request failed with status code')) {
- message = `接口${message.substr(message.length - 3)}异常`
- }
- Message.error(message, {
- zIndex: 2000,
- })
- return Promise.reject(error)
- },
- )
- // API 模块
- const api = {
- appApi: appApi(axiosInstance),
- userApi: userApi(axiosInstance),
- roleApi: roleApi(axiosInstance),
- institutionApi:institutionApi(axiosInstance),
- areaApi:areaApi(axiosInstance),
- operationApi: operationApi(axiosInstance),
- menuApi:menuApi(axiosInstance),
- commonApi: commonApi(axiosInstance),
- teamApi: teamApi(axiosInstance),
- representativeApi: representativeApi(axiosInstance),
- lotteryApi: lotteryApi(axiosInstance),
- contentApi:contentApi(axiosInstance)
- }
- export default api
|