From 06a670976e2145a10ea05207041d3cf3164cd380 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 03 二月 2024 18:13:25 +0800 Subject: [PATCH] Merge branch 'positec' into dms --- src/utils/utils.js | 248 +++++++++++++++++++++++++++++------------------- 1 files changed, 149 insertions(+), 99 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index 6754540..fb3811a 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,43 @@ 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鍔犲瘑鑼冨洿锛� + // let str = window.encodeURIComponent(value) + + // if (str.length % 3 === 1) { + // str += '%2F*123*%2F' + // } else if (str.length % 3 === 2) { + // str += '%2F*12*%2F' + // } + + 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 } @@ -169,59 +198,6 @@ // return value // } - - /** - * @description sPC_TableData_InUpDe sql鍔犲瘑 - * @return {String} value - */ - static sPCInUpDeFormatOptions (value) { - if (!value) return {LText: '', LText1: '', LText2: ''} - let salt = 'minKe' // 鐩愬�� - - 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 ') - // 澶栬仈鏁版嵁搴撴浛鎹� - if (window.GLOB.externalDatabase !== null) { - value = value.replace(/@db@/ig, window.GLOB.externalDatabase) - } - - let encodesql = (val) => { - if (!val) return '' - - let _value = window.btoa(window.encodeURIComponent(val)) - - // 鎻掑叆瀛楃 - let index = Math.floor(_value.length / 2) - _value = _value.slice(0, index) + salt + _value.slice(index) - - // base64鍔犲瘑 - return window.btoa(_value) - } - - let len = value.length - // 娉細LText 涓� LText1 椤哄簭棰犲�� - if (len > 1000) { - let limit = Math.floor(len / 3) - return { - LText1: encodesql(value.substring(0, limit)), - LText: encodesql(value.substring(limit, limit * 2)), - LText2: encodesql(value.substring(limit * 2)) - } - } else { - return { - LText1: '', - LText: encodesql(value), - LText2: '' - } - } - } /** * @description 鍒濆鍖栨悳绱㈡潯浠跺垵濮嬪�� @@ -260,10 +236,44 @@ format = 'YYYY-MM-DD HH:mm:ss' } + item.format = format item.initval = item.initval ? moment().subtract(item.initval, 'days').format(format) : '' } else if (item.type === 'datemonth') { - item.initval = item.initval ? moment().subtract(item.initval, 'month').format('YYYY-MM') : '' + item.format = 'YYYY-MM' + + if (item.initval) { + if (!item.dateShift) { + item.initval = moment().subtract(item.initval, 'month').format('YYYY-MM') + } else { + item.$initval = item.initval + item.$supId = config.$pageId + if (config.setting && config.setting.supModule) { + item.$supId = config.setting.supModule + + config.checkBid = true + config.setting.checkBid = true + item.checkShift = true + } + + item.initval = '' + + let d = '' + if (window.GLOB.CacheData.has(item.$supId)) { + d = window.GLOB.CacheData.get(item.$supId) + d = d[item.dateShift] || '' + if (d) { + d = moment(d).format('YYYY-MM-DD') + d = d === 'Invalid date' ? '' : d + } + } + + if (d) { + item.initval = moment(d).subtract(item.initval, 'month').format('YYYY-MM') + } + } + } } else if (item.type === 'dateweek') { + item.format = 'YYYY-MM-DD' item.initval = item.initval ? moment().subtract(item.initval * 7, 'days').format('YYYY-MM-DD') : '' } else if (item.type === 'daterange') { let format = 'YYYY-MM-DD' @@ -276,19 +286,66 @@ } else if (item.precision === 'second') { format = 'YYYY-MM-DD HH:mm:ss' } - if (item.initval === 'week') { - item.initval = [moment().startOf('week').format(format), moment().endOf('week').format(format)].join(',') - } else if (item.initval === 'month') { - item.initval = [moment().startOf('month').format(format), moment().endOf('month').format(format)].join(',') - } else if (item.initval === 'lastMonth') { - item.initval = [moment().subtract(1, 'months').startOf('month').format(format), moment().subtract(1, 'months').endOf('month').format(format)].join(',') - } else if (item.initval) { - try { - let _initval = JSON.parse(item.initval) - let _vals = [moment().subtract(_initval[0], 'days').format(format), moment().subtract(_initval[1], 'days').format(format)] - item.initval = _vals.join(',') - } catch (e) { + + item.format = format + + if (item.initval) { + if (!item.dateShift) { + if (item.initval === 'week') { + item.initval = [moment().startOf('week').format(format), moment().endOf('week').format(format)].join(',') + } else if (item.initval === 'month') { + item.initval = [moment().startOf('month').format(format), moment().endOf('month').format(format)].join(',') + } else if (item.initval === 'lastMonth') { + item.initval = [moment().subtract(1, 'months').startOf('month').format(format), moment().subtract(1, 'months').endOf('month').format(format)].join(',') + } else if (item.initval) { + try { + let _initval = JSON.parse(item.initval) + let _vals = [moment().subtract(_initval[0], 'days').format(format), moment().subtract(_initval[1], 'days').format(format)] + item.initval = _vals.join(',') + } catch (e) { + item.initval = '' + } + } + } else { + item.$initval = item.initval + item.$supId = config.$pageId + if (config.setting && config.setting.supModule) { + item.$supId = config.setting.supModule + + config.checkBid = true + config.setting.checkBid = true + item.checkShift = true + } + item.initval = '' + + let d = '' + if (window.GLOB.CacheData.has(item.$supId)) { + d = window.GLOB.CacheData.get(item.$supId) + d = d[item.dateShift] || '' + if (d) { + d = moment(d).format('YYYY-MM-DD') + d = d === 'Invalid date' ? '' : d + } + } + + if (d) { + if (item.$initval === 'week') { + item.initval = [moment(d).startOf('week').format(format), moment(d).endOf('week').format(format)].join(',') + } else if (item.$initval === 'month') { + item.initval = [moment(d).startOf('month').format(format), moment(d).endOf('month').format(format)].join(',') + } else if (item.$initval === 'lastMonth') { + item.initval = [moment(d).subtract(1, 'months').startOf('month').format(format), moment(d).subtract(1, 'months').endOf('month').format(format)].join(',') + } else { + try { + let _initval = JSON.parse(item.$initval) + let _vals = [moment(d).subtract(_initval[0], 'days').format(format), moment(d).subtract(_initval[1], 'days').format(format)] + item.initval = _vals.join(',') + } catch (e) { + item.initval = '' + } + } + } } } } else if (item.type === 'group') { @@ -348,9 +405,16 @@ item.initval = '' item.initType = '' } - } else if ((item.type === 'select' || item.type === 'link') && item.initval === '$first' && item.resourceType === '1') { - item.initval = '' - item.$first = true + } else if ((item.type === 'select' || item.type === 'link') && item.resourceType === '1') { + if (/@BID@/ig.test(item.dataSource) && config.setting && config.setting.supModule) { + config.checkBid = true + config.setting.checkBid = true + item.checkBid = true + } + if (item.initval === '$first') { + item.initval = '' + item.$first = true + } } item.oriInitval = item.initval @@ -1403,7 +1467,6 @@ let datavars = {} // 澹版槑鐨勫彉閲忥紝琛ㄥ崟鍙婃樉绀哄垪 let _actionType = null let _callbacksql = '' - let foreignKey = setting.foreignKey ? setting.foreignKey.toLowerCase() : '' if (verify.default !== 'false') { // 鍒ゆ柇鏄惁浣跨敤榛樿sql _actionType = btn.sqlType @@ -1786,19 +1849,13 @@ item.field.split(',').forEach((_field, index) => { let _key = _field.toLowerCase() let _val = datavars[_key] !== undefined ? datavars[_key] : '' - let _fval = `'${_val}'` - if (_key === 'bid' && !datavars.bid) { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 - _fval = '@BID@' - } - if (_key === 'bid' && foreignKey) { - arr.push(foreignKey) - _fieldValue.push(`${foreignKey}=${_fval}`) - } else { - arr.push(_key) - _fieldValue.push(`${_key}=${_fval}`) + arr.push(_key) + if (_key === 'bid' && !_val) { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 + _val = BID } + _fieldValue.push(`${_key}='${_val}'`) _value.push(`${_labels[index] || ''}锛�${_val || ''}`) }) @@ -1914,14 +1971,7 @@ values.push('@fullname') } if (!keys.includes('bid')) { - if (foreignKey && !keys.includes(foreignKey)) { - keys.push(foreignKey) - } else { - keys.push('bid') - } - values.push('@BID@') - } else if (foreignKey && !keys.includes(foreignKey)) { - keys.push(foreignKey) + keys.push('bid') values.push('@BID@') } @@ -2300,7 +2350,7 @@ z_debug_end: select @ErrorCode='E',@retmsg='debug_end' goto aaa` } - if (retmsg) { + if (retmsg || btn.returnValue === 'true') { _sql += ` aaa: if @ErrorCode!='' insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@` -- Gitblit v1.8.0