123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- import axios from 'axios'
- import {ElMessage, ElMessageBox} from 'element-plus'
- import router from '@/router'
- import store from '@/store'
- import {startLoading, endLoading} from './loading'
- import {CyMessageBox} from "@/components/cy/message-box";
- let loginBox = null
- let popUps = null
- const createAPopup = (message = '错误信息') => {
- if (popUps !== null) {
- return
- }
- popUps = ElMessageBox.alert(message, '提示', {
- type: "error",
- }).finally(() => {
- popUps = null
- })
- }
- const service = axios.create({
- baseURL: import.meta.env.VITE_BASE_URL,
- withCredentials: true,
- timeout: 0,
- showLoading: true
- })
- /*axios请求拦截*/
- service.interceptors.request.use(
- (config) => {
- if (typeof config.jdtTitle !== 'undefined') {
- store.commit('app/setJdt', {title: config.jdtTitle, isOpen: true, closeButton: false})
- } else {
- if (config.url !== '/caseFrontSheet/printVerify' && !config.url.startsWith('/mixLabelPrint')) {
- if (config.showLoading) {
- startLoading()
- }
- }
- }
- if (store.getters['user/token']) {
- config.headers['token'] = store.state.user.token
- }
- return config
- },
- (error) => {
- endLoading()
- store.commit('app/closeButton', true)
- return Promise.reject(error)
- }
- )
- service.interceptors.response.use(
- (response) => {
- endLoading()
- store.commit('app/closeButton', true)
- if (response.data.code === 200 || response.data.code === 0) {
- return response.data.data
- }
- if (response.data.code === 2002) {
- return response.data
- }
- if (response.data.code === 201) {
- ElMessage({
- type: 'success',
- title: '成功',
- duration: 2800,
- dangerouslyUseHTMLString: true,
- message: response.data.message,
- showClose: true,
- })
- return response.data.data
- }
- if (response.data.code === 202) {
- CyMessageBox.alert({
- type: "success",
- message: response.data.message,
- dangerouslyUseHTMLString: true,
- }).then(() => {
- }).catch(() => {
- })
- response.data.data
- }
- if (response.data.code > 1000 && response.data.code < 2000) {
- ElMessage({
- type: 'error',
- message: response.data.message,
- duration: 3000,
- showClose: true,
- grouping: true,
- })
- } else if (response.data.code > 2000 && response.data.code < 3000) {
- if (response.data.code === 2003) {
- ElMessageBox.alert(response.data.message, '提示', {
- type: 'error',
- dangerouslyUseHTMLString: true,
- confirmButtonText: '确定',
- }).then(() => {
- })
- } else {
- ElMessageBox.alert(response.data.message, '提示', {
- type: 'error',
- confirmButtonText: '确定',
- }).then(() => {
- })
- }
- } else if (response.data.code > 3000 && response.data.code < 4000) {
- if (loginBox === null) {
- loginBox = ElMessageBox.alert(response.data.message, '提示', {
- type: 'warning',
- confirmButtonText: '确定',
- showClose: false,
- }).then(async () => {
- loginBox = null
- await router.push('/login')
- })
- }
- } else if (response.data.code === 5001) {
- createAPopup(response.data.message)
- }
- if (response.data.code === 6001) {
- ElMessage({
- message: response.data.message,
- type: 'error',
- duration: 2500,
- showClose: true,
- grouping: true,
- })
- return {
- error: true,
- data: response.data.data
- }
- } else if (response.data.code === 6002) {
- ElMessageBox.alert(response.data.message, '提示', {
- type: 'error',
- confirmButtonText: '确定',
- }).then(() => {
- })
- return Promise.reject(response.data.data)
- }
- if (response.data.code > 7000 && response.data.code < 8000) {
- ElMessageBox.alert(response.data.message, '提示', {
- type: 'error',
- confirmButtonText: '确定',
- }).then(() => {
- })
- return Promise.reject(response.data)
- }
- if (response.data.data) {
- return Promise.reject(response.data)
- }
- return Promise.reject(response.data.message || '服务器内部错误')
- },
- (error) => {
- endLoading()
- // 取消请求,不显示 message
- if (error.code && error.code === 'ERR_CANCELED') {
- store.commit('app/setJdt', {title: '', isOpen: false, closeButton: true})
- return Promise.reject(error)
- }
- ElMessage({
- message: error,
- type: 'error',
- duration: 2500,
- showClose: true,
- grouping: true,
- })
- store.commit('app/setJdt', {title: '', isOpen: false, closeButton: true})
- return Promise.reject(error)
- }
- )
- export default service
|