king
2023-09-19 9a1416e0b5cdb40f49b3c2061b04b35551d77e99
src/menu/datasource/verifycard/utils.jsx
@@ -1,4 +1,6 @@
import { getSearchRegs, joinMainSearchkey } from '@/utils/utils-custom.js'
export default class SettingUtils {
  /**
   * @description 生成页面查询语句
@@ -7,7 +9,7 @@
   * @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 = ''
@@ -95,85 +97,28 @@
    }
    // 正则替换
    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 = ''