Browse Source

Merge pull request #4729 from manukieli/develop

Update bootstrap-table-cookie.js
文翼 6 years ago
parent
commit
7acdcc880a

+ 1 - 1
src/bootstrap-table.js

@@ -738,7 +738,7 @@ class BootstrapTable {
         $(currentTarget).val(text)
       }
 
-      if (this.searchText === text) {
+      if (this.searchText === text && text.length > 0) {
         return
       }
 

+ 10 - 3
src/extensions/cookie/bootstrap-table-cookie.js

@@ -171,9 +171,16 @@ const UtilsCookie = {
         const searchControls = UtilsCookie.getCurrentSearchControls(bootstrapTable)
 
         const applyCookieFilters = (element, filteredCookies) => {
-          $(filteredCookies).each((i, cookie) => {
-            if (cookie.text !== '') {
-              $(element).val(cookie.text)
+          filteredCookies.forEach(cookie => {
+            if (cookie.text !== '' && element.tagName === 'INPUT') {
+              element.value = cookie.text
+              cachedFilters[cookie.field] = cookie.text
+            } else if (cookie.text !== '' && element.tagName === 'SELECT') {
+              const option = document.createElement('option')
+              option.value = cookie.text
+              option.text = cookie.text
+              element.add(option, element[1])
+              element.selectedIndex = 1
               cachedFilters[cookie.field] = cookie.text
             }
           })

+ 14 - 1
src/extensions/filter-control/bootstrap-table-filter-control.js

@@ -178,6 +178,7 @@ const UtilsFilterControl = {
   collectBootstrapCookies () {
     const cookies = []
     const foundCookies = document.cookie.match(/(?:bs.table.)(\w*)/g)
+    const foundLocalStorage = localStorage
 
     if (foundCookies) {
       $.each(foundCookies, (i, _cookie) => {
@@ -190,8 +191,20 @@ const UtilsFilterControl = {
           cookies.push(cookie)
         }
       })
-      return cookies
     }
+    if (foundLocalStorage) {
+      for (let i = 0; i < foundLocalStorage.length; i++) {
+        let cookie = foundLocalStorage.key(i)
+        if (/./.test(cookie)) {
+          cookie = cookie.split('.').pop()
+        }
+
+        if (!cookies.includes(cookie)) {
+          cookies.push(cookie)
+        }
+      }
+    }
+    return cookies
   },
   escapeID (id) {
     // eslint-disable-next-line no-useless-escape