Просмотр исходного кода

通用接口明文SQL及参数是否显示改为配置项

cfort 1 год назад
Родитель
Сommit
a356c01a92
4 измененных файлов с 20 добавлено и 2 удалено
  1. 3 1
      public/config.js
  2. 3 1
      src/business/platform/form/utils/custom/joinCURD.js
  3. 2 0
      src/constant.js
  4. 12 0
      src/utils/encrypt.js

+ 3 - 1
public/config.js

@@ -67,7 +67,9 @@
         // 系统名称
         SYSTEM_NAME: '金通医学实验室标准化数智化管理平台',
         // 润乾报表根目录
-        REPORT_PATH: '金通医学实验室管理系统'
+        REPORT_PATH: '金通医学实验室管理系统',
+        // 是否显示开启明文SQL
+        SHOW_PLAINTEXT: false
     }
 
 })(window)

+ 3 - 1
src/business/platform/form/utils/custom/joinCURD.js

@@ -2,6 +2,7 @@ import request from '@/utils/request'
 import { normal } from './requestType'
 import { encryptByAes } from '@/utils/encrypt'
 import { mapValues } from 'lodash'
+import { SHOW_PLAINTEXT } from '@/constant'
 // 请求方式默认POST
 const post = (type, data, method = 'post', loading = false) => {
     const requestUrl = `business/v3/sys/universal/${normal[type]}`
@@ -42,9 +43,10 @@ const dealData = (args, type) => {
         }
     }
     const data = typeof args === 'object' ? replaceNullWithEmpty(args) : args
+    const plaintext = SHOW_PLAINTEXT ? { plaintext: data } : {}
     const res = {
         ciphertext: encryptByAes(data),
-        plaintext: data
+        ...plaintext
     }
     return JSON.stringify(res)
 }

+ 2 - 0
src/constant.js

@@ -59,3 +59,5 @@ export const I18N_FALLBACK_LOCALE = __IBPS_CONFIG__.I18N_FALLBACK_LOCALE || 'zh-
 export const ELEMENT_COLOR = __IBPS_CONFIG__.ELEMENT_COLOR || '#409EFF'
 export const SYSTEM_NAME = __IBPS_CONFIG__.SYSTEM_NAME || '金通医学实验室标准化数智化管理平台'
 export const REPORT_PATH = __IBPS_CONFIG__.REPORT_PATH || '金通医学实验室管理系统'
+// 是否显示明文SQL,开发环境默认显示
+export const SHOW_PLAINTEXT = __IBPS_CONFIG__.SHOW_PLAINTEXT || env.NODE_ENV === 'development'

+ 12 - 0
src/utils/encrypt.js

@@ -24,3 +24,15 @@ export const encryptByAes = pwd => {
     }
     return encrypted.ciphertext.toString(CryptoJS.enc.Base64)
 }
+
+export const decryptByAes = encryptedText => {
+    const options = {
+        iv: iv,
+        mode: CryptoJS.mode.CBC, // 使用CBC模式
+        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充
+    }
+    const encryptedData = CryptoJS.enc.Base64.parse(encryptedText)
+    const decryptedData = CryptoJS.AES.decrypt({ ciphertext: encryptedData }, key, options)
+    const decryptedText = decryptedData.toString(CryptoJS.enc.Utf8)
+    return decryptedText.trim()
+}