From 83fed76944d07da0744edcdde3fcea49430e6f8a Mon Sep 17 00:00:00 2001 From: hrx <18603305412@163.com> Date: Wed, 10 Jun 2026 11:13:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E9=9C=80=E5=B9=BF=E5=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- f/web-kboss/src/utils/request.js | 48 ++++++++++++++----- .../homePage/components/topBox/index.vue | 7 ++- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/f/web-kboss/src/utils/request.js b/f/web-kboss/src/utils/request.js index e5e1ea4..192c3cf 100644 --- a/f/web-kboss/src/utils/request.js +++ b/f/web-kboss/src/utils/request.js @@ -42,6 +42,25 @@ if (window.location.href.includes("dev.opencomputing.cn")) { // testUrl = window.location.href.split('/#/')[0] // } console.log("环境的前缀时" + testUrl); // 应该输出 'https://www.kaiyuancloud.cn/dev' +let isRedirectingToLogin = false + +const getErrorStatus = (error) => { + if (error && error.response && error.response.status) { + return Number(error.response.status) + } + const message = String((error && error.message) || '') + const match = message.match(/\b(\d{3})\b/) + return match ? Number(match[1]) : 0 +} + +const showErrorMessage = (message, duration = 5 * 1000) => { + Message({ + message, + type: 'error', + duration, + }) +} + const service = axios.create({ // baseURL: 'https://dev.kaiyuancloud.cn', // url = base url + request url timeout: 20000,// request timeout @@ -94,11 +113,9 @@ service.interceptors.response.use( // router.push({path:'/login'}) //这不是测试么.正常不用push 直接return return res } else { - Message({ - message: res.message || "Error", - type: "error", - duration: 5 * 1000, - }); + const message = (res && (res.message || res.msg)) || "Error" + showErrorMessage(message) + return Promise.reject(new Error(message)) } // // 如果返回状态代码不是200,则判定为错误。 //response.status判断这个 // if (res.code == 200 || res.code == 209) { @@ -133,22 +150,27 @@ service.interceptors.response.use( (error) => { console.log(error.message) // for debug //在这呢,走到这了 - let code = parseInt(error.message.split('code')[1]) + let code = getErrorStatus(error) // console.log(code); if (code == 401) { - alert('请重新登录') - router.push({path: '/login'}) + if (!isRedirectingToLogin) { + isRedirectingToLogin = true + showErrorMessage('登录已过期,请重新登录') + router.push({path: '/login'}).finally(() => { + isRedirectingToLogin = false + }) + } // window.location.href = 'https://www.opencomputing.cn/' } else if (code == 403) { // this.$message({ // message:"您没有权限哦", // type: 'error'1 // }) - Message({ - message: "您没有权限哦", - type: 'error', - // duration: 5 * 1000 - }) + showErrorMessage("您没有权限哦") + } else if (code) { + showErrorMessage((error.response && error.response.data && (error.response.data.message || error.response.data.msg)) || `请求失败(${code})`) + } else { + showErrorMessage(error.message || '网络异常,请稍后重试') } // Message({ // message: error.message, diff --git a/f/web-kboss/src/views/homePage/components/topBox/index.vue b/f/web-kboss/src/views/homePage/components/topBox/index.vue index f1aaac3..502cb5c 100644 --- a/f/web-kboss/src/views/homePage/components/topBox/index.vue +++ b/f/web-kboss/src/views/homePage/components/topBox/index.vue @@ -408,8 +408,11 @@ export default Vue.extend({ // 跳转元境 async goYuanjing() { + const yuanJingBaseUrl = window.location.origin === 'https://dev.opencomputing.cn' + ? 'https://aidev.opencomputing.cn' + : 'https://ai.opencomputing.cn' if (!this.loginState) { - window.open('https://ai.opencomputing.cn/', '_blank') + window.open(`${yuanJingBaseUrl}/`, '_blank') return } @@ -430,7 +433,7 @@ export default Vue.extend({ return } - const loginUrl = `https://ai.opencomputing.cn/#/getCookie?deerer=${encodeURIComponent(deerer)}` + const loginUrl = `${yuanJingBaseUrl}/#/getCookie?deerer=${encodeURIComponent(deerer)}` if (yuanJingWindow) { yuanJingWindow.location.href = loginUrl