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