From 4d6b9f8a2d7b316633e43b489eae9ada949c07b5 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 10 九月 2024 10:18:08 +0800
Subject: [PATCH] Merge branch 'master' into positec

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

diff --git a/src/utils/utils.js b/src/utils/utils.js
index ac418a1..48c79b6 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -712,6 +712,157 @@
     return searchText.join(' AND ')
   }
 
+  static getSearchkeys (searches) {
+    let searchText = []
+    let matchs = {
+      'like': '01',
+      'not like': '02',
+      '=': '03',
+      '>': '04',
+      '<': '05',
+      '>=': '06',
+      '<=': '07',
+    }
+
+    searches.forEach(item => {
+      if (item.forbid || !item.value) return
+
+      let cell = {
+        key: item.key,
+        match: item.match,
+        type: 'text',
+        value: item.value
+      }
+      
+      if (item.type === 'text' || item.type === 'select') { // 缁煎悎鎼滅储锛屾枃鏈垨涓嬫媺锛屾墍鏈夊瓧娈垫嫾鎺�
+        if (/,/.test(item.key)) {
+          cell.type = 'text_or'
+        }
+      } else if (item.type === 'multi') {
+        cell.type = 'text_multi'
+      } else if (item.type === 'date') {
+        let _val = item.value
+        let timetail = ''
+
+        if (item.match === '<' || item.match === '<=') { // 鏃堕棿涓�<=鏃讹紝鍖归厤鍚庝竴澶╃殑0鐐癸紝鍖归厤鏂瑰紡涓�<
+          cell.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'
+        }
+
+        cell.value = _val + timetail
+      }
+      
+      if (item.type === 'datemonth') { // 鏈�-杩囨护鏉′欢锛屼粠鏈堝紑濮嬭嚦缁撴潫锛岀粨鏉熸椂闂翠负鏈堟湯鍔犱竴澶╃殑0鐐癸紝鏂瑰紡涓�<
+        if (item.match === '=') {
+          searchText.push(cell)
+        } else {
+          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.push({
+            key: item.key,
+            match: '>=',
+            type: 'text',
+            value: _startval
+          }, {
+            key: item.key,
+            match: '<',
+            type: 'text',
+            value: _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.push({
+          key: item.key,
+          match: '>=',
+          type: 'text',
+          value: _startval
+        }, {
+          key: item.key,
+          match: '<',
+          type: 'text',
+          value: _endval
+        })
+      } else if (item.type === 'daterange') {
+        let val = item.value.split(',')
+        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'
+        }
+
+        let _skey = item.key
+        let _ekey = item.key
+
+        if (/,/.test(item.key)) {
+          _skey = item.key.split(',')[0]
+          _ekey = item.key.split(',')[1]
+        }
+
+        searchText.push({
+          key: _skey,
+          match: '>=',
+          type: 'text',
+          value: _startval
+        }, {
+          key: _ekey,
+          match: '<',
+          type: 'text',
+          value: _endval
+        })
+      } else if (item.type === 'range') {
+        let val = item.value.split(',')
+
+        searchText.push({
+          key: item.key,
+          match: '>=',
+          type: 'text',
+          value: val[0] || -999999999
+        }, {
+          key: item.key,
+          match: '<=',
+          type: 'text',
+          value: val[1] || 999999999
+        })
+      } else {
+        searchText.push(cell)
+      }
+    })
+
+    searchText.forEach(item => {
+      item.match = matchs[item.match] || '01'
+    })
+
+    return searchText
+  }
+
   /**
    * @description 鑾峰彇鎼滅储鐢ㄤ簬姝e垯鏇挎崲
    * @param {Array}   searches     鎼滅储鏉′欢

--
Gitblit v1.8.0