From fb5c50e60560e436c798015cdff7e9fb3fecede0 Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Thu, 4 Sep 2025 14:43:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E5=AF=86=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/bonus.js | 9 ++++++++- src/utils/request.js | 6 ++++-- src/utils/request_formdata.js | 16 +++++++++++++--- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/utils/bonus.js b/src/utils/bonus.js index 4cc23c7..23024bf 100644 --- a/src/utils/bonus.js +++ b/src/utils/bonus.js @@ -3,6 +3,8 @@ * Copyright (c) 2019 bonus */ +import { encryptWithSM4 } from '@/utils/sm' + // 日期格式化 export function parseTime(time, pattern) { if (arguments.length === 0 || !time) { @@ -216,7 +218,7 @@ export function handleTree(data, id, parentId, children) { * 参数处理 * @param {*} params 参数 */ -export function tansParams(params) { +export function tansParams(params, isEncrypt = false) { let result = '' for (const propName of Object.keys(params)) { const value = params[propName] @@ -239,6 +241,11 @@ export function tansParams(params) { } } } + + if (isEncrypt) { + // result = result.slice(0, -1) + result = encryptWithSM4(result) + } return result } diff --git a/src/utils/request.js b/src/utils/request.js index d182e03..a1e248b 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -75,8 +75,10 @@ service.interceptors.request.use( // get请求映射params参数 if (config.method === 'get' && config.params) { - let url = config.url + '?' + tansParams(config.params) - url = url.slice(0, -1) + let isEncrypt = + systemConfig.requestConfig.encryptRequest && encryptRequest + let url = config.url + '?' + tansParams(config.params, isEncrypt) + // url = url.slice(0, -1) config.params = {} config.url = url } diff --git a/src/utils/request_formdata.js b/src/utils/request_formdata.js index 983b93d..8d33d9d 100644 --- a/src/utils/request_formdata.js +++ b/src/utils/request_formdata.js @@ -91,11 +91,21 @@ service.interceptors.request.use( // 检查是否是FormData对象 if (config.data instanceof FormData) { // 对于FormData,我们创建一个对象来保存数据以便验证 - const formDataObj = {} + const formDataObj = new FormData() config.data.forEach((value, key) => { - formDataObj[key] = value + const isFile = value instanceof File + if ( + systemConfig.requestConfig.encryptRequest && + encryptRequest && + !isFile + ) { + formDataObj.append(key, encryptWithSM4(value)) + } else { + formDataObj.append(key, value) + } }) - dataStr = JSON.stringify(formDataObj) + config.data = formDataObj + // dataStr = JSON.stringify(formDataObj) // 保持Content-Type为multipart/form-data(由浏览器自动设置) delete config.headers['Content-Type'] } else {