From c7df940632b5f238f524da651fbf27a91ff6ad36 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 26 十月 2020 16:54:46 +0800 Subject: [PATCH] 2020-10-26 --- src/utils/utils.js | 129 ++++++++++++++++++++++-------------------- 1 files changed, 67 insertions(+), 62 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index 31c3abf..02e850e 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -161,9 +161,9 @@ 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鍔犲瘑 + // encode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛� value = window.btoa(window.encodeURIComponent(value)) // 鎻掑叆瀛楃 let index = Math.floor(value.length / 2) @@ -668,8 +668,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 +687,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})` } return { @@ -710,6 +713,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 +882,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 +891,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 +922,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 +945,7 @@ ${_prevCustomScript} ${_insert} ${_backCustomScript} - Delete @${item.sheet} + Delete @${sheet} aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` @@ -958,7 +964,7 @@ } 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}' @@ -1023,70 +1029,64 @@ }) // 闇�瑕佸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 _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.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() + _formFieldValue[form.key] = form.value + let _key = form.key.toLowerCase() - 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}'`) } + _initfields.push(`@${_key}=${val}`) + } else { + _initfields.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 && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce') { @@ -1139,10 +1139,11 @@ // 鍙橀噺澹版槑 _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(',') @@ -1266,8 +1267,12 @@ // 鍗曞彿鐢熸垚锛屼娇鐢ㄤ笂绾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 => { + if (!keys.includes(item.field.toLowerCase())) return // 琛ㄥ崟涓笉鍚崟鍙风敓鎴愬瓧娈� + let _ModularDetailCode = '' let _lpline = '' if (item.TypeCharOne === 'Lp') { -- Gitblit v1.8.0