| | |
| | | } |
| | | |
| | | /** |
| | | * @description sql语法验证 |
| | | * @return {String} sql sql语句 |
| | | * @return {String} type 验证类型 |
| | | */ |
| | | 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} |
| | | ] |
| | | |
| | | if (type === 'customscript') { |
| | | chars = chars.filter(char => !['create', 'insert', 'delete', 'update', 'set', 'drop', 'if', 'exec'].includes(char.key)) |
| | | } |
| | | |
| | | let error = '' |
| | | |
| | | sql = sql.replace(/sys\.fn_/ig, '') // 跳过sys.fn_验证 |
| | | |
| | | chars.forEach(char => { |
| | | if (!error && char.reg.test(sql)) { |
| | | error = char.key |
| | | } |
| | | }) |
| | | |
| | | return error |
| | | } |
| | | |
| | | /** |
| | | * @description sql加密 |
| | | * @return {String} value |
| | | */ |
| | |
| | | }) |
| | | } |
| | | } else if (/^Decimal/ig.test(col.type) || /^int/ig.test(col.type)) { |
| | | if (!val && val !== 0) { |
| | | if (col.required === 'false') { |
| | | if (!val || isNaN(val)) { |
| | | val = 0 |
| | | } |
| | | } else if (!val && val !== 0) { |
| | | errors.push(_position + '内容不可为空') |
| | | } else if (isNaN(val)) { // 检验是否为数值 |
| | | errors.push(_position + '内容应为数值') |
| | |
| | | _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`) |
| | | _sql = _sql.replace(/@typename@/ig, `'admin'`) |
| | | |
| | | if (window.GLOB.externalDatabase !== null) { |
| | | _sql = _sql.replace(/@db@/ig, window.GLOB.externalDatabase) |
| | | } |
| | | |
| | | if (sessionStorage.getItem('dataM') === 'true') { // 数据权限 |
| | | _sql = _sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, `'Y'`) |
| | | } else { |
| | |
| | | * @description 获取标记信息 |
| | | */ |
| | | export function getMark (marks, record, style) { |
| | | let res = {} |
| | | let res = {signType: ''} |
| | | |
| | | marks.some(mark => { |
| | | let originVal = record[mark.field[0]] |