king
2022-04-26 5046d0d13dc6a8563b8e54e31913bc44cfa1072f
src/utils/utils.js
@@ -507,20 +507,23 @@
  static joinMainSearchkey (searches) {
    if (!searches || searches.length === 0) return ''
    let searchText = ''
    let searchText = []
    searches.forEach(item => {
      if (item.forbid || !item.value) return
      
      searchText += (searchText !== '' ? ' AND ' : '')
      if (item.type === 'text' || item.type === 'select') { // 综合搜索,文本或下拉,所有字段拼接
        let str = item.match === '=' ? '' : '%'
        let str = item.match === 'like' || item.match === 'not like' ? '%' : ''
        let fields = item.key.split(',').map(field => {
          return field + ' ' + item.match + ' \'' + str + item.value + str + '\''
        })
        searchText += '(' + fields.join(' OR ') + ')'
        searchText.push('(' + fields.join(' OR ') + ')')
      } else if (item.type === 'checkcard') {
        let str = item.match === 'like' || item.match === 'not like' ? '%' : ''
        searchText.push('(' + item.key + ' ' + item.match + ' \'' + str + item.value + str + '\')')
      } else if (item.type === 'multi') {
        searchText += `'${item.value}' ${item.match} '%'+${item.key}+'%'`
        searchText.push(`('${item.value}' ${item.match} '%'+${item.key}+'%')`)
      } else if (item.type === 'date') {
        let _val = item.value
        let timetail = ''
@@ -544,17 +547,17 @@
          timetail = '.000'
        }
        searchText += '(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')'
        searchText.push('(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')')
      } else if (item.type === 'datemonth') { // 月-过滤条件,从月开始至结束,结束时间为月末加一天的0点,方式为<
        let _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
        let _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
        searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')'
        searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')')
      } else if (item.type === 'dateweek') { // 周-过滤条件
        let _startval = moment(item.value, 'YYYY-MM-DD' ).startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000'
        let _endval = moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
        searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')'
        searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')')
      } else if (item.type === 'daterange') {
        let val = item.value.split(',')
        let _startval = ''
@@ -574,17 +577,17 @@
          _endval = val[1] + '.000'
        }
        searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')'
        searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')')
      } else if (item.type === 'range') {
        let val = item.value.split(',')
        searchText += '(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')'
        searchText.push('(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')')
      } else {
        searchText += '(' + item.key + ' ' + item.match + ' \'' + item.value + '\')'
        searchText.push('(' + item.key + ' ' + item.match + ' \'' + item.value + '\')')
      }
    })
    return searchText
    return searchText.join(' AND ')
  }
  /**