From c41b93d4c5e2146a1d1568887fb8ce1e3144d7fb Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 31 十二月 2019 18:24:36 +0800
Subject: [PATCH] 2019-12-31

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

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 2503f10..8c61b92 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -227,6 +227,8 @@
         }
         item.value = _val ? [moment().subtract(_val[0], 'days').format('YYYY-MM-DD'),
           moment().subtract(_val[1], 'days').format('YYYY-MM-DD')] : ''
+      } else if (item.type === 'multiselect') {
+        item.value = item.value ? item.value.split(',').filter(Boolean) : []
       }
       newsearches.push(item)
     })
@@ -294,6 +296,8 @@
         item.key.split(',').forEach(field => { // 缁煎悎鎼滅储锛屾墍瀛楁鎷兼帴
           newsearches[field] = item.value
         })
+      } else if (item.type === 'multiselect') {
+        newsearches[item.key] = item.value.join(',')
       } else {
         newsearches[item.key] = item.value
       }
@@ -312,7 +316,8 @@
 
     let searchText = ''
     searches.forEach(item => {
-      if (!item.value) return
+      if (!item.value || (item.type === 'multiselect' && item.value.length === 0)) return
+      
       searchText += (searchText !== '' ? ' AND ' : '')
       if (item.type === 'text') {
         let str = item.match === '=' ? '' : '%'
@@ -325,6 +330,13 @@
         let str = item.match === '=' ? '' : '%'
 
         searchText += item.key + ' ' + item.match + ' \'' + str + item.value + str + '\''
+      } else if (item.type === 'multiselect') {
+        let str = item.match === '=' ? '' : '%'
+        let options = item.value.map(val => {
+          return item.key + ' ' + item.match + ' \'' + str + val + str + '\''
+        })
+
+        searchText += '(' + options.join(' OR ') + ')'
       } else if (item.type === 'date') {
         let _val = item.value
         let timetail = ' 00:00:00.000'

--
Gitblit v1.8.0