king
2023-09-19 9a1416e0b5cdb40f49b3c2061b04b35551d77e99
src/menu/datasource/verifycard/index.jsx
@@ -8,7 +8,7 @@
import Api from '@/api'
import Utils from '@/utils/utils.js'
import { formatSearch, joinMainSearchkey } from '@/utils/utils-custom.js'
import asyncComponent from '@/utils/asyncComponent'
import ColForm from './columnform'
import CustomScriptsForm from './customscript'
@@ -44,7 +44,6 @@
    initsql: '',          // sql验证时变量声明及赋值
    usefulfields: '',
    defaultsql: '',       // 默认Sql
    defaultSearch: '',
    systemScripts: [],
    median: {},
    visible: false,
@@ -210,11 +209,6 @@
      })
    }
    let _search = this.formatSearch(search)
    _search = Utils.joinMainSearchkey(_search)
    _search = _search.replace(/@\$@/ig, '')
    _search = _search ? 'where ' + _search : ''
    let columns = config.columns ? fromJS(config.columns).toJS() : []
    let subColumns = config.subColumns ? fromJS(config.subColumns).toJS() : []
@@ -227,8 +221,7 @@
      subColumns: subColumns,
      setting: _setting,
      median: _setting,
      searches: search,
      defaultSearch: _search,
      searches: formatSearch(search),
      searchKey: '',
      debugId: _setting.debugId || ''
    })
@@ -426,15 +419,8 @@
          search = [...search, ...mainSearch]
        }
        let _search = this.formatSearch(search)
        _search = Utils.joinMainSearchkey(_search)
        _search = _search.replace(/@\$@/ig, '')
        _search = _search ? 'where ' + _search : ''
        this.setState({
          searches: search,
          defaultSearch: _search,
          searches: formatSearch(search),
          setting: res
        }, () => {
          this.sqlverify(() => { // 验证成功
@@ -513,9 +499,12 @@
  }
  getdefaultSql = () => {
    const { columns, setting, defaultSearch } = this.state
    const { columns, setting, searches } = this.state
    let defaultsql = ''
    let arr_field = columns.map(col => col.field).join(',')
    let _search = joinMainSearchkey(searches)
    _search = _search ? 'where ' + _search : ''
    if (setting.dataresource) {
      let _dataresource = setting.dataresource
@@ -524,59 +513,10 @@
        _dataresource = '(' + _dataresource + ') tb'
      }
      defaultsql = `select top @pageSize@ ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by @orderBy@) as rows from ${_dataresource} ${defaultSearch}) tmptable where rows > (@pageSize@ * (@pageIndex@ - 1)) order by tmptable.rows`
      defaultsql = `select top @pageSize@ ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by @orderBy@) as rows from ${_dataresource} ${_search}) tmptable where rows > (@pageSize@ * (@pageIndex@ - 1)) order by tmptable.rows`
    }
    this.setState({defaultsql})
  }
  /**
   * @description 获取全部搜索条件
   * @param {Array} searches 搜索条件数组
   */
  formatSearch (searches) {
    if (!searches) return []
    let newsearches = []
    searches.forEach(search => {
      if (!search.field) return
      let item = {
        key: search.field,
        match: search.match,
        type: search.type,
        label: search.label,
        value: search.initval,
        required: search.required === 'true'
      }
      if (item.type === 'group') {
        item.key = search.datefield
        item.type = 'daterange'
        item.match = 'between'
        item.value = [moment().format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')].join(',')
        newsearches.push(item)
        return
      } else if (item.type === 'date') {
        item.value = moment().format('YYYY-MM-DD')
      } else if (item.type === 'datemonth') {
        item.value = moment().format('YYYY-MM')
      } else if (item.type === 'dateweek') {
        item.value = moment().format('YYYY-MM-DD')
      } else if (item.type === 'daterange') {
        item.value = [moment().format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')].join(',')
      } else if (item.type === 'range') {
      } else if (item.type === 'multiselect' || (item.type === 'checkcard' && search.multiple === 'true')) {
        item.type = 'multi'
        item.value = '@$@'
      } else {
        item.value = '@$@'
      }
      newsearches.push(item)
    })
    return newsearches
  }
  submitDataSource = () => {
@@ -611,15 +551,8 @@
            search = [...search, ...mainSearch]
          }
          let _search = this.formatSearch(search)
          _search = Utils.joinMainSearchkey(_search)
          _search = _search.replace(/@\$@/ig, '')
          _search = _search ? 'where ' + _search : ''
          this.setState({
            searches: search,
            defaultSearch: _search,
            searches: formatSearch(search),
            setting: res
          }, () => {
            this.sqlverify(() => { resolve({setting: res, columns, subColumns, scripts, cols }) }, reject, 'submit')
@@ -674,7 +607,7 @@
  sqlverify = (resolve, reject, type, testScripts) => {
    const { config } = this.props
    const { columns, setting, scripts, searches, defaultSearch, debugId } = this.state
    const { columns, setting, scripts, searches, debugId } = this.state
    let _scripts = scripts.filter(item => item.status !== 'false')
@@ -697,7 +630,7 @@
    }
    if ((setting.interType === 'system' && setting.execute !== 'false') || _scripts.length > 0) {
      let r = SettingUtils.getDebugSql(setting, _scripts, columns, searches, defaultSearch, config.type)
      let r = SettingUtils.getDebugSql(setting, _scripts, columns, searches, config.type)
      let _debugId = md5(r.sql)