From 059f2a762ac88bb7ec20454a455b4ed2d43877b3 Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期四, 18 七月 2024 21:56:50 +0800
Subject: [PATCH] feat:实现srm与aps共用token

---
 .env.development                                     |    8 ++++
 src/common/untils/request.js                         |    6 +-
 vue.config.js                                        |    9 ++--
 .env.preview                                         |   12 ++++++
 src/components/layout/components/appHeader/index.vue |   11 +++--
 .env                                                 |   18 +++++++++
 src/.env.development                                 |    2 +
 src/common/untils/index.js                           |   49 ++++++++++++++++++++++++
 8 files changed, 104 insertions(+), 11 deletions(-)

diff --git a/.env b/.env
new file mode 100644
index 0000000..bd7fd8a
--- /dev/null
+++ b/.env
@@ -0,0 +1,18 @@
+# 鎵�鏈夌幆澧冮粯璁�
+
+# 椤甸潰 title 鍓嶇紑
+VUE_APP_TITLE=Basic
+NODE_ENV=development
+VUE_APP_BATH_PATH='http://192.168.20.119:9084'
+# 缃戠粶璇锋眰鍏敤鍦板潃
+VUE_APP_API=/api/
+
+# 浠撳簱鍦板潃
+VUE_APP_REPO=""
+
+# 鍥介檯鍖栭厤缃�
+VUE_APP_I18N_LOCALE=zh-chs
+VUE_APP_I18N_FALLBACK_LOCALE=en
+
+# element 棰滆壊
+VUE_APP_ELEMENT_COLOR=#2A78FB
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..174ce30
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,8 @@
+# 寮�鍙戠幆澧�
+# 鎸囧畾鏋勫缓妯″紡
+NODE_ENV=development
+
+# 椤甸潰 title 鍓嶇紑
+VUE_APP_TITLE=Basic
+VUE_APP_BATH_PATH='http://192.168.20.119:9084'
+
diff --git a/.env.preview b/.env.preview
new file mode 100644
index 0000000..6d2aea2
--- /dev/null
+++ b/.env.preview
@@ -0,0 +1,12 @@
+# 鏋勫缓棰勮椤甸潰
+
+# 鎸囧畾鏋勫缓妯″紡
+NODE_ENV=production
+
+# 鏍囪褰撳墠鏋勫缓鏂瑰紡
+VUE_APP_BUILD_MODE=PREVIEW
+VUE_APP_BATH_PATH='http://www.fai365.com:9084
+VUE_APP_SCOURCE_LINK=TRUE
+
+# 閮ㄧ讲璺緞
+VUE_APP_PUBLIC_PATH=/
diff --git a/src/.env.development b/src/.env.development
index 174ce30..e2d8944 100644
--- a/src/.env.development
+++ b/src/.env.development
@@ -5,4 +5,6 @@
 # 椤甸潰 title 鍓嶇紑
 VUE_APP_TITLE=Basic
 VUE_APP_BATH_PATH='http://192.168.20.119:9084'
+# aps鏈湴绔彛鍙�
+VUE_APP_APS_PORT=9080
 
diff --git a/src/common/untils/index.js b/src/common/untils/index.js
new file mode 100644
index 0000000..971eac9
--- /dev/null
+++ b/src/common/untils/index.js
@@ -0,0 +1,49 @@
+import router from '@/router';
+export const getPortFromUrl=(url) =>{
+    try {
+        const portPattern = /:\d+/;
+        const urlObj = new URL(url);
+        const portMatch = portPattern.exec(urlObj.host)[0].slice(1); // 鍘绘帀鍐掑彿
+        return parseInt(portMatch, 10); // 杞崲涓烘暣鏁�
+    } catch (error) {
+        console.error(error.message);
+        return null;
+    }
+};
+export const doHostName=(hostname)=>{
+    /* if(hostname.includes('localhost')){
+         return hostname;
+     }*/
+    return hostname.substring(hostname.indexOf(".")+1);
+};
+export const getApsPage = () => {
+    // 棣栭〉閮ㄧ讲鍦ㄥ悇涓幆澧冪殑绔彛
+    /* const loginPathMap = {
+       prod:`//${window.location.hostname}:9080`,
+       test:`//192.168.20.119:9080`,
+       // 鎯宠烦鍒版湰鍦板惎鍔ㄧ殑鐧诲綍椤电殑璇濋渶瑕佹妸dev鏀规垚浣犳湰鍦伴」鐩矾寰�
+       dev: `//192.168.8.112:8080`
+     };*/
+    //return loginPathMap[environmentType()]
+    let port=getPortFromUrl(window.location.href);//鑾峰緱绔彛鍙�
+    let hostname=window.location.hostname;// 涓�绾у煙鍚�
+    if(hostname.includes('fai365.com')||hostname.includes('smartai.com')||hostname.includes('navicat.com')) {// 浠h〃瀛樺湪鍩熷悕
+        hostname='aps.'+doHostName(hostname);
+    }
+    if(hostname.includes('localhost')){
+        port=process.env.VUE_APP_APS_PORT;//绔彛鍙蜂笌 .env.development 涓� VUE_APP_APS_PORT 璺熸湰鍦癮ps椤圭洰鐨勭鍙e彿淇濇寔涓�鑷�
+    }
+    if(router.mode==='history'){
+        if(port){
+            return `${hostname}:${port}`;
+        }else{
+            return `${hostname}`;
+        }
+    }else{
+        if(port){
+            return `${hostname}:${port}`+'/#';
+        }else{
+            return `${hostname}`+'/#';
+        }
+    }
+};
\ No newline at end of file
diff --git a/src/common/untils/request.js b/src/common/untils/request.js
index ed39ab8..db1b3ec 100644
--- a/src/common/untils/request.js
+++ b/src/common/untils/request.js
@@ -1,6 +1,6 @@
 import axios from "axios"
 import { Message } from "element-ui"
