| | |
| | | for (let i = 0; i < 6; i++) { |
| | | name.push(_options.substr(Math.floor(Math.random() * 26), 1)) |
| | | } |
| | | name.splice(3, 0, new Date().getTime()) |
| | | return name.join('') |
| | | } |
| | | |
| | |
| | | {key: 'sys.', reg: /(^|\s)sys\./ig}, |
| | | {key: 'kill', reg: /(^|\s)kill\s/ig} |
| | | ] |
| | | |
| | | |
| | | if (type === 'customscript') { |
| | | chars = chars.filter(char => !['insert', 'delete', 'update', 'set', 'if', 'exec'].includes(char.key)) |
| | | } |
| | | |
| | | let error = '' |
| | | |
| | | sql = sql.replace(/sys\.fn_sqlvarbasetostr\(HashBytes\('MD5'/ig, '') // 跳过MD5加密 |
| | | |
| | | chars.forEach(char => { |
| | | if (!error && char.reg.test(sql)) { |
| | | error = char.key |
| | |
| | | value = value.replace(/%/ig, ' mpercent ') |
| | | // 外联数据库替换 |
| | | if (window.GLOB.externalDatabase !== null) { |
| | | value = value.replace(/@db@/ig, `[${window.GLOB.externalDatabase}]..`) |
| | | value = value.replace(/@db@/ig, window.GLOB.externalDatabase) |
| | | } |
| | | // encode编码(中文字符超出base64加密范围) |
| | | value = window.btoa(window.encodeURIComponent(value)) |
| | |
| | | value = window.btoa(value) |
| | | |
| | | return value |
| | | } |
| | | |
| | | /** |
| | | * @description 解密 |
| | | * @return {String} value |
| | | */ |
| | | static UnformatOptions (value) { |
| | | if (!value) return '' |
| | | let salt = 'minKe' // 盐值 |
| | | let _value = '' |
| | | |
| | | try { |
| | | try { |
| | | _value = JSON.parse(window.decodeURIComponent(window.atob(value))) |
| | | } catch { |
| | | _value = '' |
| | | } |
| | | |
| | | if (!_value) { |
| | | _value = window.atob(value) |
| | | _value = _value.replace(salt, '') |
| | | _value = window.decodeURIComponent(window.atob(_value)) |
| | | |
| | | _value = _value.replace(/\smpercent\s/g, '%') |
| | | |
| | | formatKeys.forEach(item => { |
| | | let reg = new RegExp(item.value, 'g') |
| | | _value = _value.replace(reg, ' ' + item.key + ' ') |
| | | }) |
| | | |
| | | _value = _value.replace(/\s\n\s/ig, '\n') |
| | | _value = _value.replace(/(^\s+|\s+$)/ig, '') |
| | | } |
| | | } catch { |
| | | console.warn('UnFormat Failure') |
| | | _value = '' |
| | | } |
| | | |
| | | return _value |
| | | } |
| | | |
| | | /** |
| | |
| | | value = value.replace(/%/ig, ' mpercent ') |
| | | // 外联数据库替换 |
| | | if (window.GLOB.externalDatabase !== null) { |
| | | value = value.replace(/@db@/ig, `[${window.GLOB.externalDatabase}]..`) |
| | | value = value.replace(/@db@/ig, window.GLOB.externalDatabase) |
| | | } |
| | | |
| | | let encodesql = (val) => { |
| | |
| | | if (process.env.NODE_ENV === 'production') { |
| | | baseurl = document.location.origin + '/' + window.GLOB.service |
| | | } else { |
| | | baseurl = window.GLOB.location + window.GLOB.service |
| | | baseurl = window.GLOB.location + '/' + window.GLOB.service |
| | | } |
| | | |
| | | let realurl = url.match(/^http/) || url.match(/^\/\//) ? url : baseurl + url |
| | |
| | | * @return {String} type 执行类型 |
| | | * @return {String} table 表名 |
| | | */ |
| | | static getSysDefaultSql (btn, setting, formdata, param, data, columns, tab) { |
| | | static getSysDefaultSql (btn, setting, formdata, param, data, columns, tab, retmsg) { |
| | | let primaryId = param.ID |
| | | let BID = param.BID |
| | | let verify = btn.verify || {} |
| | |
| | | |
| | | // 获取字段键值对 |
| | | formdata && formdata.forEach(form => { |
| | | if (form.type === 'text') { // 特殊字段替换 |
| | | if (form.type === 'text' && form.value) { // 特殊字段替换 |
| | | 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) |
| | |
| | | _sql += _backCustomScript |
| | | } |
| | | |
| | | _sql += ` |
| | | aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` |
| | | if (retmsg) { |
| | | _sql += ` |
| | | aaa: if @ErrorCode!='' |
| | | insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@` |
| | | } else { |
| | | _sql += ` |
| | | aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` |
| | | } |
| | | |
| | | if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { |
| | | _sql = _sql.replace(/\n\s{8}/ig, '\n') |