ソースを参照

全局异常状态汉化拦截处理

RuoYi 4 年 前
コミット
97ebab0c67
1 ファイル変更18 行追加5 行削除
  1. 18 5
      ruoyi-ui/src/utils/request.js

+ 18 - 5
ruoyi-ui/src/utils/request.js

@@ -16,6 +16,7 @@ const service = axios.create({
 
 // request拦截器
 service.interceptors.request.use(config => {
+  // 是否需要设置 token
   const isToken = (config.headers || {}).isToken === false
   if (getToken() && !isToken) {
     config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
@@ -28,8 +29,10 @@ service.interceptors.request.use(config => {
 
 // 响应拦截器
 service.interceptors.response.use(res => {
+    // 未设置状态码则默认成功状态
     const code = res.data.code || 200;
-    const message = errorCode[code] || res.data.msg || errorCode['default']
+    // 获取错误信息
+    const msg = errorCode[code] || res.data.msg || errorCode['default']
     if (code === 401) {
       MessageBox.confirm(
         '登录状态已过期,您可以继续留在该页面,或者重新登录',
@@ -46,13 +49,13 @@ service.interceptors.response.use(res => {
       })
     } else if (code === 500) {
       Message({
-        message: message,
+        message: msg,
         type: 'error'
       })
-      return Promise.reject(new Error(message))
+      return Promise.reject(new Error(msg))
     } else if (code !== 200) {
       Notification.error({
-        title: message
+        title: msg
       })
       return Promise.reject('error')
     } else {
@@ -61,8 +64,18 @@ service.interceptors.response.use(res => {
   },
   error => {
     console.log('err' + error)
+    let { message } = error;
+    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({
-      message: error.message,
+      message: message,
       type: 'error',
       duration: 5 * 1000
     })