From d21470fe80e265cda2c355f636c3258eb0f56636 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 12 五月 2020 18:31:18 +0800
Subject: [PATCH] 2020-05-12

---
 src/utils/utils.js |   86 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 77 insertions(+), 9 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index a08f503..0e1c3a1 100644
--- a/src/utils/utils.js
+++ b/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

--
Gitblit v1.8.0