| | |
| | | item.$forbid = item.query === 'false' |
| | | |
| | | if (item.type === 'date') { // 时间搜索 |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'days').format('YYYY-MM-DD') : '' |
| | | item.precision = item.precision || 'day' |
| | | let format = 'YYYY-MM-DD' |
| | | if (item.precision === 'day') { |
| | | |
| | | } else if (item.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (item.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (item.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'days').format(format) : '' |
| | | } else if (item.type === 'datemonth') { |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'month').format('YYYY-MM') : '' |
| | | } else if (item.type === 'dateweek') { |
| | | item.initval = item.initval ? moment().subtract(item.initval * 7, 'days').format('YYYY-MM-DD') : '' |
| | | } else if (item.type === 'daterange') { |
| | | item.precision = item.precision || 'day' |
| | | let format = 'YYYY-MM-DD' |
| | | if (item.precision === 'day') { |
| | | |
| | | } else if (item.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (item.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (item.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | if (item.initval === 'week') { |
| | | item.initval = [moment().startOf('week').format('YYYY-MM-DD'), moment().endOf('week').format('YYYY-MM-DD')].join(',') |
| | | item.initval = [moment().startOf('week').format(format), moment().endOf('week').format(format)].join(',') |
| | | } else if (item.initval === 'month') { |
| | | item.initval = [moment().startOf('month').format('YYYY-MM-DD'), moment().endOf('month').format('YYYY-MM-DD')].join(',') |
| | | item.initval = [moment().startOf('month').format(format), moment().endOf('month').format(format)].join(',') |
| | | } else if (item.initval) { |
| | | try { |
| | | let _initval = JSON.parse(item.initval) |
| | | let _vals = [moment().subtract(_initval[0], 'days').format('YYYY-MM-DD'), moment().subtract(_initval[1], 'days').format('YYYY-MM-DD')] |
| | | let _vals = [moment().subtract(_initval[0], 'days').format(format), moment().subtract(_initval[1], 'days').format(format)] |
| | | item.initval = _vals.join(',') |
| | | } catch (e) { |
| | | item.initval = '' |
| | |
| | | label: cell.label, |
| | | value: cell.initval, |
| | | required: cell.required, |
| | | precision: cell.precision || '', |
| | | forbid: cell.$forbid |
| | | } |
| | | |
| | |
| | | let _val = item.value || '' |
| | | |
| | | if (_val) { |
| | | if (item.match === '<' || item.match === '<=') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.match === '>' || item.match === '>=') { |
| | | _val = _val + ' 00:00:00.000' |
| | | if (item.precision === 'day') { |
| | | if (item.match === '<' || item.match === '<=') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.match === '>' || item.match === '>=') { |
| | | _val = _val + ' 00:00:00.000' |
| | | } |
| | | } else if (item.precision === 'hour') { |
| | | _val = _val + ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | _val = _val + ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | _val = _val + '.000' |
| | | } |
| | | } |
| | | |
| | |
| | | let _endval = '' |
| | | if (item.value) { |
| | | let val = item.value.split(',') |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | |
| | | if (item.precision === 'day') { |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.precision === 'hour') { |
| | | _startval = val[0] + ':00:00.000' |
| | | _endval = val[1] + ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | _startval = val[0] + ':00.000' |
| | | _endval = val[1] + ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | _startval = val[0] + '.000' |
| | | _endval = val[1] + '.000' |
| | | } |
| | | } |
| | | |
| | | newsearches[item.key] = _startval |
| | |
| | | searchText += `'${item.value}' ${item.match} '%'+${item.key}+'%'` |
| | | } else if (item.type === 'date') { |
| | | let _val = item.value |
| | | let timetail = ' 00:00:00.000' |
| | | let timetail = '' |
| | | let _match = item.match |
| | | |
| | | if (item.match === '<' || item.match === '<=') { // 时间为<=时,匹配后一天的0点,匹配方式为< |
| | | _match = '<' |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') |
| | | } else if (item.match === '=') { |
| | | if (item.precision === 'day') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') |
| | | } |
| | | } |
| | | if (item.match === '=') { |
| | | timetail = '' |
| | | } else if (item.precision === 'day') { |
| | | timetail = ' 00:00:00.000' |
| | | } else if (item.precision === 'hour') { |
| | | timetail = ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | timetail = ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | timetail = '.000' |
| | | } |
| | | |
| | | searchText += '(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')' |
| | |
| | | searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' |
| | | } else if (item.type === 'daterange') { |
| | | let val = item.value.split(',') |
| | | let _startval = val[0] + ' 00:00:00.000' |
| | | let _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | let _startval = '' |
| | | let _endval = '' |
| | | |
| | | if (item.precision === 'day') { |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.precision === 'hour') { |
| | | _startval = val[0] + ':00:00.000' |
| | | _endval = val[1] + ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | _startval = val[0] + ':00.000' |
| | | _endval = val[1] + ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | _startval = val[0] + '.000' |
| | | _endval = val[1] + '.000' |
| | | } |
| | | |
| | | searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' |
| | | } else if (item.type === 'range') { |
| | |
| | | fieldmap.set(item.key, true) |
| | | |
| | | if (item.type === 'date') { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = item.value ? item.value + ' 00:00:00.000' : '1970-01-01 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = item.value ? moment(item.value, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000' |
| | | if (!item.value) { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = '1970-01-01 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = '2050-01-01 00:00:00.000' |
| | | } |
| | | } else if (search.precision === 'day') { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = item.value + ' 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = moment(item.value, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } |
| | | } else if (search.precision === 'hour') { |
| | | item.value = item.value + ':00:00.000' |
| | | } else if (search.precision === 'minute') { |
| | | item.value = item.value + ':00.000' |
| | | } else if (search.precision === 'second') { |
| | | item.value = item.value + '.000' |
| | | } |
| | | |
| | | options.push(item) |
| | |
| | | } else if (item.type === 'daterange') { |
| | | let _startval = '1970-01-01 00:00:00.000' |
| | | let _endval = '2050-01-01 00:00:00.000' |
| | | |
| | | |
| | | if (item.value) { |
| | | let val = item.value.split(',') |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | |
| | | if (search.precision === 'day') { |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (search.precision === 'hour') { |
| | | _startval = val[0] + ':00:00.000' |
| | | _endval = val[1] + ':00:00.000' |
| | | } else if (search.precision === 'minute') { |
| | | _startval = val[0] + ':00.000' |
| | | _endval = val[1] + ':00.000' |
| | | } else if (search.precision === 'second') { |
| | | _startval = val[0] + '.000' |
| | | _endval = val[1] + '.000' |
| | | } |
| | | } |
| | | |
| | | let copy = JSON.parse(JSON.stringify(item)) |