From 3350809003b1e92cbc8852de1c2e16fe716858a8 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 02 二月 2024 17:16:33 +0800
Subject: [PATCH] 2024-02-02

---
 src/utils/utils-datamanage.js             |    7 +--
 package-lock.json                         |   18 +++++++++
 src/api/index.js                          |    2 
 src/views/billprint/index.jsx             |   10 ++--
 package.json                              |    3 +
 src/templates/zshare/codemirror/index.jsx |    2 +
 src/menu/datasource/verifycard/index.jsx  |   17 ++++++++
 src/utils/utils.js                        |   41 +++++++++++++++-----
 8 files changed, 80 insertions(+), 20 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 48029da..f2a6340 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8409,6 +8409,11 @@
         "iconv-lite": "~0.4.13"
       }
     },
+    "encryptlong": {
+      "version": "3.1.4",
+      "resolved": "https://registry.npmjs.org/encryptlong/-/encryptlong-3.1.4.tgz",
+      "integrity": "sha512-nx+om7MXaSBSBPBNKKPrOWMot/C0L0Ru8dy9WTyjO5k8Wo+1hsnK0d8uX1UjctkgcgEWhkKhVScniYDjXvnKgw=="
+    },
     "end-of-stream": {
       "version": "1.4.1",
       "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
@@ -12764,6 +12769,11 @@
         }
       }
     },
+    "jsencrypt": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/jsencrypt/-/jsencrypt-3.3.2.tgz",
+      "integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A=="
+    },
     "jsesc": {
       "version": "2.5.2",
       "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -14930,6 +14940,14 @@
         }
       }
     },
