| | |
| | | } |
| | | |
| | | 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') { |
| | |
| | | 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}) |
| | | } |
| | | }) |
| | | } |
| | |
| | | type: item.type, |
| | | isconst: item.constant === 'true' |
| | | } |
| | | |
| | | |
| | | if (_item.type === 'datemonth') { |
| | | _item.type = 'text' |
| | | } else if (_item.type === 'number' || _item.type === 'rate') { |
| | |
| | | item.field.split(',').forEach((_field, index) => { |
| | | let _key = _field.toLowerCase() |
| | | let _val = '' |
| | | let _val2 = '' |
| | | |
| | | arr.push(_key) |
| | | if (_key === 'bid') { // 表单中没有bid则使用系统bid变量 |
| | |
| | | } |
| | | |
| | | _fieldValue.push(`${_key}=${_val}`) |
| | | _value.push(`${_labels[index] || ''}:${_val || ''}`) |
| | | |
| | | if (_key === 'bid') { // 表单中没有bid则使用系统bid变量 |
| | | _val2 = `' + ${BID} + '` |
| | | } else { |
| | | _val2 = `@mk_${_key}_mk@` |
| | | } |
| | | |
| | | _value.push(`${_labels[index] || ''}:${_val2}`) |
| | | }) |
| | | |
| | | if (!arr.includes(primaryKey.toLowerCase())) { |
| | |
| | | let _key = item.key.toLowerCase() |
| | | |
| | | keys.push(_key) |
| | | values.push('@mk_' + _key + '_mk@') |
| | | values.push('@' + _key) |
| | | }) |
| | | |
| | | if (!keys.includes(primaryKey.toLowerCase())) { |
| | |
| | | let _key = item.key.toLowerCase() |
| | | |
| | | _arr.push(_key) |
| | | _form.push(_key + '=@mk_' + _key + '_mk@') |
| | | _form.push(_key + '=@' + _key) |
| | | }) |
| | | |
| | | if (_actionType === 'audit') { |
| | |
| | | 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) |
| | | |
| | |
| | | return true |
| | | }) |
| | | |
| | | colreps = Array.from(new Set(colreps)) |
| | | reps = [...reps, ...colreps] |
| | | |
| | | return { LText: _sql, md5: md5(_sql), reps } |
| | |
| | | ` |
| | | } |
| | | |
| | | let testSql = _prev + _back |
| | | let testSql = _prev + _back + (btn.output || '') |
| | | |
| | | // 添加数据中字段,表单值优先(按钮不选行或多行拼接时跳过) |
| | | if (btn.Ot !== 'notRequired' && columns.length > 0) { |
| | |
| | | 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) |
| | | |
| | |
| | | // 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 |
| | |
| | | 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} */ |
| | |
| | | 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 |
| | | ` |
| | | } |
| | | |
| | |
| | | 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) |
| | | |
| | |
| | | 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) |
| | | |