From 2031a460f6c0827fe80f8c625dd98333d1631d2f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 08 五月 2020 22:10:48 +0800
Subject: [PATCH] 2020-05-08

---
 src/utils/utils.js |   70 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 1 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index a08f503..18a6ed2 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') : ''

--
Gitblit v1.8.0