From 4b18ab4bf4eff4383bd85beb76564dc6aeb1df86 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 26 一月 2021 19:11:26 +0800 Subject: [PATCH] 2021-01-26 --- src/utils/utils.js | 433 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 248 insertions(+), 185 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index 31c3abf..3b1788f 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -48,6 +48,7 @@ for (let i = 0; i < 6; i++) { name.push(_options.substr(Math.floor(Math.random() * 26), 1)) } + name.splice(3, 0, new Date().getTime()) return name.join('') } @@ -131,12 +132,15 @@ {key: 'sys.', reg: /(^|\s)sys\./ig}, {key: 'kill', reg: /(^|\s)kill\s/ig} ] - + if (type === 'customscript') { chars = chars.filter(char => !['insert', 'delete', 'update', 'set', 'if', 'exec'].includes(char.key)) } let error = '' + + sql = sql.replace(/sys\.fn_sqlvarbasetostr\(HashBytes\('MD5'/ig, '') // 璺宠繃MD5鍔犲瘑 + chars.forEach(char => { if (!error && char.reg.test(sql)) { error = char.key @@ -161,9 +165,13 @@ let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig') value = value.replace(reg, item.value) }) - // 1銆佹浛鎹�%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛� + // 鏇挎崲%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛� value = value.replace(/%/ig, ' mpercent ') - // 1銆乪ncode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛夛紝2銆乥ase64鍔犲瘑 + // 澶栬仈鏁版嵁搴撴浛鎹� + 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) @@ -172,45 +180,6 @@ value = window.btoa(value) return value - } - - /** - * @description 瑙e瘑 - * @return {String} value - */ - static UnformatOptions (value) { - if (!value) return '' - let salt = 'minKe' // 鐩愬�� - let _value = '' - - try { - try { - _value = JSON.parse(window.decodeURIComponent(window.atob(value))) - } catch { - _value = '' - } - - if (!_value) { - _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 + ' ') - }) - - _value = _value.replace(/\s\n\s/ig, '\n') - _value = _value.replace(/(^\s+|\s+$)/ig, '') - } - } catch { - console.warn('UnFormat Failure') - _value = '' - } - - return _value } /** @@ -230,6 +199,10 @@ // 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 '' @@ -244,11 +217,21 @@ return window.btoa(_value) } + let len = value.length // 娉細LText 涓� LText1 椤哄簭棰犲�� - return { - LText: encodesql(value.substring(5000, 10000)), - LText1: encodesql(value.substring(0, 5000)), - LText2: encodesql(value.substring(10000)) + 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: '' + } } } @@ -422,7 +405,7 @@ newsearches[item.key] = item.value ? item.value[0] + ' 00:00:00.000' : '' newsearches[item.key + '1'] = item.value ? _endval + ' 00:00:00.000' : '' - } else if (item.type === 'text') { + } else if (item.type === 'text' || item.type === 'select') { item.key.split(',').forEach(field => { // 缁煎悎鎼滅储锛屾墍瀛楁鎷兼帴 newsearches[field] = item.value }) @@ -455,17 +438,13 @@ if (item.forbid || !item.value || (item.type === 'multiselect' && item.value.length === 0)) return searchText += (searchText !== '' ? ' AND ' : '') - if (item.type === 'text') { + if (item.type === 'text' || item.type === 'select') { // 缁煎悎鎼滅储锛屾枃鏈垨涓嬫媺锛屾墍鏈夊瓧娈垫嫾鎺� let str = item.match === '=' ? '' : '%' - let fields = item.key.split(',').map(field => { // 缁煎悎鎼滅储锛屾墍瀛楁鎷兼帴 + let fields = item.key.split(',').map(field => { return field + ' ' + item.match + ' \'' + str + item.value + str + '\'' }) searchText += '(' + fields.join(' OR ') + ')' - } else if (item.type === 'select') { - let str = item.match === '=' ? '' : '%' - - searchText += item.key + ' ' + item.match + ' \'' + str + item.value + str + '\'' } else if (item.type === 'multiselect') { searchText += `'${item.value}' ` + item.match + ' \'%\'+' + item.key + '+\'%\'' @@ -506,7 +485,7 @@ } /** - * @description 鎷兼帴鎼滅储鏉′欢main + * @description 鑾峰彇鎼滅储鐢ㄤ簬姝e垯鏇挎崲 * @param {Array} searches 鎼滅储鏉′欢 * @return {String} searchText 鎷兼帴缁撴灉 */ @@ -520,9 +499,7 @@ key: search.key, match: search.match, type: search.type, - label: search.label, - value: search.value, - required: search.required + value: search.value } if (fieldmap.has(item.key)) { @@ -579,12 +556,63 @@ item.value = item.value ? item.value.join(',') : item.value options.push(item) - } else if (item.type === 'text') { + } else if (item.type === 'text' || item.type === 'select') { item.key.split(',').forEach(field => { // 缁煎悎鎼滅储锛屾墍瀛楁鎷兼帴 let cell = JSON.parse(JSON.stringify(item)) cell.key = field + options.push(cell) + }) + } else { + options.push(item) + } + }) + + return options + } + + /** + * @description 鑾峰彇鎼滅储鐢ㄤ簬姝e垯鏇挎崲 + * @param {Array} searches 鎼滅储鏉′欢 + * @return {String} searchText 鎷兼帴缁撴灉 + */ + static getRegOptions (searches) { + if (!searches || searches.length === 0) return [] + + let options = [] + let fieldmap = new Map() + searches.forEach(search => { + let item = { + key: search.field, + value: '0' + } + + if (fieldmap.has(item.key)) { + item.key = item.key + '1' + } + + fieldmap.set(item.key, true) + + if (search.type === 'group') { + options.push({ + key: search.datefield, + value: '0' + }) + if (search.transfer === 'true') { options.push(item) + } + } else if (['datemonth', 'dateweek', 'daterange'].includes(search.type)) { + options.push(item) + options.push({ + key: item.key + '1', + value: '0' + }) + } else if (search.type === 'text' || search.type === 'select') { + item.key.split(',').forEach(field => { + let cell = JSON.parse(JSON.stringify(item)) + cell.key = field + + options.push(cell) }) } else { options.push(item) @@ -632,11 +660,9 @@ if (process.env.NODE_ENV === 'production') { baseurl = document.location.origin + '/' + window.GLOB.service } else { - baseurl = window.GLOB.location + window.GLOB.service + baseurl = window.GLOB.location + '/' + window.GLOB.service } - // if (!/Content\/images\/upload\//.test(url)) { - // baseurl = baseurl + 'Content/images/upload/' - // } + let realurl = url.match(/^http/) || url.match(/^\/\//) ? url : baseurl + url return realurl } @@ -668,8 +694,11 @@ if (item.type === 'link') { arrfield.push(item.linkField) - } else if (item.type === 'select' && item.linkSubField && item.linkSubField.length > 0) { + } else if ((item.type === 'select' || item.type === 'radio') && item.linkSubField && item.linkSubField.length > 0) { arrfield.push(...item.linkSubField) + } else if (item.type === 'checkcard') { + arrfield = item.fields.map(f => f.field) + arrfield.push(item.valueField) } arrfield = Array.from(new Set(arrfield)) @@ -684,9 +713,9 @@ arrfield = arrfield.join(',') if (item.orderBy) { - sql = `select ${arrfield} from (select distinct ${arrfield},${item.orderBy} as orderfield from ${_datasource} ) a order by orderfield ${item.orderType}` + sql = `select ${item.type === 'checkcard' ? 'top 20' : ''} ${arrfield} from (select distinct ${arrfield},${item.orderBy} as orderfield from ${_datasource} ) a order by orderfield ${item.orderType}` } else { - sql = 'select distinct ' + arrfield + ' from ' + _datasource + sql = `select ${item.type === 'checkcard' ? 'top 20' : ''} ${arrfield} from (select distinct ${arrfield} from ${_datasource}) a` } return { @@ -710,6 +739,9 @@ userName = sessionStorage.getItem('CloudUserName') || '' fullName = sessionStorage.getItem('CloudFullName') || '' } + + let database = item.sheet.match(/(.*)\.(.*)\./ig) || '' + let sheet = item.sheet.replace(/(.*)\.(.*)\./ig, '') let errors = [] let _topline = btn.range || 0 @@ -876,7 +908,7 @@ _uniquesql += ` /* 閲嶅鎬ч獙璇� */ Set @tbid='' - Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${item.sheet} ) a group by ${unique.field} having sum(n)>1 + Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${sheet} ) a group by ${unique.field} having sum(n)>1 If @tbid!='' Begin @@ -885,7 +917,7 @@ end Set @tbid='' - Select top 1 @tbid=${_afields.join('+\' \'+')} from @${item.sheet} a Inner join ${item.sheet} b on ${_fields_} + Select top 1 @tbid=${_afields.join('+\' \'+')} from @${sheet} a Inner join ${sheet} b on ${_fields_} If @tbid!='' Begin @@ -916,20 +948,20 @@ if (btn.default !== 'false') { _insert = ` /* 榛樿sql */ - Insert into ${item.sheet} (${fields},createuserid,createuser,createstaff,bid) - Select ${fields},@userid@,@username,@fullname,@BID@ From @${item.sheet} + Insert into ${database}${sheet} (${fields},createuserid,createuser,createstaff,bid) + Select ${fields},@userid@,@username,@fullname,@BID@ From @${sheet} ` } _sql = ` /* 绯荤粺鐢熸垚 */ - declare @${item.sheet} table (${declarefields.join(',')},jskey nvarchar(50),BID nvarchar(50) ) + declare @${sheet} table (${declarefields.join(',')},jskey nvarchar(50),BID nvarchar(50) ) Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512) Select @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}' ${_initCustomScript} ` - _sqlInsert = `Insert into @${item.sheet} (${fields},jskey,BID)` + _sqlInsert = `Insert into @${sheet} (${fields},jskey,BID)` _sqlBottom = ` /* 榛樿sql */ delete tmp_excel_in where upid=@upid@ @@ -939,7 +971,7 @@ ${_prevCustomScript} ${_insert} ${_backCustomScript} - Delete @${item.sheet} + Delete @${sheet} aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` @@ -953,12 +985,12 @@ ${_sqlBottom} ` fsql = fsql.replace(/\n\s{8}/ig, '\n') - console.log(fsql) + console.info(fsql) } } else { // s_sDataDictb_excelIn 浜戠瀵嗛挜楠岃瘉鍙傛暟 _sql = ` /* 绯荤粺鐢熸垚 */ - declare @${item.sheet} table (jskey nvarchar(50)) + declare @${sheet} table (jskey nvarchar(50)) Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512) Select @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}' @@ -984,11 +1016,11 @@ * @return {String} type 鎵ц绫诲瀷 * @return {String} table 琛ㄥ悕 */ - static getSysDefaultSql (btn, setting, formdata, param, data, logcolumns, tab) { + static getSysDefaultSql (btn, setting, formdata, param, data, columns, tab, retmsg) { let primaryId = param.ID let BID = param.BID let verify = btn.verify || {} - let _formFieldValue = {} + let datavars = {} // 澹版槑鐨勫彉閲忥紝琛ㄥ崟鍙婃樉绀哄垪 let _actionType = null let appkey = window.GLOB.appkey || '' let sessionUid = localStorage.getItem('SessionUid') || '' @@ -1023,106 +1055,99 @@ }) // 闇�瑕佸0鏄庣殑鍙橀噺闆� - // let _vars = ['tbid', 'ErrorCode', 'retmsg', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'UserName', 'FullName', 'ID', 'BID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey'] let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode'] // 涓婚敭瀛楁 let primaryKey = setting.primaryKey || 'id' - // 绯荤粺鍙橀噺澹版槑涓庤缃垵濮嬪�� - let _sql = `/* 绯荤粺鐢熸垚 */ - Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@ModularDetailCode nvarchar(50) - ` + // sql璇彞 + let _sql = '' - // let _initvars = ['ID', 'BID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey'] // 宸茶祴鍊煎瓧娈甸泦 let _initvars = [] // 宸茶祴鍊煎瓧娈甸泦 - let _initfields = [] + let _initFormfields = [] + let _initColfields = [] let _declarefields = [] // 鑾峰彇瀛楁閿�煎 - if (formdata) { - formdata.forEach(form => { - if (form.type === 'text') { // 鐗规畩瀛楁鏇挎崲 - form.value = form.value.replace(/^(\s*)@appkey@(\s*)$/ig, appkey) - form.value = form.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, sessionUid) - form.value = form.value.replace(/^(\s*)@bid@(\s*)$/ig, BID) - } + formdata && formdata.forEach(form => { + if (form.type === 'text' && form.value) { // 鐗规畩瀛楁鏇挎崲 + form.value = form.value.replace(/^(\s*)@appkey@(\s*)$/ig, appkey) + form.value = form.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, sessionUid) + form.value = form.value.replace(/^(\s*)@bid@(\s*)$/ig, BID) + } - _formFieldValue[form.key] = form.value - let _key = form.key.toLowerCase() + let _key = form.key.toLowerCase() + datavars[_key] = form.value - if (!_initvars.includes(_key)) { - _initvars.push(_key) + if (!_initvars.includes(_key)) { + _initvars.push(_key) - if (form.type === 'number') { - let val = form.value - if (typeof(val) !== 'number') { - val = parseFloat(val) - if (isNaN(val)) { - val = 0 - } + if (form.type === 'number') { + let val = form.value + if (typeof(val) !== 'number') { + val = parseFloat(val) + if (isNaN(val)) { + val = 0 } - _initfields.push(`@${_key}=${val}`) - } else { - _initfields.push(`@${_key}='${form.value}'`) } + _initFormfields.push(`@${_key}=${val}`) + } else { + _initFormfields.push(`@${_key}='${form.value}'`) } - - if (!_vars.includes(_key)) { - _vars.push(_key) + } + + if (!_vars.includes(_key)) { + _vars.push(_key) - if (form.fieldlen && form.fieldlen > 2048) { - form.fieldlen = 'max' - } - - let _type = `nvarchar(${form.fieldlen})` - - if (form.type.match(/date/ig)) { - _type = 'datetime' - } else if (form.type === 'number') { - _type = `decimal(18,${form.fieldlen})` - } - - _declarefields.push(`@${_key} ${_type}`) + if (form.fieldlen && form.fieldlen > 2048) { + form.fieldlen = 'max' } + + let _type = `nvarchar(${form.fieldlen})` + + if (form.type.match(/date/ig)) { + _type = 'datetime' + } else if (form.type === 'number') { + _type = `decimal(18,${form.fieldlen})` + } + + _declarefields.push(`@${_key} ${_type}`) + } + }) + + if (data) { + Object.keys(data).forEach(key => { + data[key.toLowerCase()] = data[key] }) } // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃) if (data && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce') { - _formFieldValue = {...data, ..._formFieldValue} + datavars = {...data, ...datavars} - if (logcolumns && logcolumns.length > 0) { - logcolumns.forEach(col => { - let _key = col.field.toLowerCase() + const setField = (col) => { + if (!col.field) return + let _key = col.field.toLowerCase() - if (!_initvars.includes(_key)) { - _initvars.push(_key) + if (!_initvars.includes(_key)) { + let _val = datavars.hasOwnProperty(_key) ? datavars[_key] : '' - let _val = data.hasOwnProperty(col.field) ? data[col.field] : '' + _initvars.push(_key) + _initColfields.push(`@${_key}='${_val}'`) + } + + if (!_vars.includes(_key)) { + _vars.push(_key) - if (col.type === 'number') { - if (typeof(_val) !== 'number') { - _val = parseFloat(_val) - if (isNaN(_val)) { - _val = 0 - } - } - _initfields.push(`@${_key}=${_val}`) - } else { - _initfields.push(`@${_key}='${_val}'`) - } - } - - if (!_vars.includes(_key)) { - _vars.push(_key) - + if (col.datatype) { + _declarefields.push(`@${_key} ${col.datatype}`) + } else { if (col.fieldlength && col.fieldlength > 2048) { col.fieldlength = 'max' } let _type = `nvarchar(${col.fieldlength || 50})` - + if (col.type === 'number') { let _length = col.decimal ? col.decimal : 0 _type = `decimal(18,${_length})` @@ -1132,6 +1157,18 @@ _declarefields.push(`@${_key} ${_type}`) } + } + } + + if (columns && columns.length > 0) { + columns.forEach(col => { + if (col.type === 'colspan' || col.type === 'old_colspan') { + col.subcols.forEach(cell => { + setField(cell) + }) + } else { + setField(col) + } }) } } @@ -1139,17 +1176,24 @@ // 鍙橀噺澹版槑 _declarefields = _declarefields.join(',') if (_declarefields) { - _sql = `/* 绯荤粺鐢熸垚 */ - Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@ModularDetailCode nvarchar(50),${_declarefields} - ` + _declarefields = ',' + _declarefields } + _sql = `/* 绯荤粺鐢熸垚 */ + Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@ModularDetailCode nvarchar(50)${_declarefields} + ` - // 鍙橀噺璧嬪�� - _initfields = _initfields.join(',') - if (_initfields) { + // 琛ㄥ崟鍙橀噺璧嬪�� + if (_initFormfields.length > 0) { _sql += ` - - select ${_initfields} + /* 琛ㄥ崟鍙橀噺璧嬪�� */ + select ${_initFormfields.join(',')} + ` + } + // 鏄剧ず鍒楀彉閲忚祴鍊� + if (_initColfields.length > 0) { + _sql += ` + /* 鏄剧ず鍒楀彉閲忚祴鍊� */ + select ${_initColfields.join(',')} ` } @@ -1187,9 +1231,18 @@ // 鍚敤璐︽湡楠岃瘉 if (verify.accountdate === 'true') { + let orgcode = `''` + let date = `''` + if (verify.accountfield && _initvars.includes(verify.accountfield.toLowerCase())) { + orgcode = '@' + verify.accountfield + } + if (verify.voucherdate && _initvars.includes(verify.voucherdate.toLowerCase())) { + date = '@' + verify.voucherdate + } + _sql += ` /* 璐︽湡楠岃瘉 */ - exec s_FIBVoucherDateCheck @ErrorCode=@ErrorCode OUTPUT,@retmsg=@retmsg OUTPUT + exec s_FIBVoucherDateCheck @OrgCode=${orgcode},@FIBVoucherDate=${date},@ErrorCode=@ErrorCode OUTPUT,@retmsg=@retmsg OUTPUT if @ErrorCode!='' GOTO aaa ` @@ -1266,23 +1319,30 @@ // 鍗曞彿鐢熸垚锛屼娇鐢ㄤ笂绾d锛圔ID锛夋垨鍒楄〃鏁版嵁锛屽0鏄庡彉閲忥紙妫�楠岋級 let _billcodesSql = '' - if (verify.billcodes && verify.billcodes.length > 0) { + if (formdata && verify.billcodes && verify.billcodes.length > 0) { + let keys = formdata.map(item => item.key.toLowerCase()) // 琛ㄥ崟瀛楁 + verify.billcodes.forEach(item => { + let _key = item.field.toLowerCase() + let _linkKey = item.linkField ? item.linkField.toLowerCase() : '' + + if (!keys.includes(_key)) return // 琛ㄥ崟涓笉鍚崟鍙风敓鎴愬瓧娈� + let _ModularDetailCode = '' let _lpline = '' if (item.TypeCharOne === 'Lp') { - if (item.linkField === 'BID' && BID) { // 鏇挎崲bid + if (_linkKey === 'bid' && BID) { // 鏇挎崲bid _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@BID@,48)` } else { - _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@${item.linkField},48)` + _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@${_linkKey},48)` } _ModularDetailCode = '@ModularDetailCode' } else if (item.TypeCharOne === 'BN') { let _val = '' - if (item.linkField === 'BID' && BID) { // 鏇挎崲bid + if (_linkKey === 'bid' && BID) { // 鏇挎崲bid _val = BID - } else if (data && data.hasOwnProperty(item.linkField)) { - _val = data[item.linkField] + } else if (data && data.hasOwnProperty(_linkKey)) { + _val = data[_linkKey] } _ModularDetailCode = `'${item.TypeCharOne + _val}'` } else { @@ -1290,7 +1350,6 @@ } let _declare = '' - let _key = item.field.toLowerCase() if (!_vars.includes(_key)) { _declare = `Declare @${_key} nvarchar(50)` @@ -1323,12 +1382,6 @@ // 鍞竴鎬ч獙璇侊紝蹇呴』瀛樺湪琛ㄥ崟锛堣〃鍗曞瓨鍦ㄦ椂锛屼富閿潎涓哄崟鍊硷級,蹇呴』濉啓鏁版嵁婧愶紝澶氳鎷兼帴鏃朵笉鍙敤 if (formdata && verify.uniques && verify.uniques.length > 0 && btn.Ot !== 'requiredOnce') { - let hasBid = false // 妫�楠岃〃鍗曞強鍒楀瓧娈典腑鏄惁鏈塨id - let _keys_ = Object.keys(_formFieldValue).map(key => key.toLowerCase()) - if (_keys_.includes('bid')) { - hasBid = true - } - verify.uniques.forEach(item => { let _fieldValue = [] // 琛ㄥ崟閿�煎field=value let _value = [] // 琛ㄥ崟鍊硷紝鐢ㄤ簬閿欒鎻愮ず @@ -1336,20 +1389,22 @@ let arr = [] // 楠岃瘉涓婚敭 item.field.split(',').forEach((_field, index) => { - let _fval = `'${_formFieldValue[_field]}'` + let _key = _field.toLowerCase() + let _val = datavars[_key] !== undefined ? datavars[_key] : '' + let _fval = `'${_val}'` - if (_field.toLowerCase() === 'bid' && !hasBid) { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 + if (_key === 'bid' && !datavars.bid) { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 _fval = '@BID@' } - if (_field.toLowerCase() === 'bid' && tab && tab.foreignKey) { + if (_key === 'bid' && tab && tab.foreignKey) { arr.push(tab.foreignKey.toLowerCase()) _fieldValue.push(`${tab.foreignKey}=${_fval}`) } else { - arr.push(_field.toLowerCase()) - _fieldValue.push(`${_field}=${_fval}`) + arr.push(_key) + _fieldValue.push(`${_key}=${_fval}`) } - _value.push(`${_labels[index] || ''}锛�${_formFieldValue[_field] || ''}`) + _value.push(`${_labels[index] || ''}锛�${_val || ''}`) }) let _verifyType = '' @@ -1416,7 +1471,7 @@ _sql += ` /* 鍒涘缓鍑瘉 */ exec s_BVoucher_Create - @Bill ='${data[_voucher.linkField]}', + @Bill ='${data[_voucher.linkField.toLowerCase()]}', @BVoucherType ='${_voucher.BVoucherType}', @VoucherTypeOne ='${_voucher.VoucherTypeOne}', @VoucherTypeTwo ='${_voucher.VoucherTypeTwo}', @@ -1441,9 +1496,10 @@ formdata.forEach(item => { if (item.writein === false) return + let _key = item.key.toLowerCase() - keys.push(item.key.toLowerCase()) - values.push('@' + item.key) + keys.push(_key) + values.push('@' + _key) }) if (!keys.includes(primaryKey.toLowerCase())) { @@ -1464,13 +1520,13 @@ } if (!keys.includes('bid')) { if (tab && tab.foreignKey && !keys.includes(tab.foreignKey.toLowerCase())) { - keys.push(tab.foreignKey) + keys.push(tab.foreignKey.toLowerCase()) } else { keys.push('bid') } values.push('@BID@') } else if (tab && tab.foreignKey && !keys.includes(tab.foreignKey.toLowerCase())) { - keys.push(tab.foreignKey) + keys.push(tab.foreignKey.toLowerCase()) values.push('@BID@') } @@ -1486,9 +1542,10 @@ formdata.forEach(item => { if (item.writein === false) return + let _key = item.key.toLowerCase() - _arr.push(item.key.toLowerCase()) - _form.push(item.key + '=@' + item.key) + _arr.push(_key) + _form.push(_key + '=@' + _key) }) if (_actionType === 'audit') { @@ -1553,10 +1610,10 @@ } else if (_actionType === 'delete') { // 鐗╃悊鍒犻櫎 let _msg = '' - if (data && logcolumns && logcolumns.length > 0) { + if (data && columns && columns.length > 0) { let _index = 0 - logcolumns.forEach(col => { - if (col.Hide !== 'true' && _index < 4) { + columns.forEach(col => { + if (col.Hide !== 'true' && col.type !== 'colspan' && col.type !== 'old_colspan' && _index < 4) { _msg += col.label + '=' + data[col.field] + ',' _index++ } @@ -1593,12 +1650,18 @@ _sql += _backCustomScript } - _sql += ` - aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` + if (retmsg) { + _sql += ` + aaa: if @ErrorCode!='' + insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@` + } else { + _sql += ` + aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` + } if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { _sql = _sql.replace(/\n\s{8}/ig, '\n') - console.log(_sql) + console.info(_sql) } return _sql -- Gitblit v1.8.0