From 01a88094eaa183714ed7490ca7b85fee1e7bb064 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 20 五月 2023 23:03:41 +0800 Subject: [PATCH] 2023-05-20 --- src/utils/utils.js | 88 ++++++++++++++++++++++++++----------------- 1 files changed, 53 insertions(+), 35 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index 1a78fdb..630fc57 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -142,19 +142,19 @@ static verifySql (sql, type) { if (!sql) return '' let chars = [ - {key: 'create', reg: /(^|\s)create\s/ig}, - {key: 'insert', reg: /(^|\s)insert\s/ig}, - {key: 'delete', reg: /(^|\s)delete\s/ig}, - {key: 'update', reg: /(^|\s)update\s/ig}, - {key: 'set', reg: /(^|\s)set\s/ig}, - {key: 'drop', reg: /(^|\s)drop\s/ig}, - {key: 'alter', reg: /(^|\s)alter\s/ig}, - {key: 'truncate', reg: /(^|\s)truncate\s/ig}, - {key: 'if', reg: /(^|\s)if\s/ig}, - {key: 'exec', reg: /(^|\s)exec(\s|\()/ig}, - {key: 'OBJECT', reg: /(^|\s)object(\s|\()/ig}, - {key: 'sys.', reg: /(^|\s)sys\./ig}, - {key: 'kill', reg: /(^|\s)kill\s/ig} + {key: 'create', reg: /(^|\s|\(|\))create\s/ig}, + {key: 'insert', reg: /(^|\s|\(|\))insert\s/ig}, + {key: 'delete', reg: /(^|\s|\(|\))delete\s/ig}, + {key: 'update', reg: /(^|\s|\(|\))update\s/ig}, + {key: 'set', reg: /(^|\s|\(|\))set\s/ig}, + {key: 'drop', reg: /(^|\s|\(|\))drop\s/ig}, + {key: 'alter', reg: /(^|\s|\(|\))alter\s/ig}, + {key: 'truncate', reg: /(^|\s|\(|\))truncate\s/ig}, + {key: 'if', reg: /(^|\s|\(|\))if\s/ig}, + {key: 'exec', reg: /(^|\s|\(|\))exec(\s|\()/ig}, + {key: 'OBJECT', reg: /(^|\s|\(|\))object(\s|\()/ig}, + {key: 'sys.', reg: /(^|\s|\(|\))sys\./ig}, + {key: 'kill', reg: /(^|\s|\(|\))kill\s/ig} ] if (type === 'customscript') { @@ -808,6 +808,8 @@ } if (['select', 'radio', 'link', 'checkcard'].includes(item.type) && item.linkSubField && item.linkSubField.length > 0) { arrfield.push(...item.linkSubField) + } else if (item.type === 'text' && item.editType === 'select' && item.linkSubField && item.linkSubField.length > 0) { // 鍙紪杈戣〃 + arrfield.push(...item.linkSubField) } if (item.disableField) { arrfield.push(item.disableField) @@ -962,7 +964,11 @@ val = val.toString() } - val = val.replace(/(^\s*$)|\t*|\v*|'*/ig, '') + if (/'/.test(val)) { + val = val.replace(/'/ig, '"') + } + + val = val.replace(/(^\s*$)|\t*|\v*/ig, '') if (!val && col.required === 'true') { // 蹇呭~鏍¢獙 errors.push(_position + '鍐呭涓嶅彲涓虹┖') @@ -1066,14 +1072,14 @@ let _uniquesql = '' if (btn.uniques && btn.uniques.length > 0) { btn.uniques.forEach(unique => { - if (unique.status === 'false') return + if (unique.status === 'false' || !unique.verifyType) return let _fields = unique.field.split(',') let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`) let _afields = _fields.map(_field => `a.${_field}`) _fields_ = _fields_.join(' and ') - if (unique.verifyType !== 'physical') { + if (unique.verifyType === 'logic' || unique.verifyType === 'logic_temp') { _fields_ += ' and b.deleted=0' } @@ -1088,14 +1094,14 @@ goto aaa end - Set @tbid='' + ${unique.verifyType.indexOf('temp') === -1 ? `Set @tbid='' Select top 1 @tbid=${_afields.join('+\' \'+')} from @${sheet} a Inner join ${sheet} b on ${_fields_} If @tbid!='' Begin select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 涓庡凡鏈夋暟鎹噸澶�' goto aaa - end + end` : ''} ` }) } @@ -1287,14 +1293,14 @@ let _uniquesql = '' if (btn.uniques && btn.uniques.length > 0) { btn.uniques.forEach(unique => { - if (unique.status === 'false') return + if (unique.status === 'false' || !unique.verifyType) return let _fields = unique.field.split(',') let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`) let _afields = _fields.map(_field => `a.${_field}`) _fields_ = _fields_.join(' and ') - if (unique.verifyType !== 'physical') { + if (unique.verifyType === 'logic' || unique.verifyType === 'logic_temp') { _fields_ += ' and b.deleted=0' } @@ -1309,14 +1315,14 @@ goto aaa end - Set @tbid='' + ${unique.verifyType.indexOf('temp') === -1 ? `Set @tbid='' Select top 1 @tbid=${_afields.join('+\' \'+')} from @${sheet} a Inner join ${sheet} b on ${_fields_} If @tbid!='' Begin select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 涓庡凡鏈夋暟鎹噸澶�' goto aaa - end + end` : ''} ` }) } @@ -1449,7 +1455,7 @@ }) // 闇�瑕佸0鏄庣殑鍙橀噺闆� - let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'bid'] + let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'mk_deleted', 'bid'] // 涓婚敭瀛楁 let primaryKey = setting.primaryKey || 'id' @@ -1469,17 +1475,24 @@ if (!_initvars.includes(_key)) { _initvars.push(_key) + let val = form.value if (form.type === 'number' || form.type === 'rate') { - let val = form.value if (isNaN(val)) { val = 0 } _initFormfields.push(`@${_key}=${val}`) } else if (['date', 'datemonth'].includes(form.type)) { - _initFormfields.push(`@${_key}='${form.value || '1949-10-01'}'`) + _initFormfields.push(`@${_key}='${val || '1949-10-01'}'`) } else { - _initFormfields.push(`@${_key}='${form.value}'`) + if (/'/.test(val)) { + val = val.replace(/'/ig, '"') + } + if (form.isconst) { + _initFormfields.push(`@${_key}=N'${val}'`) + } else { + _initFormfields.push(`@${_key}='${val}'`) + } } } @@ -1504,15 +1517,16 @@ } }) + let _data = {} if (data) { Object.keys(data).forEach(key => { - data[key.toLowerCase()] = data[key] + _data[key.toLowerCase()] = data[key] }) } // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃) if (data && btn.Ot !== 'notRequired' && columns && columns.length > 0) { - datavars = {...data, ...datavars} + datavars = {..._data, ...datavars} const setField = (col) => { if (!col.field) return @@ -1523,6 +1537,10 @@ if (col.datatype && /^date/ig.test(col.datatype) && !_val) { _val = '1949-10-01' + } + + if (/'/.test(_val)) { + _val = _val.replace(/'/ig, '"') } _initvars.push(_key) @@ -1570,7 +1588,7 @@ _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),@ModularDetailCode nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@bid nvarchar(50)${_declarefields} + Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50),@ModularDetailCode nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@mk_deleted int,@bid nvarchar(50)${_declarefields} ` let userName = sessionStorage.getItem('User_Name') || '' @@ -1593,7 +1611,7 @@ // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁 _sql += ` /* 鍑瘉鍙婄敤鎴蜂俊鎭垵濮嬪寲璧嬪�� */ - select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}', @bid='${BID}', @BillCode='', @ModularDetailCode='' + select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}', @mk_deleted=1, @bid='${BID}', @BillCode='', @ModularDetailCode='' ` // 琛ㄥ崟鍙橀噺璧嬪�� @@ -1707,7 +1725,7 @@ /* 澶辨晥楠岃瘉 */ select @tbid='', @ErrorCode='',@retmsg='' select @tbid='X' from ${datasource} right join (select ID from dbo.SplitComma(@ID@)) sp - on tb.id =sp.id where tb.id is null + on tb.${primaryKey} =sp.id where tb.${primaryKey} is null If @tbid!='' Begin @@ -1781,8 +1799,8 @@ let _val = '' if (_linkKey === 'bid' && BID) { // 鏇挎崲bid _val = BID - } else if (data && data.hasOwnProperty(_linkKey)) { - _val = data[_linkKey] + } else if (_data.hasOwnProperty(_linkKey)) { + _val = _data[_linkKey] } _ModularDetailCode = `'${item.TypeCharOne + _val}'` } else { @@ -1911,7 +1929,7 @@ _sql += ` /* 鍒涘缓鍑瘉 */ exec s_BVoucher_Create - @Bill ='${data[_voucher.linkField.toLowerCase()]}', + @Bill ='${_data[_voucher.linkField.toLowerCase()]}', @BVoucherType ='${_voucher.BVoucherType}', @VoucherTypeOne ='${_voucher.VoucherTypeOne}', @VoucherTypeTwo ='${_voucher.VoucherTypeTwo}', @@ -2066,7 +2084,7 @@ _sql += ` /* 榛樿sql */ - update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifystaff=@fullname,modifyuserid=@userid@ where ${primaryKey}${_ID};` + update ${btn.sql} set deleted=@mk_deleted,modifydate=getdate(),modifyuser=@username,modifystaff=@fullname,modifyuserid=@userid@ where ${primaryKey}${_ID};` } else if (_actionType === 'delete') { // 鐗╃悊鍒犻櫎 let _msg = '' -- Gitblit v1.8.0