From dbab45ef6e56c32ca3b2d286ec5cb7ed0c86bfea Mon Sep 17 00:00:00 2001 From: charles <981744753@qq.com> Date: 星期四, 18 七月 2024 21:57:21 +0800 Subject: [PATCH] feat:实现crm与aps共用token --- .env.development | 2 + src/common/untils/request.js | 8 ++-- vue.config.js | 6 +- src/components/layout/components/appHeader/index.vue | 11 +++-- src/common/untils/index.js | 49 ++++++++++++++++++++++++ 5 files changed, 65 insertions(+), 11 deletions(-) diff --git a/.env.development b/.env.development index 9073ccc..78d34fe 100644 --- a/.env.development +++ b/.env.development @@ -5,4 +5,6 @@ # 椤甸潰 title 鍓嶇紑 VUE_APP_TITLE=Basic VUE_APP_BATH_PATH='http://192.168.20.119:9083' +# 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 7bfc4d3..66335ef 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浼樺厛 @@ -27,7 +27,7 @@ withCredentials: true // 鏄惁鍏佽甯ookie杩欎簺 }) -const getApsPage = () => { +/*const getApsPage = () => { // 棣栭〉閮ㄧ讲鍦ㄥ悇涓幆澧冪殑绔彛 const loginPathMap = { prod:`//${window.location.hostname}:9080`, @@ -37,7 +37,7 @@ } return loginPathMap[environmentType()] -} +}*/ /* //POST浼犲弬搴忓垪鍖�(娣诲姞璇锋眰鎷︽埅鍣�) */ Axios.interceptors.request.use( @@ -74,7 +74,7 @@ return res } else if([2012,2013,2014,2015].includes(res.data.code)){ if (isDev){ - alert("JWT澶辨晥,鍗冲皢璺宠浆鑷崇櫥褰曢〉..") + // alert("JWT澶辨晥,鍗冲皢璺宠浆鑷崇櫥褰曢〉..") window.location = getApsPage()+'/login' }else { // JWT閴存潈澶辨晥 璺宠浆鍒扮櫥褰曢〉 diff --git a/src/components/layout/components/appHeader/index.vue b/src/components/layout/components/appHeader/index.vue index 389d527..d16d43e 100644 --- a/src/components/layout/components/appHeader/index.vue +++ b/src/components/layout/components/appHeader/index.vue @@ -21,6 +21,7 @@ <script> import Cookies from "js-cookie" import UpdatePassWord from "./components/updatePassWord" +import {getApsPage} from '@/common/untils/index.js' export default { name: "SalesLeads", props: { @@ -67,7 +68,7 @@ return type }, - getApsPage() { + /*getApsPage() { // 棣栭〉閮ㄧ讲鍦ㄥ悇涓幆澧冪殑绔彛 const loginPathMap = { prod: `//${window.location.hostname}:9080`, @@ -76,7 +77,7 @@ dev: `//192.168.8.113:8080` } return loginPathMap[this.environmentType()] - }, + },*/ handleCommand(command) { if (command === "logout") { // this.$router.push({ path: "/login" }) @@ -89,11 +90,13 @@ .then(() => { Cookies.remove("token") // window.location.href = 'http://localhost:8080/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 d13a119..3c48f24 100644 --- a/vue.config.js +++ b/vue.config.js @@ -4,7 +4,7 @@ function resolve(dir) { return path.join(__dirname, dir) } - +const ipNum=144; // 璁剧疆涓嶅弬涓庢瀯寤虹殑搴� const externals = {} module.exports = { @@ -14,14 +14,14 @@ devServer: { proxy: { "/api/menu":{ - target: "http://192.168.20.119:8001", // http://192.168.20.119:8002 http://fai365.com:30150/ + target: `http://192.168.0.${ipNum}:8001`, // http://192.168.20.119:8002 http://fai365.com:30150/ // 寤洪亾鏈湴鐜 // target: "http://192.168.20.118:8002", ws: true, changeOrigin: true }, "/api": { - target: "http://192.168.20.119:8002", // http://192.168.20.119:8002 http://fai365.com:30150/ + target: `http://192.168.0.${ipNum}:8002`, // http://192.168.20.119:8002 http://fai365.com:30150/ // 寤洪亾鏈湴鐜 // target: "http://192.168.20.118:8002", ws: true, -- Gitblit v1.8.0