From e06044d2db5e57dade2aec6a2ac398129f61d0f2 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 01 Jun 2026 19:00:15 +0800
Subject: [PATCH] feat: 增加登录页面,注释测试监控的播放

---
 src/router/axios.js |   72 ++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 27 deletions(-)

diff --git a/src/router/axios.js b/src/router/axios.js
index 9314419..d57ab12 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -1,40 +1,42 @@
-/*
- * @Author: shuishen 1109946754@qq.com
- * @Date: 2022-07-29 15:19:13
- * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-04-21 10:16:58
- * @FilePath: \web\bigScreen\src\router\axios.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/**
- * 全站http配置
- *
- * axios参数说明
- * isSerialize是否开启form表单提交
- * isToken是否需要token
- */
 import axios from "axios";
+import store from '@/store/';
+import router from '@/router/page';
+import { getToken } from '@/utils/auth';
+import { MessageBox } from 'element-ui';
+import website from '@/config/website';
+import { Base64 } from 'js-base64';
+import NProgress from 'nprogress';
+import 'nprogress/nprogress.css';
 
-// 调用后台管理的
 const service = axios.create({
-  timeout: 600000, // request timeout
+  timeout: 600000,
 });
 
-// 返回其他状态码
 service.defaults.validateStatus = function (status) {
   return status >= 200 && status <= 500;
 };
 
-// 跨域请求,允许保存cookie
-// service.defaults.withCredentials = true
+service.defaults.withCredentials = true;
 
-// http request拦截
+NProgress.configure({
+  showSpinner: false
+});
+
 service.interceptors.request.use(
   (config) => {
-    if (config.apiKey) {
-      config.headers["apikey"] =
-        "F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A";
+    NProgress.start();
+    const meta = (config.meta || {});
+    const isToken = meta.isToken === false;
+    config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
+    
+    if (getToken() && !isToken) {
+      config.headers[website.tokenHeader] = 'bearer ' + getToken()
     }
+    
+    if (config.text === true) {
+      config.headers["Content-Type"] = "text/plain";
+    }
+    
     config.cancelToken = new axios.CancelToken((cancel) => {
       window._axiosPromiseArr.push({ cancel });
     });
@@ -46,10 +48,25 @@
   }
 );
 
-// http response 拦截
 service.interceptors.response.use(
   (res) => {
-    const code = res.data.code;
+    NProgress.done();
+    const status = res.data.code || res.status;
+    const statusWhiteList = website.statusWhiteList || [];
+    const message = res.data.msg || res.data.error_description || '未知错误';
+    
+    if (statusWhiteList.includes(status)) return Promise.reject(res);
+    
+    if (status === 401) {
+      store.dispatch('FedLogOut').then(() => {
+        router.push({ path: '/login' });
+      });
+    }
+    
+    if (status !== 200 && status !== 201) {
+      MessageBox.alert(message);
+      return Promise.reject(new Error(message))
+    }
 
     if (res.data.resultList && res.data.resultList.length > 0) {
       res.data.resultList = res.data.resultList.map((item) => {
@@ -68,8 +85,9 @@
     return res;
   },
   (error) => {
+    NProgress.done();
     return Promise.reject(new Error(error));
   }
 );
 
-export default service;
+export default service;
\ No newline at end of file

--
Gitblit v1.9.3