+    "node-rsa": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/node-rsa/-/node-rsa-1.1.1.tgz",
+      "integrity": "sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==",
+      "requires": {
+        "asn1": "^0.2.4"
+      }
+    },
     "node-sass": {
       "version": "4.12.0",
       "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
diff --git a/package.json b/package.json
index 07d00b5..bad35c0 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
     "dragact": "^0.2.12",
     "echarts": "^5.2.1",
     "echarts-for-react": "^2.0.15-beta.1",
+    "encryptlong": "^3.1.4",
     "eslint": "^6.1.0",
     "eslint-config-react-app": "^5.0.1",
     "eslint-loader": "2.2.1",
@@ -73,12 +74,14 @@
     "jest-watch-typeahead": "0.3.1",
     "js-table2excel": "^1.0.3",
     "jsbarcode": "^3.11.3",
+    "jsencrypt": "^3.3.2",
     "jspdf": "^2.5.1",
     "jssha": "^3.2.0",
     "jszip": "^3.10.0",
     "md5": "^2.2.1",
     "mini-css-extract-plugin": "0.5.0",
     "moment": "^2.24.0",
+    "node-rsa": "^1.1.1",
     "node-sass": "^4.12.0",
     "optimize-css-assets-webpack-plugin": "5.0.3",
     "pnp-webpack-plugin": "1.5.0",
diff --git a/src/api/index.js b/src/api/index.js
index 194cca9..cc5223d 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -645,7 +645,7 @@
     param.sign = md5(values)
     param.t = new Date().getTime();
 
-    ['arr_field', 'LText_field', 'custom_script', 'LText1', 'LText', 'LText2', 'DateCount'].forEach(key => {
+    ['arr_field', 'custom_script', 'LText', 'DateCount'].forEach(key => {
       if (param[key]) {
         let val = param[key]
         delete param[key]
diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx
index a8e84f7..fd6a079 100644
--- a/src/menu/datasource/verifycard/index.jsx
+++ b/src/menu/datasource/verifycard/index.jsx
@@ -564,6 +564,23 @@
         })
         return Promise.reject()
       }
+    } else if (config.subtype === 'editable') {
+      let _arr = []
+      columns.forEach(col => {
+        let key = col.field.toLowerCase()
+        if (['jskey', 'data_type', 'bid'].includes(key)) {
+          _arr.push(col.field)
+        }
+      })
+
+      if (_arr.length > 0) {
+        notification.warning({
+          top: 92,
+          message: '瀛楁闆嗕腑涓嶅彲浣跨敤' + _arr.join('銆�') + '锛佹敞锛氭瀛楁涓烘彁浜ゆ椂鐨勭郴缁熷瓧娈点��',
+          duration: 5
+        })
+        return Promise.reject()
+      }
     }
 
     return new Promise((resolve, reject) => {
diff --git a/src/templates/zshare/codemirror/index.jsx b/src/templates/zshare/codemirror/index.jsx
index db428e7..0980534 100644
--- a/src/templates/zshare/codemirror/index.jsx
+++ b/src/templates/zshare/codemirror/index.jsx
@@ -144,6 +144,8 @@
       _sql = _sql.replace(item.id, item.value)
     })
 
+    _sql = _sql.replace(/,\n\s*/g, ',')
+
     this.setState({display: false, defaultVal: _sql}, () => {
       this.setState({display: true})
     })
diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js
index ce94801..5b82a9a 100644
--- a/src/utils/utils-datamanage.js
+++ b/src/utils/utils-datamanage.js
@@ -284,9 +284,9 @@
       param.menuname = setting.$name
     }
 
-    param.custom_script = Utils.formatOptions(_customScript)
-    param.LText = Utils.formatOptions(LText)
-    param.DateCount = Utils.formatOptions(DateCount)
+    param.custom_script = Utils.formatOptions(_customScript, param.exec_type)
+    param.LText = Utils.formatOptions(LText, param.exec_type)
+    param.DateCount = Utils.formatOptions(DateCount, param.exec_type)
 
     if (setting.sub_field) {
       param.sub_name = setting.subdata
@@ -520,7 +520,6 @@
 
 /**
  * @description 鐢熸垚sPC_Get_structured_data璇锋眰鍙傛暟
- * 1銆佹妸澶ф帴鍙PC_Get_structured_data鐨刲text鎷嗘垚涓変唤锛岀涓�娈碉細@LText1锛岀浜屾@LText锛岀涓夋@LText2
  */
 export function getStructuredParams (params, config, BID) {
   let LText_field = []
diff --git a/src/utils/utils.js b/src/utils/utils.js
index 61b28c5..aae25f6 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -1,6 +1,7 @@
 import React from 'react'
 import moment from 'moment'
 import md5 from 'md5'
+// import NodeRSA from 'node-rsa'
 
 const formatKeys = [
   { key: 'select', value: ' msltk ' },
@@ -119,10 +120,8 @@
    * @description sql鍔犲瘑
    * @return {String}   value
    */
-  static formatOptions (value) {
+  static formatOptions (value, exec_type = '') {
     if (!value) return ''
-
-    let salt = 'minKe' // 鐩愬��
 
     value = value.replace(/\n/ig, ' \n ')
     // 鏇挎崲鍏抽敭瀛�
@@ -136,13 +135,35 @@
     if (window.GLOB.externalDatabase !== null) {
       value = value.replace(/@db@/ig, window.GLOB.externalDatabase)
     }
-    // encode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛�
-    value = window.btoa(window.encodeURIComponent(value))
-    // 鎻掑叆瀛楃
-    let index = Math.floor(value.length / 2)
-    value = value.slice(0, index) + salt + value.slice(index)
-    // base64鍔犲瘑
-    value = window.btoa(value)
+
+    if (exec_type === 'x') {
+      // let publicKey = `-----BEGIN PUBLIC KEY-----
+      //   MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwGxFURiCrk5a2xfWuM3W
+      //   2lkS3ioZhUFXpkK1inMivItsA/J8MTaBB3EAVxC29xdVCU+xOzs512PuD2b1sjzX
+      //   jwO6kx433NtB2okqGiP4RkzhEJHwdyc9dPUKdjirDznUWI9R7WayAf5Z4COhMsj2
+      //   IbkyJgkb6Ivn0UgU0GSWc92HqJJmnb3Ti2gk6A2+oybz2RE3+xB/yOaNu3xav4yi
+      //   xxo6harVLNBiaU+D7aDed1W3kE20gLOnEAvcLMjpe3n/QvF5RtELsm3T+vH3TIT2
+      //   GI9+8cT20NZ2d7i41+j/AQZiPJNS3MVmc3aIhuyCOsNPLmvbZZi1KPSJIqkCwdEg
+      //   mQIDAQAB
+      //   -----END PUBLIC KEY-----`
+
+      // let pubKey = new NodeRSA(publicKey, 'pkcs8-public')
+
+      // value = window.encodeURIComponent(value)
+      // value = pubKey.encrypt(value, 'base64')
+
+      // const priKey = new NodeRSA(privateKey, 'pkcs8-private')
+      // const res = priKey.decrypt(value, 'utf8')
+    } else {
+      // encode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛�
+      value = window.btoa(window.encodeURIComponent(value))
+      // 鎻掑叆瀛楃
+      let salt = 'minKe' // 鐩愬��
+      let index = Math.floor(value.length / 2)
+      value = value.slice(0, index) + salt + value.slice(index)
+      // base64鍔犲瘑
+      value = window.btoa(value)
+    }
 
     return value
   }
diff --git a/src/views/billprint/index.jsx b/src/views/billprint/index.jsx
index 5f2a4ac..d64cb91 100644
--- a/src/views/billprint/index.jsx
+++ b/src/views/billprint/index.jsx
@@ -842,8 +842,6 @@
 
     let param = {
       func: 'sPC_Get_structured_data',
-      LText: LText.join(' union all '),
-      LText_field: LText_field.join(' union all '),
       BID: BID || '',
       username: userName,
       fullName: fullName
@@ -853,10 +851,12 @@
       param.menuname = MenuName
     }
 
-    param.LText = Utils.formatOptions(param.LText)
-    param.LText_field = Utils.formatOptions(param.LText_field)
+    param.exec_type = 'y'
+    param.LText = Utils.formatOptions(LText.join(' union all '))
+    param.custom_script = Utils.formatOptions(LText_field.join(' union all '))
+
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
-    param.secretkey = Utils.encrypt(param.LText, param.timestamp)
+    param.secretkey = Utils.encrypt('', param.timestamp)
 
     return param
   }

--
Gitblit v1.8.0