Kaynağa Gözat

移动端,接口拦截错误码,跳转到错误页面

armg 1 hafta önce
ebeveyn
işleme
57eb065de1
3 değiştirilmiş dosya ile 67 ekleme ve 3 silme
  1. 6 0
      src/router/index.js
  2. 6 3
      src/utils/request.js
  3. 55 0
      src/views/home/error.vue

+ 6 - 0
src/router/index.js

@@ -87,6 +87,12 @@ const router = new VueRouter({
             title: '提示类-业务员预警门店页面',
           },
         },
+        {
+          path: "/error",
+          name: 'error',
+          meta: { title: '提示类-接口异常提示页面' },
+          component: () => import("../views/home/error.vue")
+        },
       ],
     },
     {

+ 6 - 3
src/utils/request.js

@@ -6,7 +6,7 @@ import axios from 'axios';
 import { Toast, Dialog } from 'vant';
 import errorCode from '@/utils/errorCode';
 import { toastLoading } from '@/utils/commonVant';
-
+import router from '../router';
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';
 const service = axios.create({
   baseURL: process.env.VUE_APP_BASE_API,
@@ -46,11 +46,14 @@ service.interceptors.response.use(
     } else if (code == -1) {
       // 图匠图片校验接口超时
       return res.data;
-    } else if (code !== 200) {
+    }else if(code === 502){
+      sessionStorage.setItem("errMsgInfo","当前系统正在进行升级优化,暂时无法访问,请稍后再试")
+      router.replace(`/error`);
+    }else if (code !== 200) {
       Toast({
         message: msg,
         duration: 5000,
-      });
+      })
     } else {
       return res.data;
     }

+ 55 - 0
src/views/home/error.vue

@@ -0,0 +1,55 @@
+<template>
+    <div>
+        <div class="error">
+            <div class="imgDiv">
+                <img src="@/assets/err.png" alt="" />
+                <div class="infoText">{{ errorMsg }}</div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    name: "error",
+    data() {
+        return {
+            errorMsg: "服务暂时无法响应,请稍后再试"
+        }
+    },
+    mounted() {
+        if (sessionStorage.getItem("errorMsgTit")) {
+            this.errorMsg = sessionStorage.getItem("errorMsgTit");
+        }
+    },
+    methods: {
+    }
+}
+
+</script>
+<style lang="scss" scoped>
+.error {
+    position: fixed;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    background-color: #fff;
+
+    .imgDiv {
+        text-align: center;
+        padding: 36px;
+
+        img {
+            width: 100px;
+            margin-bottom: 36px;
+        }
+
+        .infoText {
+            margin-bottom: 5px;
+            font-weight: 400;
+            font-size: 20px;
+            // text-align: left;
+        }
+    }
+}
+</style>