-
+import {getApsPage} from './index.js';
 // import router from '@/router'
 // 寮�鍙戠幆澧冧笅灏嗚嚜宸辩殑token澶嶅埗鍒拌繖閲�, 涔熷彲浠ュ湪娴忚鍣ㄤ腑鎵嬪姩娣诲姞token鍒癱ookie涓�,cookie涓殑token浼樺厛
 const DEV_TOKEN =  ''
@@ -23,7 +23,7 @@
   responseType: "json",
   withCredentials: true // 鏄惁鍏佽甯ookie杩欎簺
 })
-const getApsPage = () => {
+/*const getApsPage = () => {
   // 棣栭〉閮ㄧ讲鍦ㄥ悇涓幆澧冪殑绔彛
   const loginPathMap = {
       prod:`//${window.location.hostname}:9080`,
@@ -31,7 +31,7 @@
       dev: `//192.168.8.117:8080`
   }
   return loginPathMap[environmentType()]
-}
+}*/
 
 /* //POST浼犲弬搴忓垪鍖�(娣诲姞璇锋眰鎷︽埅鍣�) */
 Axios.interceptors.request.use(
diff --git a/src/components/layout/components/appHeader/index.vue b/src/components/layout/components/appHeader/index.vue
index e2e8b75..0095e5f 100644
--- a/src/components/layout/components/appHeader/index.vue
+++ b/src/components/layout/components/appHeader/index.vue
@@ -22,6 +22,7 @@
 <script>
 import Cookies from "js-cookie"
 import UpdatePassWord from "./components/updatePassWord"
+import {getApsPage} from '@/common/untils/index.js'
 export default {
   name: "SalesLead",
   props: {
@@ -65,7 +66,7 @@
 
       return type
     },
-    getApsPage() {
+   /* getApsPage() {
       // 棣栭〉閮ㄧ讲鍦ㄥ悇涓幆澧冪殑绔彛
       const loginPathMap = {
         prod: `//${window.location.hostname}:9080`,
@@ -74,9 +75,8 @@
         dev: `//192.168.8.117:8080`
       }
       return loginPathMap[this.environmentType()]
-    },
+    },*/
     handleCommand(command) {
-      console.log(command)
       if (command === "logout") {
         // this.$router.push({ path: "/login" })
         document.cookie = "cookieName=; path=/;"
@@ -88,11 +88,14 @@
           .then(() => {
             Cookies.remove("token")
             // window.location.href = 'http://localhost:8080/login'; //鏈湴鐨勬櫤鎱у伐鍘�-鐧诲綍椤�
-            window.location.href = "http:" + this.getApsPage() + "/login"
+            //window.location.href = "http:" + this.getApsPage() + "/login"
             this.$message({
               type: "success",
               message: "娉ㄩ攢鎴愬姛!"
             })
+              setTimeout(()=>{
+                  window.open(`//${getApsPage()}/login`);
+              },500);
           })
           .catch(() => {
             this.$message({
diff --git a/vue.config.js b/vue.config.js
index db22398..decc78e 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -4,7 +4,8 @@
 function resolve(dir) {
   return path.join(__dirname, dir)
 }
-
+const ipNum=144;
+const serverPath=`http://192.168.0.${ipNum}:8001`;
 // 璁剧疆涓嶅弬涓庢瀯寤虹殑搴�
 const externals = {}
 module.exports = {
@@ -14,7 +15,7 @@
   devServer: {
     proxy: {
       "/api/menu":{
-        target:"http://192.168.20.119:8001",
+        target:serverPath,
         ws: true,
         changeOrigin: true
       },
@@ -23,12 +24,12 @@
         // target: "http://192.168.20.118:8889", // http://192.168.20.119:8002 http://fai365.com:30150/
         // target: "http://192.168.20.120:8004", 
         // target: "http://192.168.20.119:8004", // http://192.168.20.119:8004 http://fai365.com:30150/
-        target: "http://192.168.20.119:8004", // http://192.168.20.119:8004 http://fai365.com:30150/
+        target: `http://192.168.0.${ipNum}:8004`, // http://192.168.20.119:8004 http://fai365.com:30150/
         ws: true,
         changeOrigin: true
       },
       "/api":{
-        target:"http://192.168.20.119:8001",
+        target:serverPath,
         ws: true,
         changeOrigin: true
       },

--
Gitblit v1.8.0