From dfb7b774d9934f4f5b3edf1a39bf73be9c90c55d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 13 十一月 2020 15:44:57 +0800 Subject: [PATCH] 移出数据表 --- src/utils/utils.js | 114 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 62 insertions(+), 52 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index b7ad801..8df4de7 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -163,6 +163,10 @@ }) // 鏇挎崲%绗︼紙鏁版嵁搴撲腑瑙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)) // 鎻掑叆瀛楃 @@ -230,6 +234,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 '' @@ -668,8 +676,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 +695,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 { @@ -1026,70 +1037,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') { @@ -1142,10 +1147,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(',') @@ -1269,8 +1275,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