| | |
| | | |
| | | import md5 from 'md5' |
| | | import { getSearchRegs, joinMainSearchkey } from '@/utils/utils-custom.js' |
| | | |
| | | export default class SettingUtils { |
| | |
| | | * @return {Object} setting 页面设置 |
| | | * @return {Array} columns 显示字段 |
| | | */ |
| | | static getDebugSql (setting, scripts, columns, searches = [], type) { |
| | | static getDebugSql (setting, scripts, columns, searches = [], type, hasExtend) { |
| | | let sql = '' |
| | | let error = '' |
| | | let _dataresource = '' |
| | |
| | | if (setting.interType === 'system' && setting.execute !== 'false') { |
| | | _dataresource = setting.dataresource || '' |
| | | } |
| | | |
| | | if (/\s/.test(_dataresource)) { |
| | | _dataresource = '(' + _dataresource + ') tb' |
| | | } |
| | | |
| | | if (window.GLOB.funcs && window.GLOB.funcs.length > 0) { |
| | | window.GLOB.funcs.forEach(item => { |
| | | let reg = new RegExp('\\$ex@' + item.func_code + '@ex\\$', 'ig') |
| | | _dataresource = _dataresource.replace(reg, `/*$ex@${item.func_code}-begin*/\n${item.key_sql}\n/*@ex$-end*/`) |
| | | _customScript = _customScript.replace(reg, `/*$ex@${item.func_code}-begin*/\n${item.key_sql}\n/*@ex$-end*/`) |
| | | }) |
| | | } |
| | | |
| | | let getuuid = () => { |
| | | let uuid = [] |
| | | let timestamp = new Date().getTime() |
| | | let _options = '0123456789abcdefghigklmnopqrstuv' |
| | | for (let i = 0; i < 19; i++) { |
| | | uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1)) |
| | | } |
| | | uuid = timestamp + uuid.join('') |
| | | return uuid |
| | | } |
| | | // if (window.GLOB.funcs && window.GLOB.funcs.length > 0) { |
| | | // window.GLOB.funcs.forEach(item => { |
| | | // let reg = new RegExp('\\$ex@' + item.func_code + '@ex\\$', 'ig') |
| | | // _dataresource = _dataresource.replace(reg, `/*$ex@${item.func_code}-begin*/\n${item.key_sql}\n/*@ex$-end*/`) |
| | | // _customScript = _customScript.replace(reg, `/*$ex@${item.func_code}-begin*/\n${item.key_sql}\n/*@ex$-end*/`) |
| | | // }) |
| | | // } |
| | | |
| | | let regs = [ |
| | | {reg: /@time_id@/ig, value: `'${getuuid()}'`}, |
| | | {reg: /@BID@/ig, value: `'${getuuid()}'`}, |
| | | {reg: /@upid@/ig, value: `'${getuuid()}'`}, |
| | | // {reg: /@time_id@/ig, value: `'${getuuid()}'`}, // 计算md5后替换 |
| | | // {reg: /@BID@/ig, value: `'${getuuid()}'`}, |
| | | // {reg: /@upid@/ig, value: `'${getuuid()}'`}, |
| | | {reg: /@typename@/ig, value: `'debug'`}, |
| | | {reg: /@datam@/ig, value: `''`}, |
| | | {reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID')}'`}, |
| | | {reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid')}'`}, |
| | | {reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID')}'`}, |
| | | {reg: /@Appkey@/ig, value: `'${window.GLOB.appkey}'`}, |
| | | {reg: /@lang@/ig, value: `'${sessionStorage.getItem('lang')}'`}, |
| | | {reg: /@\$|\$@/ig, value: ''}, |
| | | {reg: /@select\$|\$select@/ig, value: ''}, |
| | | {reg: /@sum\$|\$sum@/ig, value: ''}, |
| | | // {reg: /@select\$|\$select@/ig, value: ''}, |
| | | // {reg: /@sum\$|\$sum@/ig, value: ''}, |
| | | ] |
| | | |
| | | if (window.GLOB.process) { |
| | | regs.push({reg: /@works_flow_code@/ig, value: `'${getuuid()}'`}) |
| | | if (window.GLOB.process && type !== 'invoice') { |
| | | regs.push({reg: /@works_flow_code@/ig, value: `'mk_flow_code'`}) |
| | | } |
| | | |
| | | if (hasExtend) { |
| | | regs.push({reg: /@mk_time@/ig, value: `'2024-04-29 17:20:00'`}) |
| | | } |
| | | if (type === 'calendar') { |
| | | regs.push({reg: /@mk_year@/ig, value: '2024'}) |
| | | regs.push({reg: /@mk_year@/ig, value: `'2024'`}) |
| | | } |
| | | if (window.GLOB.getLocation) { |
| | | regs.push( |
| | | {reg: /@mk_longitude@/ig, value: 0}, |
| | | {reg: /@mk_latitude@/ig, value: 0} |
| | | ) |
| | | } |
| | | |
| | | // 外联数据库替换 |
| | |
| | | ` |
| | | } |
| | | |
| | | if (window.GLOB.urlFields) { |
| | | if (window.GLOB.urlFields && type !== 'invoice') { |
| | | window.GLOB.urlFields.forEach(field => { |
| | | let reg = new RegExp('@' + field + '@', 'ig') |
| | | _dataresource = _dataresource.replace(reg, `'0'`) |
| | |
| | | }) |
| | | } |
| | | |
| | | let custompage = false |
| | | |
| | | if (/order\s+by\s+sort_id\s*$/i.test(_dataresource)) { |
| | | custompage = true |
| | | } else if (/@pageSize@|@orderBy@|@mk_total/i.test(_dataresource + _customScript)) { |
| | | custompage = true |
| | | } |
| | | |
| | | if (/\s/.test(_dataresource)) { |
| | | _dataresource = '(' + _dataresource + ') tb' |
| | | } |
| | | |
| | | // 正则替换 |
| | | let custompage = /@pageSize@|@orderBy@/i.test(_dataresource + _customScript) |
| | | let _regoptions = getSearchRegs(searches) |
| | | |
| | | let _search = joinMainSearchkey(searches) |
| | |
| | | ${_dataresource}` |
| | | } |
| | | |
| | | let debugId = md5(sql + window.GLOB.appkey) |
| | | |
| | | let getuuid = () => { |
| | | let uuid = [] |
| | | let timestamp = new Date().getTime() |
| | | let _options = '0123456789abcdefghigklmnopqrstuv' |
| | | for (let i = 0; i < 19; i++) { |
| | | uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1)) |
| | | } |
| | | uuid = timestamp + uuid.join('') |
| | | return uuid |
| | | } |
| | | |
| | | let _regs = [ |
| | | {reg: /@time_id@/ig, value: `'${getuuid()}'`}, |
| | | {reg: /@BID@/ig, value: `'${getuuid()}'`}, |
| | | {reg: /@upid@/ig, value: `'${getuuid()}'`}, |
| | | ] |
| | | |
| | | _regs.forEach(item => { |
| | | sql = sql.replace(item.reg, item.value) |
| | | }) |
| | | |
| | | let errors = [] |
| | | |
| | | if (/@[0-9a-zA-Z_]+@/ig.test(sql)) { |
| | |
| | | }) |
| | | |
| | | arr.forEach(item => { |
| | | if (/@time_id@/ig.test(item)) return |
| | | |
| | | let reg = new RegExp(item, 'i') |
| | | if (reg.test(_dataresource)) { |
| | | errors.push(`数据源中存在未替换值${item}`) |
| | |
| | | }) |
| | | } |
| | | |
| | | return { error, sql, errors: errors.join(';'), custompage } |
| | | return { error, sql, errors: errors.join(';'), custompage, debugId } |
| | | } |
| | | } |