Browse Source

Stable sort in filter control: WIP

djhvscf 7 years ago
parent
commit
727d0d481b
2 changed files with 6 additions and 18 deletions
  1. 1 1
      src/dom.js
  2. 5 17
      src/extensions/filter-control/bootstrap-table-filter-control.js

+ 1 - 1
src/dom.js

@@ -26,7 +26,7 @@ export const createElem = (...args) => {
   return el
 }
 
-export const removeElm = (node) => node.parentNode.removeChild(node)
+export const removeElem = (node) => node.parentNode.removeChild(node)
 
 export const hasClass = (ele, cls) => {
   if (isUndefined(ele)) {

+ 5 - 17
src/extensions/filter-control/bootstrap-table-filter-control.js

@@ -38,28 +38,15 @@ const UtilsFilterControl = {
     }
   },
   sortSelectControl (selectControl, orderBy) {
-    const $opts = []
-
-    for (let i = 0; i < selectControl.options.length; i++) {
-      $opts.push({
-        value: selectControl.options[i].value,
-        textContent: selectControl.options[i].textContent
-      })
-    }
+    const $selectControl = $(selectControl)
+    const $opts = $selectControl.find('option:gt(0)')
 
     $opts.sort((a, b) => {
       return Sort(a.textContent, b.textContent, orderBy === 'desc' ? -1 : 1)
     })
 
-    selectControl.options.forEach((option, i) => {
-      if (i > 0) {
-        option.remove()
-      }
-    })
-
-    $opts.forEach((opt, i) => {
-      this.addOptionToSelectControl(selectControl, opt.value, opt.textContent)
-    })
+    $selectControl.find('option:gt(0)').remove()
+    $selectControl.append($opts)
   },
   existOptionInSelectControl (selectControl, value) {
     for (let i = 0; i < selectControl.options.length; i++) {
@@ -648,6 +635,7 @@ $.BootstrapTable = class extends $.BootstrapTable {
     if (!this.options.filterControl) {
       return
     }
+
     UtilsFilterControl.createControls(this, this.$header)
   }
   initBody () {