| | |
| | | |
| | | import { getSearchRegs, joinMainSearchkey } from '@/utils/utils-custom.js' |
| | | |
| | | export default class SettingUtils { |
| | | /** |
| | | * @description 生成页面查询语句 |
| | |
| | | * @return {Object} setting 页面设置 |
| | | * @return {Array} columns 显示字段 |
| | | */ |
| | | static getDebugSql (setting, scripts, columns, searches = [], defSearch, type) { |
| | | static getDebugSql (setting, scripts, columns, searches = [], type) { |
| | | let sql = '' |
| | | let error = '' |
| | | let _dataresource = '' |
| | |
| | | } |
| | | |
| | | // 正则替换 |
| | | let _regoptions = [] |
| | | let _fields = [] |
| | | let custompage = /@pageSize@|@orderBy@/i.test(_dataresource + _customScript) |
| | | let _regoptions = getSearchRegs(searches) |
| | | |
| | | searches.forEach(item => { |
| | | if (!item.field) return |
| | | if (item.datefield) { |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + item.datefield + '@', 'ig') |
| | | }) |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + item.datefield + '1@', 'ig') |
| | | }) |
| | | } |
| | | if (['dateweek', 'datemonth', 'range'].includes(item.type)) { |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + item.field + '@', 'ig') |
| | | }) |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + item.field + '1@', 'ig') |
| | | }) |
| | | } else if (item.type === 'daterange') { |
| | | let _skey = item.field |
| | | let _ekey = item.field + '1' |
| | | |
| | | if (/,/.test(item.field)) { |
| | | _skey = item.field.split(',')[0] |
| | | _ekey = item.field.split(',')[1] |
| | | } |
| | | |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + _skey + '@', 'ig') |
| | | }) |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + _ekey + '@', 'ig') |
| | | }) |
| | | } else if (item.type === 'date') { |
| | | if (_fields.includes(item.field)) { |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + item.field + '1@', 'ig') |
| | | }) |
| | | } else { |
| | | _fields.push(item.field) |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + item.field + '@', 'ig') |
| | | }) |
| | | } |
| | | } else if (item.type === 'text' || item.type === 'select') { |
| | | item.field.split(',').forEach(field => { |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + field + '@', 'ig') |
| | | }) |
| | | }) |
| | | } else { |
| | | _regoptions.push({ |
| | | reg: new RegExp('@' + item.field + '@', 'ig') |
| | | }) |
| | | } |
| | | }) |
| | | let _search = joinMainSearchkey(searches) |
| | | _search = _search ? 'where ' + _search : '' |
| | | |
| | | _regoptions.push({ |
| | | reg: new RegExp('@orderBy@', 'ig'), |
| | | }, { |
| | | reg: new RegExp('@UserName@', 'ig'), |
| | | }, { |
| | | reg: new RegExp('@FullName@', 'ig'), |
| | | value: setting.order || '' |
| | | }, { |
| | | reg: new RegExp('@pageSize@', 'ig'), |
| | | value: 9999 |
| | | }, { |
| | | reg: new RegExp('@pageIndex@', 'ig'), |
| | | value: 1 |
| | | }) |
| | | |
| | | _regoptions.forEach(item => { |
| | | _dataresource = _dataresource.replace(item.reg, '0') |
| | | _customScript = _customScript.replace(item.reg, '0') |
| | | _tailScript = _tailScript.replace(item.reg, '0') |
| | | _dataresource = _dataresource.replace(item.reg, item.value || '0') |
| | | _customScript = _customScript.replace(item.reg, item.value || '0') |
| | | _tailScript = _tailScript.replace(item.reg, item.value || '0') |
| | | }) |
| | | |
| | | let _search = defSearch |
| | | |
| | | if (setting.queryType === 'statistics') { |
| | | _search = '' |