king
2020-05-09 aaaf56d7ca060f7c681d6b8a67aac46aa89a4dbc
src/utils/utils.js
@@ -193,7 +193,75 @@
        value: search.initval,
        required: search.required === 'true'
      }
      if (item.type === 'date') {
      if (item.type === 'group') {
        let copy = JSON.parse(JSON.stringify(item))
        copy.key = search.datefield
        item.value = search.initval && search.initval[0] ? search.initval[0] : ''
        item.match = '='
        copy.type = 'daterange'
        copy.match = 'between'
        copy.value = ''
        if (search.initval && search.initval.length > 0) {
          let _type = search.initval[0]
          let _val = search.initval[1]
          if (_type === 'day') {
            copy.value = [moment().subtract(_val, 'days').format('YYYY-MM-DD'),
              moment().subtract(_val, 'days').format('YYYY-MM-DD')]
          } else if (_type === 'week') {
            copy.value = [moment().subtract(_val * 7, 'days').startOf('week').format('YYYY-MM-DD'),
              moment().subtract(_val * 7, 'days').endOf('week').format('YYYY-MM-DD')]
          } else if (_type === 'month') {
            copy.value = [moment().subtract(_val, 'month').startOf('month').format('YYYY-MM-DD'),
              moment().subtract(_val, 'month').endOf('month').format('YYYY-MM-DD')]
          } else if (_type === 'quarter') {
            let _differ = parseInt(moment().format('MM')) % 3
            let _pdiffer = 0
            let _ndiffer = 0
            // 差值计算
            switch(_differ) {
              case 0:
                _pdiffer = 2
                _ndiffer = 0
                break
              case 1:
                _pdiffer = 0
                _ndiffer = -2
                break
              case 2:
                _pdiffer = 1
                _ndiffer = -1
                break
              default:
            }
            copy.value = [moment().subtract(_pdiffer + _val * 3, 'month').startOf('month').format('YYYY-MM-DD'),
              moment().subtract(_ndiffer + _val * 3, 'month').endOf('month').format('YYYY-MM-DD')]
          } else if (_type === 'year') {
            let _year = parseInt(moment().format('YYYY')) - _val
            copy.value = [_year + '-01-01', _year + '-12-31']
          } else if (_type === 'customized') {
            try {
              _val = JSON.parse(_val)
            } catch {
              _val = [0, 0]
            }
            copy.value = [moment().subtract(_val[0], 'days').format('YYYY-MM-DD'),
              moment().subtract(_val[1], 'days').format('YYYY-MM-DD')]
          }
        }
        if (search.transfer === 'true') {
          newsearches.push(item)
        }
        newsearches.push(copy)
        return
      } else if (item.type === 'date') {
        item.value = item.value ? moment().subtract(item.value, 'days').format('YYYY-MM-DD') : ''
      } else if (item.type === 'datemonth') {
        item.value = item.value ? moment().subtract(item.value, 'month').format('YYYY-MM') : ''
@@ -244,14 +312,14 @@
        }
        if (newsearches[item.key]) {
          newsearches[item.key + '1'] = _val ? _val + timetail : null
          newsearches[item.key + '1'] = _val ? _val + timetail : ''
        } else {
          newsearches[item.key] = _val ? _val + timetail : null
          newsearches[item.key] = _val ? _val + timetail : ''
        }
      } else if (item.type === 'datemonth') {
        // 月-过滤条件,从月开始至结束
        let _startval = null
        let _endval = null
        let _startval = ''
        let _endval = ''
        if (item.value) {
          _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
@@ -266,16 +334,16 @@
          _endval = moment(item.value[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD')
        }
        newsearches[item.key] = item.value ? item.value[0] + ' 00:00:00.000' : null
        newsearches[item.key + '1'] = item.value ? _endval + ' 00:00:00.000' : null
        newsearches[item.key] = item.value ? item.value[0] + ' 00:00:00.000' : ''
        newsearches[item.key + '1'] = item.value ? _endval + ' 00:00:00.000' : ''
      } else if (item.type === 'daterange') {
        let _endval = ''
        if (item.value) {
          _endval = moment(item.value[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD')
        }
        newsearches[item.key] = item.value ? item.value[0] + ' 00:00:00.000' : null
        newsearches[item.key + '1'] = item.value ? _endval + ' 00:00:00.000' : null
        newsearches[item.key] = item.value ? item.value[0] + ' 00:00:00.000' : ''
        newsearches[item.key + '1'] = item.value ? _endval + ' 00:00:00.000' : ''
      } else if (item.type === 'text') {
        item.key.split(',').forEach(field => { // 综合搜索,所字段拼接
          newsearches[field] = item.value