From b7ec20b3ec22c858f2db3d9285c5e9d38bd8a48f Mon Sep 17 00:00:00 2001
From: 13404089107 <puwei@sinata.cn>
Date: 星期四, 08 五月 2025 16:17:19 +0800
Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory

---
 laboratory/src/utils/request.js |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/laboratory/src/utils/request.js b/laboratory/src/utils/request.js
index 0939a41..f1d1c11 100644
--- a/laboratory/src/utils/request.js
+++ b/laboratory/src/utils/request.js
@@ -1,13 +1,10 @@
 import axios from 'axios'
 import apiConfig from './baseurl'
-
-import {
-  Message
-} from 'element-ui'
-
+import { Message } from 'element-ui'
+import { encryptBySM4, decryptBySM4 } from './sm4'  // 添加decryptBySM4
 
 const service = axios.create({
-  baseURL: apiConfig.baseURL,
+  // baseURL: apiConfig.baseURL,
   withCredentials: false, // 当跨域请求时发送cookie
   timeout: 30000, // request timeout
 })
@@ -16,6 +13,10 @@
 service.interceptors.request.use(
   config => {
     config['headers']['Authorization'] = `${sessionStorage.getItem('token')}`
+
+    // 判断是否需要加密(只对/api开头的请求进行加密)
+    const needEncrypt = config.url.startsWith('/api');
+
     if (config.method == 'get') {
       if (!config.params) config.params = {};
       config.params = {
@@ -24,8 +25,8 @@
     }
     if (config.method == 'post') {
       if (!config.data) config.data = {};
-      config.data = {
-        ...config.data,
+      if (needEncrypt) {
+        config.data = { param: encryptBySM4(config.data) };
       }
     }
     return config
@@ -42,11 +43,24 @@
       return
     }
     const res = response;
+
+    // 新增解密处理:仅处理/api路径的POST响应
+    if (res.config.method === 'post' && res.config.url.startsWith('/api')) {
+      try {
+        if (res.data && res.data.data) {
+          // 这里假设使用decryptBySM4进行解密
+          res.data.data = decryptBySM4(res.data.data);
+        }
+      } catch (e) {
+        console.error('数据解密失败:', e);
+      }
+    }
+
     if (res.data.code == 200) {
-      if (!res.data.data) {
+      if (!res.data) {
         return Promise.resolve({})
       }
-      return Promise.resolve(res.data.data)
+      return Promise.resolve(res.data)
     } else {
       if (res.data.code == 103 || res.data.code == 401) {
         Message({

--
Gitblit v1.7.1