a8915516 by weimo934

fix(mjft):添加响应弹框

1 parent e3425357
...@@ -64,4 +64,3 @@ export const httpStatus = (() => { ...@@ -64,4 +64,3 @@ export const httpStatus = (() => {
64 } 64 }
65 return status 65 return status
66 })() 66 })()
67
...\ No newline at end of file ...\ No newline at end of file
......
1 import store from '../../store/index' 1 import store from '../../store/index'
2 import axios from 'axios' 2 import axios from 'axios'
3 import router from '../../router' 3 import router from '../../router'
4 import { Message, MessageBox } from 'element-ui' 4 import {Message, MessageBox} from 'element-ui'
5 import { httpStatus } from '@/api/config' 5 import {httpStatus} from '@/api/config'
6 6
7 // 创建一个 axios 实例 7 // 创建一个 axios 实例
8 let BASE_URL = "/api"; 8 let BASE_URL = "/api";
9 const CONTENT_TYPE = "application/json"; 9 const CONTENT_TYPE = "application/json";
10 const service = axios.create({ 10 const service = axios.create({
11 baseURL: BASE_URL, 11 baseURL: BASE_URL,
12 headers: { 12 headers: {
13 "content-type": CONTENT_TYPE, 13 "content-type": CONTENT_TYPE,
14 }, 14 },
15 timeout: 5000 // 请求超时时间 15 timeout: 5000 // 请求超时时间
16 }) 16 })
17
17 function errorLog() { 18 function errorLog() {
18 MessageBox.alert('报错了请联系管理员', '消息提示', { 19 MessageBox.alert('报错了请联系管理员', '消息提示', {
19 confirmButtonText: '确定', 20 confirmButtonText: '确定',
20 type: 'warning' 21 type: 'warning'
21 }) 22 })
22 } 23 }
24
23 // 请求拦截器 25 // 请求拦截器
24 service.interceptors.request.use( 26 service.interceptors.request.use(
25 config => { 27 config => {
26 // 在请求发送之前做一些处理 28 // 在请求发送之前做一些处理
27 // const token = util.cookies.get('token') 29 // const token = util.cookies.get('token')
28 // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改 30 // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改
29 // config.headers['authkey'] = token 31 // config.headers['authkey'] = token
30 return config 32 return config
31 }, 33 },
32 error => { 34 error => {
33 // 发送失败 35 // 发送失败
34 Promise.reject(error) 36 Promise.reject(error)
35 } 37 }
36 ) 38 )
37 39
38 // 响应拦截器 40 // 响应拦截器
39 service.interceptors.response.use( 41 service.interceptors.response.use(
40 response => { 42 response => {
41 // dataAxios 是 axios 返回数据中的 data 43 // dataAxios 是 axios 返回数据中的 data
42 const dataAxios = response.data 44 const dataAxios = response.data
43 const { code } = dataAxios 45 const {code} = dataAxios
44 // 根据 code 进行判断 46 // 根据 code 进行判断
45 if (code === undefined) { 47 if (code === undefined) {
46 // 如果没有 code 代表这不是项目后端开发的接口 比如可能是 D2Admin 请求最新版本 48 // 如果没有 code 代表这不是项目后端开发的接口 比如可能是 D2Admin 请求最新版本
47 return dataAxios 49 return dataAxios
48 } else { 50 } else {
49 // 有 code 代表这是一个后端接口 可以进行进一步的判断 51 // 有 code 代表这是一个后端接口 可以进行进一步的判断
50 switch (code) { 52 switch (code) {
51 // code === 200 代表没有错误 53 // code === 200 代表没有错误
52 case httpStatus.OK.code: 54 case httpStatus.OK.code:
53 return dataAxios 55 return dataAxios
54 // code === 11001 56 // code === 11001
55 case httpStatus.LOGIN_FAILURE.code: 57 case httpStatus.LOGIN_FAILURE.code:
56 router.replace({ 58 router.replace({
57 path: '/login', 59 path: '/login',
58 query: { redirect: router.currentRoute.fullPath } 60 query: {redirect: router.currentRoute.fullPath}
59 }) 61 })
60 util.cookies.remove('token') 62 util.cookies.remove('token')
61 Message({ 63 Message({
62 message: '登录超时,请重新登录', 64 message: '登录超时,请重新登录',
63 type: 'error' 65 type: 'error'
64 }); 66 });
65 break 67 break
66 default: 68 default:
67 break 69 return dataAxios;
68 } 70 }
69 } 71 }
70 }, 72 },
71 error => { 73 error => {
72 if (error && error.response) { 74 if (error && error.response) {
73 switch (error.response.status) { 75 switch (error.response.status) {
74 case 400: error.message = '请求错误'; break 76 case 400:
75 case 401: error.message = '未授权,请登录'; break 77 error.message = '请求错误';
76 case 403: error.message = '拒绝访问'; break 78 break
77 case 404: error.message = `请求地址出错: ${error.response.config.url}`; break 79 case 401:
78 case 408: error.message = '请求超时'; break 80 error.message = '未授权,请登录';
79 case 500: errorLog() 81 break
80 case 501: error.message = '服务未实现'; break 82 case 403:
81 case 502: error.message = '网关错误'; break 83 error.message = '拒绝访问';
82 case 503: error.message = '服务不可用'; break 84 break
83 case 504: error.message = '网关超时'; break 85 case 404:
84 case 505: error.message = 'HTTP版本不受支持'; break 86 error.message = `请求地址出错: ${error.response.config.url}`;
85 default: break 87 break
86 } 88 case 408:
89 error.message = '请求超时';
90 break
91 case 500:
92 errorLog()
93 case 501:
94 error.message = '服务未实现';
95 break
96 case 502:
97 error.message = '网关错误';
98 break
99 case 503:
100 error.message = '服务不可用';
101 break
102 case 504:
103 error.message = '网关超时';
104 break
105 case 505:
106 error.message = 'HTTP版本不受支持';
107 break
108 default:
109 break
110 }
111 }
112 return Promise.reject(error)
87 } 113 }
88 return Promise.reject(error)
89 }
90 ) 114 )
91 115
92 export default service 116 export default service
......