From 05eada1e66951fbb4d388518206c6f5adc93841c Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 15 三月 2024 22:09:20 +0800
Subject: [PATCH] 2024-03-15
---
src/utils/utils.js | 341 ++++++++++++++++++++++++++++++++++----------------------
1 files changed, 209 insertions(+), 132 deletions(-)
diff --git a/src/utils/utils.js b/src/utils/utils.js
index f2d3e00..a904374 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 CryptoJS from 'crypto-js'
const formatKeys = [
{ key: 'select', value: ' msltk ' },
@@ -119,30 +120,45 @@
* @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 ')
- // 鏇挎崲鍏抽敭瀛�
- formatKeys.forEach(item => {
- let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig')
- value = value.replace(reg, item.value)
- })
- // 鏇挎崲%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛�
- value = value.replace(/%/ig, ' mpercent ')
+
// 澶栬仈鏁版嵁搴撴浛鎹�
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)
+
+ // 鏇挎崲%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛�
+ value = value.replace(/%/ig, ' mpercent ')
+
+ if (exec_type === 'x') {
+ let key = CryptoJS.enc.Utf8.parse('D1185ED7B32568C9')
+ let iv = CryptoJS.enc.Utf8.parse('')
+ let srcs = CryptoJS.enc.Utf8.parse(value)
+
+ let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 })
+ value = encrypted.toString()
+
+ // let wordArray = CryptoJS.enc.Base64.parse(value)
+ // let decryptedWordArray = CryptoJS.AES.decrypt({ ciphertext: wordArray }, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 })
+ // let decryptedText = CryptoJS.enc.Utf8.stringify(decryptedWordArray)
+ } else {
+ // 鏇挎崲鍏抽敭瀛�
+ formatKeys.forEach(item => {
+ let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig')
+ value = value.replace(reg, item.value)
+ })
+ // 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
}
@@ -169,59 +185,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 +223,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 +273,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') {
@@ -347,6 +391,16 @@
} else {
item.initval = ''
item.initType = ''
+ }
+ } 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
}
}
@@ -469,17 +523,26 @@
newsearches[item.key] = _val
}
} else if (item.type === 'datemonth') {
- // 鏈�-杩囨护鏉′欢锛屼粠鏈堝紑濮嬭嚦缁撴潫
- let _startval = ''
- let _endval = ''
-
- if (item.value) {
- _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
- _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
+ if (item.match === '=') {
+ newsearches[item.key] = item.value
+ } else {
+ // 鏈�-杩囨护鏉′欢锛屼粠鏈堝紑濮嬭嚦缁撴潫
+ let _startval = ''
+ let _endval = ''
+
+ if (item.value) {
+ _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
+ _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
+ }
+
+ newsearches[item.key] = _startval
+ newsearches[item.key + '1'] = _endval
}
-
- newsearches[item.key] = _startval
- newsearches[item.key + '1'] = _endval
+ } else if (item.type === 'range') {
+ let val = item.value.split(',')
+
+ newsearches[item.key] = val[0] || -999999
+ newsearches[item.key + '1'] = val[1] || 999999
} else if (item.type === 'dateweek') {
let _startval = ''
let _endval = ''
@@ -583,10 +646,14 @@
searchText.push('(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')')
} else if (item.type === 'datemonth') { // 鏈�-杩囨护鏉′欢锛屼粠鏈堝紑濮嬭嚦缁撴潫锛岀粨鏉熸椂闂翠负鏈堟湯鍔犱竴澶╃殑0鐐癸紝鏂瑰紡涓�<
- let _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
- let _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
-
- searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')')
+ if (item.match === '=') {
+ searchText.push('(' + item.key + ' = \'' + item.value + '\')')
+ } else {
+ let _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
+ let _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
+
+ searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')')
+ }
} else if (item.type === 'dateweek') { // 鍛�-杩囨护鏉′欢
let _startval = moment(item.value, 'YYYY-MM-DD' ).startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000'
let _endval = moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
@@ -623,7 +690,7 @@
} else if (item.type === 'range') {
let val = item.value.split(',')
- searchText.push('(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')')
+ searchText.push('(' + item.key + ' >= ' + (val[0] || -999999) + ' AND ' + item.key + ' < ' + (val[1] || 999999) + ')')
} else {
searchText.push('(' + item.key + ' ' + item.match + ' \'' + item.value + '\')')
}
@@ -659,9 +726,9 @@
if (item.type === 'date') {
if (!item.value) {
if (['>=', '>'].includes(item.match)) {
- item.value = '1970-01-01 00:00:00.000'
+ item.value = '1900-01-01 00:00:00.000'
} else if (['<=', '<'].includes(item.match)) {
- item.value = '2050-01-01 00:00:00.000'
+ item.value = '3000-01-01 00:00:00.000'
}
} else if (search.precision === 'day') {
if (['>=', '>'].includes(item.match)) {
@@ -679,20 +746,35 @@
options.push(item)
} else if (item.type === 'datemonth') {
- let _startval = item.value ? moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000' : '1970-01-01 00:00:00.000'
- let _endval = item.value ? moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000'
+ if (item.match === '=') {
+ options.push(item)
+ } else {
+ let _startval = item.value ? moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000' : '1900-01-01 00:00:00.000'
+ let _endval = item.value ? moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '3000-01-01 00:00:00.000'
+
+ let copy = JSON.parse(JSON.stringify(item))
+ copy.key = copy.key + '1'
+ copy.value = _endval
+
+ item.value = _startval
+
+ options.push(item)
+ options.push(copy)
+ }
+ } else if (item.type === 'range') {
+ let val = item.value.split(',')
let copy = JSON.parse(JSON.stringify(item))
copy.key = copy.key + '1'
- copy.value = _endval
+ copy.value = val[1] || 999999
- item.value = _startval
+ item.value = val[0] || -999999
options.push(item)
options.push(copy)
} else if (item.type === 'dateweek') {
- let _startval = item.value ? moment(item.value, 'YYYY-MM-DD').startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000' : '1970-01-01 00:00:00.000'
- let _endval = item.value ? moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000'
+ let _startval = item.value ? moment(item.value, 'YYYY-MM-DD').startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000' : '1900-01-01 00:00:00.000'
+ let _endval = item.value ? moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '3000-01-01 00:00:00.000'
let copy = JSON.parse(JSON.stringify(item))
copy.key = copy.key + '1'
@@ -703,8 +785,8 @@
options.push(item)
options.push(copy)
} else if (item.type === 'daterange') {
- let _startval = '1970-01-01 00:00:00.000'
- let _endval = '2050-01-01 00:00:00.000'
+ let _startval = '1900-01-01 00:00:00.000'
+ let _endval = '3000-01-01 00:00:00.000'
if (item.value) {
let val = item.value.split(',')
@@ -1074,7 +1156,7 @@
end
${unique.verifyType.indexOf('temp') === -1 ? `Set @tbid=''
- Select top 1 @tbid=${_afields.join('+\' \'+')} from #${sheet} a Inner join ${sheet} b on ${_fields_}
+ Select top 1 @tbid=${_afields.join('+\' \'+')} from #${sheet} a Inner join ${database}${sheet} b on ${_fields_}
If @tbid!=''
Begin
@@ -1103,10 +1185,19 @@
let _insert = ''
if (btn.default !== 'false') {
+ let _fields = []
+ btn.columns.forEach(col => {
+ if (col.import === 'false' || col.import === 'init') return
+
+ _fields.push(col.Column)
+ })
+
+ _fields = _fields.join(',')
+
_insert = `
/* 榛樿sql */
- Insert into ${database}${sheet} (${fields},createuserid,createuser,createstaff,bid)
- Select ${fields},'${sessionStorage.getItem('UserID') || ''}',@username,@fullname,'${BID}' From #${sheet}
+ Insert into ${database}${sheet} (${_fields},createuserid,createuser,createstaff,bid)
+ Select ${_fields},'${sessionStorage.getItem('UserID') || ''}',@username,@fullname,'${BID}' From #${sheet}
`
}
@@ -1285,7 +1376,7 @@
end
${unique.verifyType.indexOf('temp') === -1 ? `Set @tbid=''
- Select top 1 @tbid=${_afields.join('+\' \'+')} from #${sheet} a Inner join ${sheet} b on ${_fields_}
+ Select top 1 @tbid=${_afields.join('+\' \'+')} from #${sheet} a Inner join ${database}${sheet} b on ${_fields_}
If @tbid!=''
Begin
@@ -1379,7 +1470,6 @@
let datavars = {} // 澹版槑鐨勫彉閲忥紝琛ㄥ崟鍙婃樉绀哄垪
let _actionType = null
let _callbacksql = ''
- let foreignKey = setting.foreignKey ? setting.foreignKey.toLowerCase() : ''
if (verify.default !== 'false') { // 鍒ゆ柇鏄惁浣跨敤榛樿sql
_actionType = btn.sqlType
@@ -1762,19 +1852,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 || ''}`)
})
@@ -1890,14 +1974,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@')
}
@@ -2276,7 +2353,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