From 36276e96db8e9633f4bd68257e4c80fa0efe8c1d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 02 十月 2024 22:40:26 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/utils/utils-custom.js | 110 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 88 insertions(+), 22 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 501e159..0aa4345 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -1950,6 +1950,33 @@ } if (['exec', 'prompt', 'pop', 'form', 'formSubmit'].includes(cell.OpenType)) { + if (cell.Ot !== 'requiredOnce' && ['pop', 'form'].includes(cell.OpenType) && cell.verify && cell.verify.uniques && cell.verify.uniques.length > 0) { + let forms = ['BID'] + + if (cell.OpenType === 'form') { + forms.push(cell.field) + } else if (cell.modal && cell.modal.fields.length > 0) { + cell.modal.fields.forEach(n => { + if (!n.field) return + forms.push(n.field) + }) + } + let emptys = [] + cell.verify.uniques.forEach(m => { + if (m.status === 'false') return + + m.field.split(',').forEach(n => { + if (!forms.includes(n)) { + emptys.push(n) + } + }) + }) + + if (emptys.length) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濆敮涓�鎬ч獙璇佸瓧娈�${emptys.join('銆�')}锛屽湪琛ㄥ崟涓笉瀛樺湪锛乣}) + } + } + if (cell.OpenType === 'form' && cell.formType === 'count_line') return if (cell.intertype === 'system') { @@ -3056,7 +3083,7 @@ if (['select', 'link', 'multiselect', 'checkcard', 'radio'].includes(cell.type) && cell.resourceType === '1' && cell.dataSource) { let msg = getFormSql(cell, '鎼滅储') - sqls.push({uuid: cell.uuid, type: 'sForm', ...msg}) + sqls.push({uuid: md5(item.uuid + cell.uuid), type: 'sForm', ...msg}) } }) } @@ -3214,8 +3241,8 @@ // 鏁版嵁婧恠ql璇彞锛岄澶勭悊锛屾潈闄愰粦鍚嶅崟瀛楁璁剧疆涓洪殣钘忚〃鍗� if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(form.type) && form.resourceType === '1') { let msg = getFormSql(form, '琛ㄥ崟') - - sqls.push({uuid: form.uuid, type: 'form', ...msg}) + + sqls.push({uuid: md5(cell.uuid + form.uuid), type: 'form', ...msg}) } else if (form.type === 'popSelect') { let msg = getPopSelectSql(form) @@ -3248,7 +3275,7 @@ if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(form.type) && form.resourceType === '1') { let msg = getFormSql(form, '琛ㄥ崟') - sqls.push({uuid: form.uuid, type: 'form', ...msg}) + sqls.push({uuid: md5(cell.uuid + form.uuid), type: 'form', ...msg}) } else if (form.type === 'popSelect') { let msg = getPopSelectSql(form) @@ -3428,7 +3455,7 @@ type: item.type, isconst: item.constant === 'true' } - + if (_item.type === 'datemonth') { _item.type = 'text' } else if (_item.type === 'number' || _item.type === 'rate') { @@ -3698,6 +3725,7 @@ item.field.split(',').forEach((_field, index) => { let _key = _field.toLowerCase() let _val = '' + let _val2 = '' arr.push(_key) if (_key === 'bid') { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 @@ -3707,7 +3735,14 @@ } _fieldValue.push(`${_key}=${_val}`) - _value.push(`${_labels[index] || ''}锛�${_val || ''}`) + + if (_key === 'bid') { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 + _val2 = `' + ${BID} + '` + } else { + _val2 = `@mk_${_key}_mk@` + } + + _value.push(`${_labels[index] || ''}锛�${_val2}`) }) if (!arr.includes(primaryKey.toLowerCase())) { @@ -3797,7 +3832,7 @@ let _key = item.key.toLowerCase() keys.push(_key) - values.push('@mk_' + _key + '_mk@') + values.push('@' + _key) }) if (!keys.includes(primaryKey.toLowerCase())) { @@ -3841,7 +3876,7 @@ let _key = item.key.toLowerCase() _arr.push(_key) - _form.push(_key + '=@mk_' + _key + '_mk@') + _form.push(_key + '=@' + _key) }) if (_actionType === 'audit') { @@ -4190,8 +4225,8 @@ columns.forEach(col => { let _key = col.field.toLowerCase() - if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(_sql)) return - if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return + if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(_sql)) return + // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return colreps.push(col.field) @@ -4301,6 +4336,7 @@ return true }) + colreps = Array.from(new Set(colreps)) reps = [...reps, ...colreps] return { LText: _sql, md5: md5(_sql), reps } @@ -4447,7 +4483,7 @@ ` } - let testSql = _prev + _back + let testSql = _prev + _back + (btn.output || '') // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃) if (btn.Ot !== 'notRequired' && columns.length > 0) { @@ -4455,8 +4491,8 @@ columns.forEach(col => { let _key = col.field.toLowerCase() - if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(testSql)) return - if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(testSql)) return + if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(testSql)) return + // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(testSql)) return colreps.push(col.field) @@ -4763,7 +4799,7 @@ // SELECT @appkey@,'sPC_Get_TableData',1,@menuname@,@UserID@,@username@,@fullname@,@SessionUid@,@LoginUID@ let sql = '' - if (item.setting.transact === 'true') { + if (item.setting.transact === 'true' && !/BEGIN\s+TRY\s+begin\s+TRAN/.test(_customScript)) { sql = `/* ${item.setting.$name} */ BEGIN TRY begin TRAN @@ -4772,9 +4808,38 @@ arr_field='${arr_field}',tabid='${tabid}',parid='${parid}',sub_name='${sub_name}',sub_field='${sub_field}' ` - _tailScript += `${_tailScript} + let e_sql = `select ${_columns.map(col => col.field).join(',')} from (select ${_columns.map(col => /date/ig.test(col.datatype) ? `'1949-10-01' as ${col.field}` : `'0' as ${col.field}`).join(',')}) a where ${item.setting.primaryKey || 'ID'} != '0'` + if (DateCount) { + e_sql += ` + select 0 as total + ` + } + + _tailScript = `${_tailScript} select @ErrorCode as ErrorCode,@retmsg as retmsg - ${callback} + + COMMIT TRAN + set NOCOUNT ON + RETURN + END TRY + BEGIN CATCH + ROLLBACK TRAN + DECLARE @ErrorMessage NVARCHAR(4000); + DECLARE @ErrorSeverity INT; + DECLARE @ErrorState INT; + + set @ErrorCode=cast(ERROR_NUMBER() as nvarchar(50)) + set @retmsg=ERROR_MESSAGE(); + select @ErrorMessage=ERROR_MESSAGE(), @ErrorSeverity=ERROR_SEVERITY(), @ErrorState=ERROR_STATE(); + + RAISERROR(@ErrorMessage, @ErrorSeverity, @ErrorState); + END CATCH + + aaa: + ${e_sql} + select @ErrorCode as ErrorCode,@retmsg as retmsg + GOTO_RETURN: + ROLLBACK TRAN ` } else { sql = `/* ${item.setting.$name} */ @@ -4782,8 +4847,9 @@ arr_field='${arr_field}',tabid='${tabid}',parid='${parid}',sub_name='${sub_name}',sub_field='${sub_field}' ` - _tailScript += `${_tailScript} - select @ErrorCode as ErrorCode,@retmsg as retmsg + _tailScript = `${_tailScript} + aaa: + select @ErrorCode as ErrorCode,@retmsg as retmsg ` } @@ -5544,8 +5610,8 @@ component.columns.forEach(col => { let _key = col.field.toLowerCase() - if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(msg.LText)) return - if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(msg.LText)) return + if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(msg.LText)) return + // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(msg.LText)) return colreps.push(col.field) @@ -5631,8 +5697,8 @@ component.columns.forEach(col => { let _key = col.field.toLowerCase() - if (syses.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(_sql)) return - if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return + if (syses.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(_sql)) return + // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return colreps.push(col.field) -- Gitblit v1.8.0