From b987be8dd8b6bc1fa01810daa1e1a60e58a3c921 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 04 九月 2020 17:24:36 +0800 Subject: [PATCH] 2020-09-04 --- src/utils/utils.js | 236 ++++++++++++++++++++++++++++------------------------------- 1 files changed, 112 insertions(+), 124 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index 013fba7..497baee 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -2,6 +2,41 @@ import md5 from 'md5' import options from '@/store/options.js' +const formatKeys = [ + { key: 'select', value: ' msltk ' }, + { key: 'from', value: ' mfrmk ' }, + { key: 'where', value: ' mwhrk ' }, + { key: 'order by', value: ' modbk ' }, + { key: 'asc', value: ' modack ' }, + { key: 'desc', value: ' moddesk ' }, + { key: 'top', value: ' mtpk ' }, + { key: 'like', value: ' mlkk ' }, + { key: 'not like', value: ' mnlkk ' }, + { key: 'between', value: ' mbtnk ' }, + { key: 'and', value: ' madk ' }, + { key: 'insert', value: ' mistk ' }, + { key: 'into', value: ' mitk ' }, + { key: 'update', value: ' muptk ' }, + { key: 'delete', value: ' mdelk ' }, + { key: 'begin', value: ' mbgink ' }, + { key: 'end', value: ' medk ' }, + { key: 'if', value: ' mefk ' }, + { key: 'while', value: ' mwilk ' }, + { key: 'create', value: ' mcrtk ' }, + { key: 'alter', value: ' matek ' }, + { key: 'len', value: ' mlnk ' }, + { key: 'left', value: ' mlftk ' }, + { key: 'right', value: ' mritk ' }, + { key: 'union', value: ' munok ' }, + { key: 'varchar', value: ' mvcrk ' }, + { key: 'getdate', value: ' mgtdtk ' }, + { key: 'TRY', value: ' mtryonek ' }, + { key: 'TRAN', value: ' mtrnk ' }, + { key: 'goto', value: ' mgtk ' }, + { key: 'set', value: ' mstk ' }, + { key: 'ROLLBACK', value: ' mrlbkk ' } +] + export default class Utils { /** * @description 鏁版嵁婧愬悕绉帮紝鐢ㄤ簬缁熶竴鏌ヨ @@ -51,22 +86,26 @@ * @description md5鍔犲瘑 * @return {String} str 鍔犲瘑涓� * @return {String} timestamp 鏃堕棿鎴� - * @return {Boolean} isopenkey 鏄惁涓轰簯绔瘑閽� */ - static encrypt (str, timestamp, isopenkey) { - let salt1 = 'mingke' // sql璇硶鐩愬�� - let salt2 = 'open_key' // 浜戠鏁版嵁鎿嶄綔鐩愬�� - let _str = '' - - if (isopenkey) { - _str = salt2 + timestamp + str - } else { - _str = str + salt1 + timestamp - } + static encrypt (str, timestamp) { + let salt = 'mingke' // sql璇硶鐩愬�� + let _str = str + salt + timestamp if (_str.length > 8000) { _str = _str.slice(_str.length - 8000) } + return md5(_str) + } + + /** + * @description md5鍔犲瘑 浜戠openkey鍔犲瘑 + * @return {String} secretkey Ltext瀵嗛挜 + * @return {String} timestamp 鏃堕棿鎴� + */ + static encryptOpenKey (secretkey, timestamp) { + let salt = 'open_key' // 浜戠鏁版嵁鎿嶄綔鐩愬�� + let _str = salt + timestamp + secretkey + return md5(_str) } @@ -110,87 +149,56 @@ /** * @description sql鍔犲瘑 * @return {String} value - * @return {Boolean} isUnFormat // 鏄惁涓鸿В瀵� */ - static formatOptions (value, isUnFormat = false) { + static formatOptions (value) { if (!value) return '' let salt = 'minKe' // 鐩愬�� - // 鍏抽敭瀛楄浆鎹㈣鍒� - let format = [ - { key: 'select', value: ' msltk ' }, - { key: 'from', value: ' mfrmk ' }, - { key: 'where', value: ' mwhrk ' }, - { key: 'order by', value: ' modbk ' }, - { key: 'asc', value: ' modack ' }, - { key: 'desc', value: ' moddesk ' }, - { key: 'top', value: ' mtpk ' }, - { key: 'like', value: ' mlkk ' }, - { key: 'not like', value: ' mnlkk ' }, - { key: 'between', value: ' mbtnk ' }, - { key: 'and', value: ' madk ' }, - { key: 'insert', value: ' mistk ' }, - { key: 'into', value: ' mitk ' }, - { key: 'update', value: ' muptk ' }, - { key: 'delete', value: ' mdelk ' }, - { key: 'begin', value: ' mbgink ' }, - { key: 'end', value: ' medk ' }, - { key: 'if', value: ' mefk ' }, - { key: 'while', value: ' mwilk ' }, - { key: 'create', value: ' mcrtk ' }, - { key: 'alter', value: ' matek ' }, - { key: 'len', value: ' mlnk ' }, - { key: 'left', value: ' mlftk ' }, - { key: 'right', value: ' mritk ' }, - { key: 'union', value: ' munok ' }, - { key: 'varchar', value: ' mvcrk ' }, - { key: 'getdate', value: ' mgtdtk ' }, - { key: 'TRY', value: ' mtryonek ' }, - { key: 'TRAN', value: ' mtrnk ' }, - { key: 'goto', value: ' mgtk ' }, - { key: 'set', value: ' mstk ' }, - { key: 'ROLLBACK', value: ' mrlbkk ' } - ] - if (!isUnFormat) { // 鍔犲瘑 - value = value.replace(/\n/ig, ' \n ') - // 鏇挎崲鍏抽敭瀛� - format.forEach(item => { - let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig') - value = value.replace(reg, item.value) + value = value.replace(/\n/ig, ' \n ') + // 鏇挎崲鍏抽敭瀛� + formatKeys.forEach(item => { + let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig') + value = value.replace(reg, item.value) + }) + // 1銆佹浛鎹�%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛� + value = value.replace(/%/ig, ' mpercent ') + // 1銆乪ncode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛夛紝2銆乥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) + + return value + } + + /** + * @description 瑙e瘑 + * @return {String} value + */ + static UnformatOptions (value) { + if (!value) return '' + let salt = 'minKe' // 鐩愬�� + + try { + value = window.atob(value) + value = value.replace(salt, '') + value = window.decodeURIComponent(window.atob(value)) + + value = value.replace(/\smpercent\s/g, '%') + + formatKeys.forEach(item => { + let reg = new RegExp(item.value, 'g') + value = value.replace(reg, ' ' + item.key + ' ') }) - - // 1銆佹浛鎹�%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛� - value = value.replace(/%/ig, ' mpercent ') - // 1銆乪ncode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛夛紝2銆乥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) - } else { // 瑙e瘑 - try { - value = window.atob(value) - value = value.replace(salt, '') - value = window.decodeURIComponent(window.atob(value)) - - value = value.replace(/\smpercent\s/g, '%') - - format.forEach(item => { - let reg = new RegExp(item.value, 'g') - value = value.replace(reg, ' ' + item.key + ' ') - }) - - value = value.replace(/\s\n\s/ig, '\n') - value = value.replace(/(^\s+|\s+$)/ig, '') - } catch { - console.warn('UnFormat Failure') - value = '' - } + value = value.replace(/\s\n\s/ig, '\n') + value = value.replace(/(^\s+|\s+$)/ig, '') + } catch { + console.warn('UnFormat Failure') + value = '' } return value @@ -202,47 +210,11 @@ */ static sPCInUpDeFormatOptions (value) { if (!value) return {LText: '', LText1: '', LText2: ''} - let salt = 'minKe' // 鐩愬�� - // 鍏抽敭瀛楄浆鎹㈣鍒� - let format = [ - { key: 'select', value: ' msltk ' }, - { key: 'from', value: ' mfrmk ' }, - { key: 'where', value: ' mwhrk ' }, - { key: 'order by', value: ' modbk ' }, - { key: 'asc', value: ' modack ' }, - { key: 'desc', value: ' moddesk ' }, - { key: 'top', value: ' mtpk ' }, - { key: 'like', value: ' mlkk ' }, - { key: 'not like', value: ' mnlkk ' }, - { key: 'between', value: ' mbtnk ' }, - { key: 'and', value: ' madk ' }, - { key: 'insert', value: ' mistk ' }, - { key: 'into', value: ' mitk ' }, - { key: 'update', value: ' muptk ' }, - { key: 'delete', value: ' mdelk ' }, - { key: 'begin', value: ' mbgink ' }, - { key: 'end', value: ' medk ' }, - { key: 'if', value: ' mefk ' }, - { key: 'while', value: ' mwilk ' }, - { key: 'create', value: ' mcrtk ' }, - { key: 'alter', value: ' matek ' }, - { key: 'len', value: ' mlnk ' }, - { key: 'left', value: ' mlftk ' }, - { key: 'right', value: ' mritk ' }, - { key: 'union', value: ' munok ' }, - { key: 'varchar', value: ' mvcrk ' }, - { key: 'getdate', value: ' mgtdtk ' }, - { key: 'TRY', value: ' mtryonek ' }, - { key: 'TRAN', value: ' mtrnk ' }, - { key: 'goto', value: ' mgtk ' }, - { key: 'set', value: ' mstk ' }, - { key: 'ROLLBACK', value: ' mrlbkk ' } - ] value = value.replace(/\n/ig, ' \n ') // 鏇挎崲鍏抽敭瀛� - format.forEach(item => { + formatKeys.forEach(item => { let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig') value = value.replace(reg, item.value) }) @@ -1217,8 +1189,15 @@ // 澶辨晥楠岃瘉锛屾坊鍔犳暟鎹椂涓嶇敤 if (btn.sqlType !== 'insert' && verify.invalid === 'true' && setting.dataresource) { let datasource = setting.dataresource - if (/\s/.test(datasource)) { // 鎷兼帴鍒悕 + if (/\s/.test(datasource) && !/tb$/.test(datasource)) { // 鎷兼帴鍒悕 datasource = '(' + datasource + ') tb' + } + + if (setting.customScript) { + _sql += ` + /* 鏁版嵁婧愯嚜瀹氫箟鑴氭湰锛岃娉ㄦ剰鍙橀噺瀹氫箟鏄惁閲嶅 */ + ${setting.customScript} + ` } if (btn.Ot === 'requiredOnce') { @@ -1387,11 +1366,20 @@ } else if (verify.uniques && verify.uniques.length > 0 && btn.Ot === 'requiredOnce' && setting.dataresource) { let datasource = setting.dataresource if (/\s/.test(datasource)) { // 鎷兼帴鍒悕 - datasource = '(' + datasource + ') tb' + if (!/tb$/.test(datasource)) { + datasource = '(' + datasource + ') tb' + } } else { datasource = datasource + ' tb' } + if (setting.customScript) { + _sql += ` + /* 鏁版嵁婧愯嚜瀹氫箟鑴氭湰锛岃娉ㄦ剰鍙橀噺瀹氫箟鏄惁閲嶅 */ + ${setting.customScript} + ` + } + verify.uniques.forEach(item => { _sql += ` /* 鍚岀被鏁版嵁楠岃瘉 */ -- Gitblit v1.8.0