Ver Fonte

request

zhuangyunsheng há 1 ano atrás
pai
commit
d4ef1356f7
3 ficheiros alterados com 45 adições e 76 exclusões
  1. 10 38
      src/store/user.js
  2. 34 37
      src/utils/request.js
  3. 1 1
      src/views/system/log/index.vue

+ 10 - 38
src/store/user.js

@@ -25,44 +25,16 @@ export const useUserStore = defineStore(
                 }
                 return new Promise((resolve, reject) => {
                     login(data).then(res => {
-                        if (res.error_code == "400") {
-                            ElMessage({
-                                message: res.error_description,
-                                type: "warning"
-                            })
-                            reject("err")
-                        } else if (res.error_code == "204") {
-                            ElMessage({
-                                message: "由于您长时间未登录,请修改密码后登录!",
-                                type: "warning"
-                            })
-                            reject(204)
-                        } else if (res.error_code == "203") {
-                            ElMessage({
-                                message: "由于您长时间未登录,请校验手机号!",
-                                type: "warning"
-                            })
-                            reject(203)
-                        } else if (res.error_code == "500") {
-                            ElMessage({
-                                message: res.error_description,
-                                type: "warning"
-                            })
-                            reject("err")
-                        } else {
-                            setToken(res.access_token)
-                            setRefreshToken(res.refresh_token)
-                            this.userInfo = res.user
-                            this.token = res.access_token
-                            this.refreshToken = res.refresh_token
-                            this.menuList = res.menus
-                            this.permissions = getButtonPermiss([], res.menus)
-                            API.add("登录", "login_system")
-                            resolve()
-                        }
-                    }).catch(error => {
-                        reject(error)
-                    })
+                        setToken(res.access_token)
+                        setRefreshToken(res.refresh_token)
+                        this.userInfo = res.user
+                        this.token = res.access_token
+                        this.refreshToken = res.refresh_token
+                        this.menuList = res.menus
+                        this.permissions = getButtonPermiss([], res.menus)
+                        API.add("登录", "login_system")
+                        resolve()
+                    }).catch(error => reject(error.error_code))
                 })
             },
             //tips:获取信息(不需要实现持久化 刷新浏览器 重新调用接口获取最新的信息才是正确的处理方式)

+ 34 - 37
src/utils/request.js

@@ -1,58 +1,55 @@
-import axios from "axios"
-import { getConfig } from "@/config/config"
-import { getToken } from "@/utils/auth"
-import CryptoJS from "crypto-js"
-import { useUserStore } from "@/store/user.js"
+import axios from "axios";
+import { getConfig } from "@/config/config";
+import { getToken } from "@/utils/auth";
+import CryptoJS from "crypto-js";
+import { useUserStore } from "@/store/user";
 // 创建axios实例
 const request = axios.create({
     baseURL: getConfig("baseUrl"),
-    timeout: 60000
+    timeout: 1000
 })
 
 request.interceptors.request.use(
     config => {
-        if (getToken()) {
-            config.headers["qdport-Auth"] = "bearer " + getToken()
-        }
-        config.headers["Authorization"] = `Basic ${CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(`${getConfig("clientId")}:${getConfig("clientSecret")}`))}`
-        return config
+        if (getToken()) config.headers["qdport-Auth"] = "bearer " + getToken();
+        config.headers["Authorization"] = `Basic ${CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(`${getConfig("clientId")}:${getConfig("clientSecret")}`))}`;
+        return config;
     }, error => {
-        console.log(error)
-        return Promise.reject(error)
+        return Promise.reject(error);
     }
 )
 // 响应拦截器
 request.interceptors.response.use(
     response => {
-        const code = response.data.code || 200
-        if (code == 200) {
-            return response.data
-        } else {
-            ElMessage({ message: response.data.msg || response.data.error_description || "异常,请联系管理员", type: "error", duration: 5 * 1000 })
-            return Promise.reject("error")
+        const code = response.data.code || response.data.error_code || 200
+        if (code == 200) return response.data;
+        else {
+            if (response.data.error_code == 401) useUserStore().logOut().then(() => location.href = "/");
+            else ElMessage({ message: response.data.msg || response.data.error_description || "异常,请联系管理员", type: "error", duration: 5 * 1000 })
+
+            return Promise.reject(response.data);
         }
 
     }, error => {
-        let { message, response } = error
+        if (error.response) {
+            console.log('axios: response', error.response)
 
-        if (error.response.data.code == 401 || error.response.status == 401) {
-            ElMessageBox.confirm("登录状态已过期,请重新登录", "系统提示", { confirmButtonText: "重新登录", cancelButtonText: "取消", type: "warning" }).then(() => {
-                useUserStore().logOut().then(() => location.href = "/");
-            })
-        } else {
-            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) + "异常" + response.data.msg
-            }
-            if (process.env.NODE_ENV != "production") {
-                message = message + "==>" + response.config.url
+            if (error.response.data.code == 401 || error.response.status == 401) {
+                ElMessageBox.confirm("登录状态已过期,请重新登录", "系统提示", {
+                    type: "warning",
+                    showClose: false,
+                    closeOnPressEscape: false,
+                    closeOnClickModal: false,
+                    confirmButtonText: "重新登录",
+                    cancelButtonText: "取消"
+                }).then(() => useUserStore().logOut().then(() => location.href = "/"));
+            } else {
+                const message = error.response.data.msg || error.response.data || "异常,请联系管理员";
+                ElMessage.error({ message: `Status:${error.response.status},${message}`, duration: 5 * 1000 });
             }
-            ElMessage({ message: message || "异常,请联系管理员", type: "error", duration: 5 * 1000 })
-        }
-        return Promise.reject(error)
+        } else ElMessage.error({ message: "系统接口请求超时", duration: 5 * 1000 });
+
+        return Promise.reject(error.response || error);
     }
 )
 export default request

+ 1 - 1
src/views/system/log/index.vue

@@ -103,7 +103,7 @@ export default {
             }
                 
             this.reloadTable();
-        },
+        }
     }
 }
 </script>