From 5888e32fb99675ac64a4c25ee66d1909083b1c02 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期三, 20 十二月 2023 19:34:24 +0800
Subject: [PATCH] jwt为空时跳转至aps登录页

---
 src/views/supplierManage/supplier/index.vue                  |    1 
 src/common/untils/request.js                                 |   56 +++++++++++++++++++++++++---
 src/views/purchaseManage/purchase/components/AddPurchase.vue |    7 ++-
 src/components/layout/components/appsidebar/index.vue        |    8 ++++
 4 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/src/common/untils/request.js b/src/common/untils/request.js
index a69a0ae..3e507c4 100644
--- a/src/common/untils/request.js
+++ b/src/common/untils/request.js
@@ -2,11 +2,36 @@
 import { Message } from "element-ui"
 
 // import router from '@/router'
+// 寮�鍙戠幆澧冧笅灏嗚嚜宸辩殑token澶嶅埗鍒拌繖閲�, 涔熷彲浠ュ湪娴忚鍣ㄤ腑鎵嬪姩娣诲姞token鍒癱ookie涓�,cookie涓殑token浼樺厛
+const DEV_TOKEN =  ''
+function environmentType(){
+  let type
+  if (location.href.includes('192.168.20.119')) {
+      type = 'test'
+  } else if (location.href.includes('192.168') || location.href.includes('localhost')) {
+      type = 'dev'
+  } else {
+      type = 'prod'
+  }
+
+  return type
+}
+
+const isDev = environmentType() === 'dev'
 
 const Axios = axios.create({
   responseType: "json",
   withCredentials: true // 鏄惁鍏佽甯ookie杩欎簺
 })
+const getApsPage = () => {
+  // 棣栭〉閮ㄧ讲鍦ㄥ悇涓幆澧冪殑绔彛
+  const loginPathMap = {
+      prod:`//${window.location.hostname}:9080`,
+      test:`//192.168.20.119:9080`,
+      dev: `//192.168.8.107:8080`
+  }
+  return loginPathMap[environmentType()]
+}
 
 /* //POST浼犲弬搴忓垪鍖�(娣诲姞璇锋眰鎷︽埅鍣�) */
 Axios.interceptors.request.use(
@@ -20,6 +45,9 @@
       /(?:(?:^|.*;\s*)token\s*=\s*([^;]*).*$)|^.*$/,
       "$1",
     );
+    if (isDev){
+      token = token || DEV_TOKEN
+    }
     if (token) {
       config.headers.Authorization = "Bearer " + token;
     }
@@ -36,16 +64,32 @@
     /* //瀵瑰搷搴旀暟鎹仛浜涗簨 */
     if (res.data.code === 200) {
       return res.data ? res.data : {}
-    } else {
-      Message({
-        message: res.data.msg,
-        type: "error",
-        duration: 5 * 1000
-      })
+    } else if([2012,2013,2014,2015].includes(res.data.code)){
+      if (isDev){
+        alert("JWT澶辨晥,鍗冲皢璺宠浆鑷崇櫥褰曢〉..")
+        window.location = getApsPage()+'/login'
+      }else {
+        //   JWT閴存潈澶辨晥 璺宠浆鍒扮櫥褰曢〉
+        window.location = getApsPage()+'/login'
+      }
+      // Message({
+      //   message: res.data.msg,
+      //   type: "error",
+      //   duration: 5 * 1000
+      // })
       return Promise.reject(res.data)
     }
   },
   (error) => {
+    if(error.response.status === 401){
+      if (isDev){
+        alert("JWT澶辨晥,鍗冲皢璺宠浆鑷崇櫥褰曢〉..")
+        window.location = getApsPage()+'/login'
+      }else {
+        //   JWT閴存潈澶辨晥 璺宠浆鍒扮櫥褰曢〉
+        window.location = getApsPage()+'/login'
+      }
+    }
     let { message } = error
     if (message === "Network Error") {
       message = "鍚庣鎺ュ彛杩炴帴寮傚父"
diff --git a/src/components/layout/components/appsidebar/index.vue b/src/components/layout/components/appsidebar/index.vue
index 4eacae5..0087b25 100644
--- a/src/components/layout/components/appsidebar/index.vue
+++ b/src/components/layout/components/appsidebar/index.vue
@@ -25,6 +25,7 @@
         </el-submenu>
         
       </el-menu>
+      <el-empty v-if="this.menus===null||this.menus===undefined||this.menus.length===0" :image-size="130" description="娌℃湁渚ф爮鑿滃崟"></el-empty>
     </div>
   </div>
 </template>
@@ -61,4 +62,11 @@
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
 @import "./index.scss";
+::v-deep .el-empty{
+  .el-empty__description{
+    p{
+      color: #dddd;
+    }
+  }
+}
 </style>
diff --git a/src/views/purchaseManage/purchase/components/AddPurchase.vue b/src/views/purchaseManage/purchase/components/AddPurchase.vue
index f782552..066be0a 100644
--- a/src/views/purchaseManage/purchase/components/AddPurchase.vue
+++ b/src/views/purchaseManage/purchase/components/AddPurchase.vue
@@ -54,7 +54,7 @@
                   >
                     <el-option
                       v-for="ele in plcBrandList"
-                      :key="ele.name"
+                      :key="ele.purchaseTypeId"
                       :label="ele.name"
                       :value="ele.id"
                     ></el-option>
@@ -373,6 +373,7 @@
     }
   },
   created() {
+    console.log(this.editConfig,"鍙傛暟")
     this.handleGetBomKindDictList()
     this.$store.dispatch("getSupplier")
     this.formInfo()
@@ -446,13 +447,15 @@
         this.plcBrandList = res.data
         this.setTableForm()
         if (val) {
+          // this.plcBrandList.map((item)=>{
+          //   item.purchaseTypeId=item.id
+          // })
           for (let i in this.plcBrandList) {
             if (this.plcBrandList[i][this.editRow.isDefault]) {
               this.editConfig.infomation.purchaseTypeId = this.editConfig.infomation.purchaseTypeId
                 ? this.editConfig.infomation.purchaseTypeId
                 : this.plcBrandList[i].id
               this.$set(this.editConfig.infomation, "purchaseTypeId", this.editConfig.infomation.purchaseTypeId)
-
               break
             }
           }
diff --git a/src/views/supplierManage/supplier/index.vue b/src/views/supplierManage/supplier/index.vue
index 279bc87..c17d048 100644
--- a/src/views/supplierManage/supplier/index.vue
+++ b/src/views/supplierManage/supplier/index.vue
@@ -447,6 +447,7 @@
       this.editPurchaseConfig.title = "鏂板缓"
       this.editPurchaseConfig.infomation = {
         supplierId: this.selectRow.id,
+        purchaseTypeId:"2",
         supplierName: this.selectRow.name
       }
     }

--
Gitblit v1.8.0